New Developers/Introduction to the Wikimedia Technical Ecosystem/vi

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.

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. 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ó.

To learn more, visit.

Wikimedia mobile apps
Mobile apps expand the reach of Wikimedia content by allowing users to interact with Wikimedia without using a browser. There are apps for the Android, iOS, and KaiOS platforms, apps for different Wikimedia projects like Commons, Wikipedia, and Wiktionary, and apps for activities like reading, contributing, and more. Many apps have vibrant developer communities and welcome new contributors.

To learn more, visit.

Templates and modules
Templates enable one piece of content to appear on multiple wiki pages ("transclusion"). Many wikis rely heavily on templates: there are thousands of them, they're used on almost every page, and they're integral to wiki functionality. You can pass parameters to templates to customise how content is handled in different contexts.

You don't need a developer account to edit or create a template, and they're written in wikitext. That makes templates an easy way to get started with customising wiki behavior.

Modules are similar to templates, but instead of being written in wikitext, they use the Lua programming language. While templates are part of the core MediaWiki application, support for modules is implemented by an extension called.

To learn more about templates, visit. To learn more about modules and how Lua is used on MediaWiki, visit the Scribunto Lua manual.

User scripts and gadgets
MediaWiki supports front-end customisation, or "on-wiki" development, to enhance the software's core functionality. 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".

Gadgets are user-generated customisations that are available for installation on a wiki, via the Gadgets MediaWiki extension. Many gadgets originated as user scripts that became widely-used on their home wiki, and admins wanted to make them easier for everyone to find and use. Admins can configure which gadgets are available and enabled by default for an entire MediaWiki site or skin.

To learn more about user scripts and gadgets, visit .

Build tools and bots to help Wikimedia projects
MediaWiki APIs provide direct access to the data contained in the MediaWiki database. This includes wiki content, metadata, analytics data, and more. You can use these APIs to build apps that contribute content or new functionality to the Wikimedia ecosystem. The API modules provide programmatic access to much of the same functionality provided by the MediaWiki web interface.

Bots
Bots are automated programs that help wiki projects by doing crucial but repetitive tasks. 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.

Bots can request pages and submit edits to wikis just like how human users do the same tasks in a web browser. Because bots access pages the same way people do, they can get caught in edit conflicts, have page timeouts, or run across other unexpected complications while requesting pages or making edits. Since bots generally complete high-volume work, you should consider these situations when writing a bot.

To learn more about bots, visit.

Tools
Tools are software applications that help people working on Wikimedia projects. Tools can do all kinds of tasks, like help editors discover content to improve, simplify edit-a-thon planning, visualise wiki content, help fight vandalism, and much more.

The MediaWiki Action API gives you programmatic access to content on any Wikimedia wiki. You can use the Action API to search and display wiki pages, get media files, edit pages, and manage wikis. Client libraries implementing the MediaWiki API are available in many languages, including Python and JavaScript.

To explore more Wikimedia tools, visit Toolhub. Or, learn about hosting your tools and bots for free on Toolforge.

Join the Wikimedia tech community
A great way to find ways to contribute is to get connected to the technical community. You can meet people and discuss development work on various communication channels and at events like Hackathons. The Wikimedia Foundation also offers outreach programs to mentor new developers.

Get started as a new contributor

 * Visit the New Developers page to learn more about getting started with development and contributing to Wikimedia open source.
 * Use the Developer Portal to find curated resources and tutorials for your area of interest.