วิธีการเป็นแฮกเกอร์มีเดียวิกิ

From MediaWiki.org
Jump to: navigation, search
This page is a translated version of the page How to become a MediaWiki hacker and the translation is 99% complete.

Outdated translations are marked like this.
Other languages:
العربية • ‎български • ‎dansk • ‎Deutsch • ‎Ελληνικά • ‎English • ‎español • ‎فارسی • ‎français • ‎magyar • ‎Bahasa Indonesia • ‎italiano • ‎日本語 • ‎한국어 • ‎Nederlands • ‎occitan • ‎ਪੰਜਾਬੀ • ‎polski • ‎português • ‎português do Brasil • ‎română • ‎русский • ‎српски / srpski • ‎svenska • ‎ไทย • ‎Türkçe • ‎Tiếng Việt • ‎中文
บทความนี้เขียนขึ้นเพื่อช่วยให้นักพัฒนาได้เรียนรู้ทักษะพื้นฐานที่จำเป็นเพื่อนำไปสู่การพัฒนามีเดียวิกิ

หากคุณเป็นนักพัฒนาที่มีประสบการณ์ที่มีความคุ้นเคยกับการใช้มีเดียวิกิอยู่แล้ว ให้เยี่ยมชมศูนย์นักพัฒนาDeveloper hubแทน

ภาพรวม[edit]

มีเดียวิกิเป็นซอฟต์แวร์ที่ทรงอานุภาพของวิกิพีเดีย, โครงการพี่น้อง และวิกินับพันทั่วโลก มันทำงานบนระบบปฏิบัติการส่วนใหญ่ ซึ่งเขียนในภาษาพีเอชพี ส่วนใหญ่ใช้มายเอสคิวเอลและเซิร์ฟเวอร์ฐานข้อมูลมาเรียดีบี และใช้เจเควียรี ในฐานะไลบรารีจาวาสคริปต์ การพัฒนาของมีเดียวิกิได้รับการสนับสนุนหลักโดยมูลนิธิวิกิมีเดีย ผ่านนักพัฒนาชุมชนอาสาสมัครส่วนใหญ่ที่ทำหน้าที่ได้เป็นอย่างดี

หน้านี้จะช่วยให้คุณเริ่มต้นบนเส้นทางที่จะกลายเป็นผู้มีส่วนร่วมกับมีเดียวิกิ นี่ไม่ได้เป็นเกี่ยวกับการสอน มันเป็นเพียงแค่จุดที่คุณไปยังสถานที่ต่าง ๆ ที่คุณสามารถไปเรียนรู้ต่อสิ่งที่จำเป็น

เริ่มต้น[edit]

เริ่มต้นด้วยการลงทะเบียนการเข้าถึงนักพัฒนาDeveloper access และอ่านเกี่ยวกับการสอนเกอร์ริต จากนั้นคุณสามารถย้ายไปยังการดาวน์โหลดโค้ดของเรา, การทำการเปลี่ยนแปลง, การทดสอบเหล่านั้น และการยื่นเสนอแพตช์ มีสองวิธีการตั้งค่าพัฒนาสิ่งรอบข้างของคุณ: โดยติดตั้งเครื่องเสมือนที่กำหนดไว้ล่วงหน้า (vagrant) หรือคู่มือ

เครื่องเสมือนกับวาแกรนต์[edit]

  • การติดตั้งวาแกรนต์ - ขั้นตอนเหล่านี้จะติดตั้งเซิร์ฟเวอร์มีเดียวิกิ กับความต้องการทั้งหมดภายในเครื่องเสมือนลินุกซ์ (สามารถนำมาใช้บนปฏิคมลินุกซ์, วินโดวส์ หรือแมค)

การติดตั้งด้วยตนเอง[edit]

  • ความต้องการการติดตั้ง — ตรวจสอบความต้องการของฮาร์ดแวร์ และติดตั้งเซิร์ฟเวอร์แลมป์, แมมป์ หรือแวมป์ (ลินุกซ์, แมค หรือวินโดวส์ บวกกับอะแพชี, มายเอสคิวแอล/มาเรียดีบี และพีเอชพี)
  • Download from GitDownload from Git — ดาวน์โหลดซอร์สโค้ดล่าสุดจากซอฟต์แวร์กิต
  • Installation guideManual:Installation guide — ต่อด้วยการติดตั้งและกำหนดค่าเริ่มต้น
  • ตั้งค่าโหมดการแก้ปัญหาต่าง ๆ ในสภาพแวดล้อมของคุณ เพื่อแสดงคำเตือนและข้อผิดพลาดในช่วงต้น

มันไม่จำเป็นต้องดาวน์โหลดฐานข้อมูลวิกิพีเดียกองไว้ เพื่อพัฒนาคุณลักษณะมีเดียวิกิ ในความเป็นจริง ในหลายกรณีก็ง่ายต่อการใช้ฐานข้อมูล ที่อยู่ใกล้กับที่ว่างเปล่ามีเพียงไม่กี่หน้าทดสอบพิเศษที่สร้างขึ้น อย่างไรก็ตาม หากมีเหตุผลบางอย่างที่คุณต้องการที่จะมีสำเนาของวิกิพีเดีย คุณสามารถได้รับการถ่ายโอนข้อมูล

แนะนำให้อ่าน[edit]

คำแนะนำทั่วไป[edit]

หากคุณเลือกที่จะทำงานในรายงานข้อผิดพลาดที่ต้องมีการเขียนหรือการเปลี่ยนรหัส คุณอาจต้องการดูหน้าเหล่านี้อย่างเผิน ๆ เป็นอย่างน้อยก่อน:

ดูในฐานะนักพัฒนาแก้ไขข้อผิดพลาด รวมทั้งการตรวจสอบ, มอบหมายซอฟต์แวร์กิต, ได้รับการตรวจทานและผสาน รวมถึงการปิดตั๋วบั๊กซิลลา (บัดนี้ถูกแทนที่โดย ฟาบริเคเตอร์Phabricator)

ทั้งสองเส้นทางหลักในการเริ่มกับการพัฒนามีเดียวิกิจะรับการแก้ไขข้อผิดพลาดเล็ก ๆ น้อย ๆ ในรหัสที่มีอยู่ หรือเพื่อเพิ่มคุณลักษณะใหม่ ซึ่งมักจะผ่านส่วนขยายของมีเดียวิกิ


ข้อเสนอแนะ, คำถาม และการสนับสนุน[edit]

  • คุณคาดว่าจะทำวิจัยพื้นฐานของตัวเองบางส่วนก่อน: ดูที่รหัส, พยายามที่จะทำความเข้าใจบางอย่างว่ามันควรจะทำอย่างไร, อ่านเอกสารที่เกี่ยวข้อง, พยายามหาสถานที่ที่น่าจะเป็น ที่คุณจำเป็นต้องทำการเปลี่ยนแปลงเพื่อแก้ไขข้อผิดพลาด
  • ส่วนสถาปัตยกรรมซอฟต์แวร์ หากคุณมีคำถามทั่วไปเกี่ยวกับโครงสร้างพื้นฐาน หรือขั้นตอนการทำงานที่ไม่ได้ผูกติดอยู่กับข้อผิดพลาดเฉพาะที่คุณต้องการที่จะทำงานด้วย ให้ใช้ช่องทางทั่วไป เช่น IRCIRC, รายชื่อผู้รับจดหมาย หรือหน้าอภิปรายวิกิ ตัวอย่างเช่น หากคุณมีปัญหากับเกอร์ริต ส่วนหน้าอภิปรายเกอร์ริตอาจจะเป็นส่วนที่ดีในการสอบถาม
  • หากคุณมีคำถามเกี่ยวกับข้อผิดพลาดของตัวมันเอง ให้แสดงความคิดเห็นในรายงานฟาบริเคเตอร์Phabricatorที่สอดคล้องกัน "ฉันจะต้องทำอะไรเพื่อแก้ไขปัญหานี้หรือไม่ ?" ไม่ได้เป็นคำถามที่ดีสำหรับการเริ่มต้น: คำถามเฉพาะเจาะจงมากขึ้นของคุณ คือ มีใครสักคนที่สามารถตอบได้อย่างรวดเร็วมากกว่า หากคุณไม่มีความคิดในการแก้ไขข้อผิดพลาดทุกวิธี บางทีข้อผิดพลาดยังไม่ได้เกิดขึ้นกับคุณ - โปรดพิจารณาการค้นหาสิ่งที่ง่ายกว่าเป็นอันดับแรก
  • เมื่อถาม, อธิบายรายละเอียดสิ่งที่คุณมีความพยายามและพบแล้ว เพื่อให้ผู้อื่นสามารถช่วยในระดับที่เหมาะสม พยายามเจาะจง - ตัวอย่างเช่น คัดลอกและวางคำสั่งของคุณและข้อมูลที่ส่งออกมาของพวกเขา (ถ้าไม่ยาวเกินไป) แทนการถอดความในคำของคุณเอง หลีกเลี่ยงความเข้าใจผิดนี้
  • หลีกเลี่ยงอีเมลส่วนตัวสำหรับการร้องขอการสนับสนุนในช่องทางสังคมออนไลน์ของเรา
  • กรุณารอสักครู่เมื่อกำลังมองหาการป้อนข้อมูลและแสดงความคิดเห็น ในไออาร์ซี ไม่ต้องร้องขอที่จะถาม หรือเพียงแค่ถาม: คำถามส่วนใหญ่จะสามารถตอบโดยสมาชิกในชุมชนอื่น ๆ ด้วย หากคุณถามในช่องไออาร์ซี หากไม่มีใครตอบ กรุณาสอบถามเกี่ยวกับรายงานข้อผิดพลาดหรือหน้าวิกิที่เกี่ยวข้องกับปัญหาที่เกิดขึ้น อย่าเพียงแต่วางคำถามทิ้งไว้
  • เรียนรู้เพิ่มเติมที่== การสื่อสาร ==Communication
  • You can ask at the weekly Technical Advice IRC Meeting on #wikimedia-tech


การติดต่อสื่อสารที่คุณทำงานเกี่ยวกับข้อผิดพลาด[edit]

คุณไม่จำเป็นต้องได้รับการกำหนดให้เป็นผู้รับโอนในรายงานข้อผิดพลาดหรือประกาศแผนการของคุณก่อนที่คุณจะเริ่มต้นทำงานกับข้อผิดพลาด แต่มันก็เป็นที่น่ายินดี

ในช่วงล่าสุด เมื่อคุณอยู่ใกล้กับการสร้างแพตช์สำหรับข้อผิดพลาด มันเป็นสิ่งที่ดีที่จะประกาศในความคิดเห็นที่คุณกำลังทำงานอยู่ นอกจากนี้ การประกาศของคุณยังช่วยให้คนอื่นไม่ต้องทำงานเกี่ยวกับข้อผิดพลาดในเวลาเดียวกัน รวมถึงการทำงานที่ซ้ำกัน

นอกจากนี้ โปรดทราบว่า หากมีการรายงานข้อผิดพลาดแล้วมีลิงก์ก่อนหน้าสำหรับแพตช์ในเกอร์ริต และมีโครงการ "แพตช์สำหรับการทบทวน" (Patch-For-Review) ที่เกี่ยวข้อง คุณควรเลือกข้อผิดพลาดที่แตกต่างกันในการทำงานแทน - โดยหลีกเลี่ยงการทำงานซ้ำ หากแพตช์ในเกอร์ริตไม่ได้ทำการรวมกันและยังไม่เห็นการเปลี่ยนแปลงใด ๆ เป็นเวลานาน คุณยังสามารถรับแพตช์ที่มีอยู่และลองที่จะปรับปรุงมัน

หากคุณหยุดการทำงานในภารกิจ คุณควรจะนำตัวเองออกในฐานะผู้รับโอนรายงานข้อผิดพลาด และตั้งค่าผู้รับโอนไปเป็นผู้รับโอนที่ค่าเริ่มต้น เพื่อให้ผู้อื่นรู้ว่าพวกเขาสามารถทำงานในการรายงานข้อผิดพลาดและไม่ได้คาดหวังให้คุณยังคงทำงานกับมัน

โดยการสื่อสารในช่วงต้นคุณจะได้รับความเอาใจใส่, ข้อเสนอแนะ และความช่วยเหลือจากสมาชิกในชุมชนมากขึ้น


การทำงานในส่วนขยาย[edit]

หากคุณเลือกที่จะทำงานในรหัสส่วนขยายมีเดียวิกิ ลิงก์ต่อไปนี้จะให้ข้อมูลเพิ่มเติม

มูลบทส่วนขยายมีเดียวิกิ
ทรัพยากรส่วนขยายมีเดียวิกิ


ข้อเสนอแนะโดยการปฏิบัติจริง[edit]

ส่วนต่อไปนี้อธิบายไม่กี่พื้นที่ตัวอย่าง เช่น ในที่ที่คุณสามารถมีส่วนร่วม แต่คุณจะไม่ถูกจำกัดไปยังพื้นที่เหล่านี้ !

ที่มุมขวาบนของงาน (รายงานข้อผิดพลาด) ในฟาบริเคเตอร์คุณสามารถดูผลผลิต และส่วนประกอบว่าปัญหาอยู่ที่ใด ต่อไปนี้จะให้คำแนะนำเกี่ยวกับที่รองรับที่ใส่กิตว่ารหัสจะอยู่ในนี้ และเกี่ยวกับทีมพัฒนา ซึ่งคุณสามารถติดต่อถ้าคุณต้องการที่จะอภิปรายเกี่ยวกับมันในทางที่"กว้างขึ้น" (ในฐานะความคิดเห็นในรายงานข้อผิดพลาด โดยเฉพาะอย่างยิ่งควรดูปัญหาเฉพาะเจาะจงที่อธิบายไว้ในรายงานเท่านั้น)

เอกสาร[edit]

Pywikibot[edit]

ไพวิกิบอต เป็นเค้าโครงภาษาไพทอน เพื่อการเขียนบอตสำหรับมีเดียวิกิ ถามคำถามการพัฒนาโดยทั่วไปของคุณในรายชื่อผู้รับจดหมายไพวิกิบอต และ#ช่องไพวิกิบอตไออาร์ซี

มัลติมีเดีย[edit]

ถามคำถามการพัฒนามัลติมีเดียโดยทั่วไปของคุณในรายชื่อผู้รับจดหมายมัลติมีเดีย และ#ช่องวิกิมีเดีย-มัลติมีเดีย ไออาร์ซี

แอพมือถือ[edit]

There are numerous applications for mobile devices (Android, iOS, Windows Phone, …) to access Wikimedia wikis. Read the general development information and ask your questions on the Mobile mailing list and the #wikimedia-mobile IRC channel.

การอ่าน[edit]

The reading team builds the software that serves our readers. We also manage the mobile web experience. Read the general development information and ask your questions on the Mobile mailing list and the #wikimedia-mobile IRC channel.

วิกิสนเทศ[edit]

Wikidata is a centralized knowledge base for structured data, such as interwiki references and statistical information. Ask your general development questions on the Wikidata mailing list, the #wikidata IRC channel and on the wiki.

Huggle[edit]

Huggle is a desktop application for dealing with vandalism on Wikimedia projects, written in C++.

Browser Tests & Quality Assurance[edit]

Automated browser tests help Wikimedia engineers produce quality user facing software faster. See the page on Browser testing for more on what technologies we use and how to get involved. For more general information, see Quality Assurance.

Language Engineering (Localization/Translation/Internationalization)[edit]

Ask your general Language Engineering development questions on the mediawiki-i18n mailing list and the #mediawiki-i18n IRC channel.

VisualEditor and Parsoid[edit]

VisualEditor is MediaWiki's WYSIWYG editor. Ask your general VisualEditor development questions on the wikitech mailing list and the #mediawiki-visualeditor IRC channel.

VisualEditor is powered by Parsoid, a wikitext parser and runtime. Ask your general Parsoid development questions on the wikitext mailing list and the #mediawiki-parsoid IRC channel.

การค้นพบ / ค้นหา[edit]

The Discovery team builds the path of anonymous discovery to a trusted and relevant source of knowledge. Ask your general development questions on the Discovery mailing list and on the #wikimedia-discovery IRC channel.

Analytics[edit]

The Analytics team empowers and supports data-informed decision making in Wikimedia. Ask your general development questions on the Analytics mailing list.

Design[edit]

Fixing design bugs or requests requires existing graphics skills working with a Vector graphics application (e.g. Inkscape). Basic knowledge of CSS can also be helpful for integration. Ask your general development questions on the Design mailing list and the #wikimedia-design IRC channel.

Skins[edit]

Skins allow users to customize the look and feel of MediaWiki. Basic knowledge of CSS and PHP is helpful. Check the project page in Phabricator for more information on each skin and contact information.

System messages and localization/translation problems[edit]

System messages in MediaWiki or its extensions often need small corrections to the English text, but the source text can only be changed in the code by developers, contrary to translations. This has grown into a large backlog of usually very easy fixes (which might be as easy as fixing a typo).

Also, many messages are unclear and require better documentation (see Localisation#Message documentation). Missing documentation can also be added by just editing the /qqq subpage of the message on translatewiki.net, like all translations, but may require some study of the code to understand what a message is for: it's therefore optimal to start understanding the code, and very useful for the translators (who do not have such skills).

Collaboration[edit]

The Collaboration team mainly works on Echo and Flow.

Ask questions regarding Collaboration team projects on the #wikimedia-collaboration IRC channel.

MediaWiki[edit]

MediaWiki is the core software which provides basic wiki functionality. It is complex, written in PHP, and some areas might not have clear maintainership. Ask your general development questions on the wikitech mailing list and the #wikimedia-dev and #mediawiki IRC channels.

Phlogiston[edit]

Phabricator is used by Wikimedia for project management, software bug reporting and feature requests. Phlogiston is a set of SQL, Python, and R scripts to report on Phabricator data, particularly burnup reports and forecasting.

Semantic MediaWiki[edit]

Semantic MediaWiki is one of the biggest and most popular MediaWiki extensions.

Maps[edit]

Maps is a popular MediaWiki extension that allows for, amongst other things, embedding of dynamic maps into wiki pages

And many more…[edit]

Still not enough ideas? There are more fields you can explore - MediaWiki has hundreds of extensions and tools! Check out the complete list of bugs recommended for new contributors:

If you have any trouble or questions, please ask for help via IRC or feel free to contact Andre Klapper or Quim Gil.

ภาคผนวก[edit]

การมีส่วนร่วมมีเดียวิกิที่ทำงานในบังคาลอร์ ประเทศอินเดีย

PHP[edit]

มีเดียวิกิได้รับการเขียนในภาษาพีเอชพี ดังนั้นคุณจะต้องได้รับความคุ้นเคยกับภาษาพีเอชพี เพื่อที่จะแฮกแกนของมีเดียวิกิ

เรียนรู้ภาษาพีเอชพี
  • สอนการใช้ภาษาพีเอชพี — ใช้ประโยชน์ได้ในภาษาที่ต่างกัน หากคุณไม่ได้มีความรู้เกี่ยวกับภาษาพีเอชพีแต่รู้วิธีการเขียนโปรแกรมในจุดหมายภาษาโปรแกรมอื่น ๆ ภาษาพีเอชพีก็จะเป็นเรื่องง่ายสำหรับคุณที่จะเรียนรู้
  • PHP Programming at Wikibooks.
  • PHP topic at Wikiversity.
ทรัพยากรภาษาพีเอชพี
สิ่งที่ต้องรู้
  • สคริปต์ maintenance/eval.php ในมีเดียวิกิ ได้เอื้ออำนวยตัวแปลภาษาพีเอชพีพื้นฐาน กับอ็อบเจ็คมีเดียวิกิ และประเภทที่ทำการโหลด

ฐานข้อมูล[edit]

คุณสมบัติหลายอย่างจำเป็นต้องมีการจัดการฐานข้อมูลบางส่วน ดังนั้นคุณจึงต้องมีความคุ้นเคยกับมายเอสคิวแอล/มาเรียดีบี

เรียนรู้มายเอสคิวแอล/มาเรียดีบี
ทรัพยากรมายเอสคิวแอล/มาเรียดีบี
สิ่งที่ต้องรู้
  • ทดสอบโค้ดของคุณกับมายเอสคิวแอล/มาเรียดีบี
    • มีเดียวิกิในปัจจุบันใช้มายเอสคิวแอลและมาเรียดีบี เป็นระบบจัดการเว็บไซต์ของฐานข้อมูลหลัก นอกจากนี้ยังสนับสนุนดีบีเอ็มเอสอื่น ๆ เช่น โพสต์เกรสคิวเอล และเอสคิวไลท์ อย่างไรก็ตาม นักพัฒนาเกือบทั้งหมดใช้มายเอสคิวแอล/มาเรียดีบี และไม่ทดสอบดีบีเอ็มเอสอื่น ๆ ซึ่งส่งผลทำลายอยู่เป็นประจำ คุณจึงควรใช้มายเอสคิวแอล/มาเรียดีบีเมื่อทำการทดสอบแพตช์ หากคุณกำลังพยายามที่จะปรับปรุงการสนับสนุนสำหรับฐานข้อมูลอื่นโดยเฉพาะ ในกรณีหลัง ให้แน่ใจว่าคุณระมัดระวังที่จะไม่ทำลายมายเอสคิวแอล/มาเรียดีบี (หรือเขียนคำสั่งที่มีความน่ากลัวที่ไม่มีประสิทธิภาพในนั้น) ตั้งแต่มายเอสคิวแอล/มาเรียดีบีเป็นสิ่งที่คนอื่นใช้

จาวาสคริปต์และซีเอสเอส[edit]

จาวาสคริปต์และซีเอสเอส ได้กลายเป็นรหัสส่วนหน้าเว็บไซต์ที่สามารถมองเห็นได้ในบราวเซอร์ที่มีอยู่ทั่วไปทุกหนทุกแห่ง คุณไม่ต้องคุ้นเคยกับจาวาสคริปต์, เจเควียรี และซีเอสเอสในการทำงานกับมีเดียวิกิ แต่คุณอาจต้อง โดยขึ้นอยู่กับสิ่งที่คุณจะเลือกทำงาน

เรียนรู้เกี่ยวกับจาวาสคริปต์และซีเอสเอส
ทรัพยากรจาวาสคริปต์และซีเอสเอส

MediaWiki[edit]

ฐานรหัสมีเดียวิกิมีขนาดใหญ่ และมีบางส่วนที่น่าเกลียด ไม่ควรต้องถูกครอบงำโดยสิ่งดังกล่าว เมื่อคุณเริ่มครั้งแรก, มีจุดมุ่งหมายที่จะเขียนคุณลักษณะ หรือการแก้ไขข้อบกพร่อง ซึ่งมีข้อจำกัดในอาณาบริเวณเล็ก ๆ ของรหัส

หนังสือมีเดียวิกิชั้นต้นและต้องอ่าน
ทรัพยากรมีเดียวิกิ

ดูเพิ่ม[edit]