Sự phát triển/Sự bắt đầu mới về Hệ sinh thái Kỹ thuật Wikimedia

This page is a translated version of the page New Developers/Introduction to the Wikimedia Technical Ecosystem and the translation is 87% complete.
Outdated translations are marked like this.

Trang này cung cấp cái nhìn tổng quan về phần mềm và cơ sở hạ tầng của Wikimedia với công nghệ mới từ cộng tác viên. Mục tiêu của nó là giúp các nhà phát triển hiểu các lĩnh vực chính mà bạn có thể áp dụng các kỹ năng kỹ thuật của mình để giúp hỗ trợ và phát triển Sự thúc đẩy.

Các nguyên tắc cốt lõi và công nghệ

Nguồn mở

Hệ sinh thái kỹ thuật Wikimedia được hướng dẫn bởi các nguyên tắc phần mềm nguồn mở và miễn phí (FLOSS). Những người đóng góp trên khắp thế giới tình nguyện dành thời gian để duy trì và mở rộng công nghệ đằng sau các dự án Wikimedia. Điều này có nghĩa là hệ sinh thái kỹ thuật Wikimedia bao gồm nhiều dự án độc đáo với các nguyên tắc đóng góp, mẫu thiết kế, vị trí lưu trữ và quy trình đánh giá mã khác nhau. Contributors around the world volunteer their time to maintain and extend the technology behind Wikimedia projects. This means that the Wikimedia technical ecosystem consists of many unique projects with varying contributing guidelines, design patterns, hosting locations, and code review processes.

Các giá trị nguồn mở như chia sẻ quyền sở hữu và cam kết bảo mật mạnh mẽ là trọng tâm của Wikimedia với cơ sở hạ tầng kỹ thuật, phần mềm và dịch vụ . Ví dụ:

  • Để kiểm soát phiên bản và đánh giá mã, Wikimedia Foundation (WMF) sử dụng Git và Gerrit. Git là một hệ thống kiểm soát phiên bản phân phối mã nguồn mở và miễn phí, còn Gerrit là một công cụ đánh giá mã cộng tác dựa trên web miễn phí tích hợp với Git.
  • Wikimedia Dịch vụ đám mây(WMCS) cung cấp cơ sở hạ tầng điện toán đám mây, dịch vụ lưu trữ chia sẻ (nền tảng dưới dạng dịch vụ) và dịch vụ dữ liệu cho những người đóng góp cho các dự án phần mềm Wikimedia. Bạn có thể sử dụng miễn phí các dịch vụ này để lưu trữ các công cụ phần mềm cho phong trào Wikimedia, thay vì sử dụng các dịch vụ độc quyền, trả phí hoặc không phải nguồn mở.

Ngoài việc cung cấp các công cụ và dịch vụ cho những người đóng góp kỹ thuật, WMF còn duy trì cốt lõi cơ sở hạ tầng như trung tâm dữ liệu, tìm kiếm, kết nối mạng và định tuyến lưu lượng truy cập toàn cầu. Bạn không cần phải tìm hiểu về những điều đó để đóng góp cho các dự án wiki, nhưng bạn nên biết về phần mềm cốt lõi hỗ trợ Wikipedia và wiki khác: MediaWiki.

MediaWiki

 

Các dự án Wikimedia, bao gồm Wikipedia, chạy trên nền tảng phần mềm MediaWiki. MediaWiki là phần mềm mã nguồn mở và miễn phí, được xây dựng đặc biệt để thu thập và tổ chức kiến ​​thức mở và miễn phí. Nó đa ngôn ngữ, có thể mở rộng, có thể tùy chỉnh và đáng tin cậy. MediaWiki cho phép người dùng trên toàn thế giới chỉnh sửa, sắp xếp, duy trì và cộng tác trên wiki. Nó quản lý việc hiển thị nội dung như văn bản, hình ảnh, định dạng và sửa đổi. MediaWiki không chỉ là một hệ thống quản lý nội dung: nó còn cung cấp các công cụ để xử lý thư rác và phá hoại cũng như các chức năng khác hỗ trợ cộng đồng quản lý kiến ​​thức có thể tái sử dụng tự do trên nền tảng mở.

Các lĩnh vực chính mà nhà phát triển có thể đóng góp

Phát triển MediaWiki, các ứng dụng, và các mở rộng

MediaWiki Lõi và phần mở rộng

Phần mềm MediaWiki được phát triển với sự cộng tác của mọi người từ khắp nơi trên thế giới. Cộng đồng kỹ thuật Wikimedia đã bổ sung nhiều tính năng chính cho MediaWiki và xây dựng một hệ sinh thái rộng lớn gồm các tiện ích mở rộng cho phần mềm cốt lõi. Do tính phức tạp của nó, việc đóng góp cho MediaWiki có thể khó khăn hơn các loại đóng góp kỹ thuật khác. Với tư cách là người đóng góp mới, hãy tập trung vào các tính năng và lỗi chỉ liên quan đến một vùng mã nhỏ. Tránh xây dựng giao diện và tiện ích mở rộng MediaWiki mới: mỗi tiện ích mở rộng mới sẽ tăng thêm gánh nặng bảo trì tổng thể của phần mềm và có thể chặn việc khởi chạy các tính năng mới, quan trọng. Here you can find good first tasks for MediaWiki core. Avoid building new MediaWiki skins and extensions: every new extension adds to the software's overall maintenance burden, and can block the launch of new, crucial features. Thay vào đó, hãy xem xét làm việc trên một trong nhiều các mở rộng hiện có.

Ví dụ mở rộng: dịch văn bản và quản lý đa ngôn ngữ của wiki

Biên dịch mở rộng cho phép bản địa hóa MediaWiki và dịch mọi loại văn bản.

Nó hỗ trợ dịch trên web, chỉnh sửa, và hợp tác giữa các dịch giả trên toàn thế giới,đồng thời phía sau làm tích hợp với mã nguồn dễ dàng nhất có thể.

 
Ảnh chụp màn hình của trang dịch được tạo bởi Biên dịch mở rộng.

Để tìm hiểu thêm, hãy ghé thăm Làm thế nào để trở thành một MediaWiki hacker .

Wikimedia ứng dụng di động

Các ứng dụng di động mở rộng phạm vi tiếp cận nội dung Wikimedia bằng cách cho phép người dùng tương tác với Wikimedia mà không cần sử dụng trình duyệt. Có các ứng dụng dành cho nền tảng Android, iOS và KaiOS, các ứng dụng dành cho các dự án Wikimedia khác nhau như Commons, Wikipedia và Wiktionary cũng như các ứng dụng dành cho các hoạt động như đọc, đóng góp, v.v. Nhiều ứng dụng có cộng đồng nhà phát triển sôi động và chào đón những người đóng góp mới.

Ví dụ về ứng dụng di động: đọc Wikipedia mà không cần truy cập internet

Kiwix là một trình đọc ngoại tuyến - nó giúp mọi người có thể truy cập Wikipedia mà không cần truy cập internet.

Có nhiều loại nội dung khác nhau có sẵn trên Wikipedia.

Quá trình phát triển Kiwix sử dụng Java/Kotlin (Android), Swift (iOS), Qt (máy tính để bàn), NodeJS (mediawiki offliner) và C++.

Để tìm hiểu thêm, hãy truy cập Wikimedia Apps .

Tùy chỉnh MediaWiki thông qua phát triển trên wiki

Các mẫu và các mô-đun

Các bản mẫu cho phép một phần nội dung xuất hiện trên nhiều trang wiki ("việc loại trừ"). Nhiều wiki chủ yếu dựa vào các mẫu: có hàng nghìn mẫu, chúng được sử dụng trên hầu hết mọi trang và chúng không thể thiếu đối với chức năng của wiki. Bạn có thể chuyển tham số tới mẫu để tùy chỉnh cách xử lý nội dung trong các ngữ cảnh khác nhau.

Mẫu ví dụ: định dạng các trích dẫn khối(blockquotes)

Mẫu trích dẫn khối cung cấp định dạng cho các trích dẫn khối và bao gồm các tham số phân bổ được định dạng sẵn cho tác giả và nguồn của trích dẫn.

Điều này cho phép các biên tập viên sử dụng đánh dấu văn bản wiki để tạo kiểu một cách dễ dàng và nhất quán về cách hiển thị các trích dẫn khối trên các trang wiki.

 
Ảnh chụp màn hình của Bản mẫu:Trích dẫn khối tài liệu cho thấy cách thức hoạt động của nó.

Bạn không cần có tài khoản nhà phát triển để chỉnh sửa hoặc tạo mẫu và chúng được viết bằng wikitext. Điều đó làm cho mẫu trở thành một cách dễ dàng để bắt đầu tùy chỉnh hành vi wiki.

Mô-đun tương tự như các mẫu, nhưng thay vì được viết bằng wikitext, chúng sử dụng ngôn ngữ lập trình Lua. Mặc dù các mẫu là một phần của ứng dụng MediaWiki cốt lõi, việc hỗ trợ các mô-đun được triển khai bởi một tiện ích mở rộng có tên $scribunto. While templates are part of the core MediaWiki application, support for modules is implemented by an extension called Scribunto .

Mô-đun ví dụ: định dạng bản đồ lộ trình phức tạp

Mô-đun Routemap hỗ trợ một ngôn ngữ tùy chỉnh, phức tạp, đặc biệt để hiển thị bản đồ đường sắt. Nó được sử dụng trong hàng nghìn bài viết về đường sắt bằng nhiều ngôn ngữ. Việc sử dụng Lua cho phép mô-đun này thay thế mẫu bản đồ lộ trình cũ bằng cách triển khai nhanh hơn và thân thiện với thiết bị di động hơn. Using Lua enables this module to replace legacy route map templates with a faster and more mobile-friendly implementation.

 
Ảnh chụp màn hình của bài viết sử dụng mô-đun Lộ trình trên Wikipedia tiếng Hàn.
 
Mã ví dụ và hiển thị từ Tài liệu về sơ đồ tuyến đường.

Để tìm hiểu thêm về các mẫu, hãy truy cập Help:Templates . Để tìm hiểu thêm về các mô-đun và cách Lua được sử dụng trên MediaWiki, hãy truy cập Scribunto Lua manual. To learn more about modules and how Lua is used on MediaWiki, visit the Scribunto Lua manual.

Tập lệnh và tiện ích người dùng

MediaWiki hỗ trợ tùy chỉnh giao diện người dùng hoặc phát triển "trên wiki" để nâng cao chức năng cốt lõi của phần mềm. Kịch bản người dùng là JavaScript và/hoặc CSS cung cấp các tính năng bổ sung trên MediaWiki. Mã tồn tại trên wiki và được đưa vào từ phía máy khách trên MediaWiki thông qua tùy chọn của người dùng. Bạn có thể sửa đổi JavaScript và CSS cục bộ của mình để thay đổi giao diện và hoạt động của giao diện của riêng bạn. Người dùng cá nhân có thể thêm các tính năng cho chính mình miễn là họ tuân theo những mong đợi và hướng dẫn xung quanh việc thực hiện điều đó. Nếu bạn xây dựng thứ gì đó mà người khác có thể sử dụng, bạn có thể chia sẻ tập lệnh của mình một cách không chính thức hoặc làm việc với cộng đồng wiki để điều tra việc cung cấp các tùy chỉnh của bạn cho người dùng và dự án khác dưới dạng "tiện ích". User scripts are JavaScript and/or CSS that provide additional features on top of MediaWiki. Code lives on the wiki, and is injected from the client side on MediaWiki via user preferences. You can modify your local JavaScript and CSS to change the appearance and behavior of your own interface. Individual users can add features for themselves as long as they follow expectations and guidelines around doing so. If you build something that others can use, you can share your scripts informally, or work with a wiki community to investigate making your customisations available to other users and projects as a "gadget".

Tập lệnh người dùng ví dụ: hiển thị nội dung được tính toán

Tập lệnh người dùng này tính toán thời gian đọc của một bài viết và hiển thị nó trên trang.

var numWords = $("#mw-content-text > div").text().split(" ").length;
var headerWords = $("h1").text().split(" ").length;
var totalWords = numWords + headerWords;
var timeInMinutes = totalWords / 200;
var header = $("h1").text();
$("h1").text(header + " (it will take you " + timeInMinutes + " mins to read this article)");
 
Ảnh chụp màn hình bài viết Wikipedia tiếng Anh hiển thị thời gian đọc.

Tiện ích là các tùy chỉnh do người dùng tạo có sẵn để cài đặt trên wiki, thông qua tiện ích mở rộng Gadgets MediaWiki. Nhiều tiện ích có nguồn gốc là tập lệnh người dùng được sử dụng rộng rãi trên wiki tại nhà của họ và quản trị viên muốn giúp mọi người tìm thấy và sử dụng chúng dễ dàng hơn. Quản trị viên có thể định cấu hình những tiện ích nào có sẵn và được bật theo mặc định cho toàn bộ trang web hoặc giao diện MediaWiki.

Ví dụ về tiện ích: giúp người chỉnh sửa phân loại nội dung

HotCat giúp người dùng dễ dàng xóa, thay đổi và thêm các danh mục vào các trang Wikipedia.

Nó có một danh sách gợi ý đề xuất các danh mục hiện có để tự động hoàn thành.

 
Ảnh chụp màn hình chức năng HotCat trên Wikipedia tiếng Pháp.
Ví dụ về tiện ích: trợ giúp người kiểm duyệt sửa nội dung

tiện ích được triển khai trên Wikipedia tiếng Ba Tư này giúp người kiểm duyệt nội dung sửa các chữ cái, ngữ pháp, số, URL, cấu trúc bài viết bằng tiếng Ả Rập, v.v.

 
Ảnh chụp màn hình tiện ích JavaScript từ Wikipedia tiếng Ba Tư.

Để tìm hiểu thêm về tập lệnh người dùng và tiện ích, hãy truy cập Gadget kitchen .

Xây dựng các công cụ và bot để hỗ trợ các dự án Wikimedia

MediaWiki API cung cấp quyền truy cập trực tiếp vào dữ liệu có trong cơ sở dữ liệu MediaWiki. Điều này bao gồm nội dung wiki, siêu dữ liệu, dữ liệu phân tích, v.v. Bạn có thể sử dụng các API này để xây dựng các ứng dụng đóng góp nội dung hoặc chức năng mới cho hệ sinh thái Wikimedia. Các mô-đun API cung cấp quyền truy cập theo chương trình vào nhiều chức năng tương tự được cung cấp bởi giao diện web MediaWiki.

Bots

Bots là các chương trình tự động trợ giúp các dự án wiki bằng cách thực hiện các nhiệm vụ quan trọng nhưng lặp đi lặp lại. Bot tiết kiệm công sức của con người bằng cách sửa các khoảng trống bị thiếu hoặc thừa, đề xuất bài viết cho người mới, sửa các liên kết bị hỏng, v.v. Tự động hóa bot hỗ trợ các tình nguyện viên của Wikimedia bằng cách cho phép họ dành nhiều thời gian hơn cho các nhiệm vụ đòi hỏi trí thông minh của con người, như viết bài, tìm nguồn, kiểm tra thực tế và tổng hợp nhiều quan điểm. Bots save human effort by correcting missing or extra spaces, suggesting articles to newcomers, fixing broken links, and more. Bot automation supports Wikimedia volunteers by allowing them to spend more of their time on tasks that require human intelligence, like writing articles, finding sources, fact checking, and synthesising multiple points of view.

Ví dụ về bot: chống thối liên kết
 
InternetArchiveBot (IABot) là một bot nâng cao có khả năng xác định và thay thế các liên kết bên ngoài bị hỏng.

Nó cũng hoàn thiện các mẫu tham khảo và thêm liên kết tới các nguồn tài nguyên nếu thích hợp.

Bot này được vận hành như một dịch vụ của Internet Archive hợp tác với cộng đồng Wikimedia.

Tính đến tháng 10 năm 2022, IABot đang chạy trên hơn 150 wiki Wikimedia.

IABot cũng có giao diện dựa trên trình duyệt (ứng dụng web) giúp truy cập dễ dàng vào một số dịch vụ và cấu hình của bot.

Bot có thể yêu cầu các trang và gửi các chỉnh sửa lên wiki giống như cách người dùng thực hiện các tác vụ tương tự trong trình duyệt web. Vì bot truy cập các trang theo cách giống như con người nên chúng có thể gặp phải xung đột khi chỉnh sửa, hết thời gian chờ trang hoặc gặp phải các sự cố không mong muốn khác khi yêu cầu trang hoặc thực hiện chỉnh sửa. Vì bot thường hoàn thành khối lượng công việc lớn nên bạn nên cân nhắc những tình huống này khi viết bot.

Để tìm hiểu thêm về bot, hãy truy cập Manual:Creating a bot .

Các công cụ

Các công cụ là những ứng dụng phần mềm giúp mọi người làm việc trong các dự án Wikimedia. Các công cụ có thể thực hiện tất cả các loại nhiệm vụ, như giúp người chỉnh sửa khám phá nội dung để cải thiện, đơn giản hóa việc lập kế hoạch chỉnh sửa, trực quan hóa nội dung wiki, giúp chống phá hoại và hơn thế nữa.

Công cụ ví dụ: cải thiện hình ảnh

CropTool là một công cụ MediaWiki để cắt xén hình ảnh tại Wikimedia Commons và các trang Wikimedia khác.

Nó hỗ trợ các tệp JPEG, PNG, TIFF và GIF (hoạt hình), đồng thời có thể trích xuất các trang đơn lẻ từ tệp DJVU và PDF dưới dạng JPEG để cắt xén.

 
Ảnh chụp màn hình của mục menu CropTool trên wiki.

MediaWiki Action API cung cấp cho bạn quyền truy cập theo chương trình vào nội dung trên bất kỳ wiki Wikimedia nào. Bạn có thể sử dụng API hành động để tìm kiếm và hiển thị các trang wiki, lấy tệp phương tiện, chỉnh sửa trang và quản lý wiki. Thư viện khách hàng triển khai API MediaWiki có sẵn bằng nhiều ngôn ngữ, bao gồm cả Python và JavaScript.

Ví dụ về công cụ: kết nối các bài viết Wikipedia và các mục Wikidata

Công cụ trùng lặp chọn một bài viết wiki ngẫu nhiên không có mục Wikidata liên quan và đưa ra một số kết quả phù hợp có thể có trên Wikidata.

Việc thêm dữ liệu có cấu trúc giúp bạn dễ dàng nắm bắt các chủ đề, khái niệm hoặc thực thể được thảo luận trong một bài viết.

 
Ảnh chụp màn hình giao diện Duplicity tool.

Để khám phá thêm các công cụ Wikimedia, hãy truy cập Toolhub. Or, learn about hosting your tools and bots for free on Toolforge.

Tham gia cộng đồng công nghệ Wikimedia

Một cách tuyệt vời để tìm cách đóng góp là kết nối với cộng đồng kỹ thuật. Bạn có thể gặp gỡ mọi người và thảo luận về công việc phát triển trên nhiều kênh truyền thông và tại các sự kiện như Hackathons. Wikimedia Foundation cũng cung cấp các chương trình tiếp cận cộng đồng để cố vấn cho các nhà phát triển mới.

 
Những người tham dự Wikimedia Hackathon ở Praha, 2019.

Bắt đầu với tư cách là cộng tác viên mới

  • Truy cập trang Nhà phát triển mới để tìm hiểu thêm về cách bắt đầu phát triển và đóng góp cho nguồn mở Wikimedia.
  • Sử dụng Developer Portal để tìm các tài nguyên và hướng dẫn được tuyển chọn cho lĩnh vực bạn quan tâm.