How to become a MediaWiki hacker/th

บทความนี้เขียนขึ้นเพื่อช่วยให้นักพัฒนาได้เรียนรู้ทักษะพื้นฐานที่จำเป็นเพื่อนำไปสู่การพัฒนามีเดียวิกิ

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

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

หน้านี้จะช่วยให้คุณเริ่มต้นบนเส้นทางที่จะกลายเป็นผู้มีส่วนร่วมกับมีเดียวิกิ It is not a tutorial; it just points you to various places where you can go learn whatever is necessary.

เริ่มต้น
Start by registering for  and reading the Gerrit tutorial. Then you can move on to downloading our code, making changes, testing them, and submitting patches. มีสองวิธีการตั้งค่าพัฒนาสิ่งรอบข้างของคุณ: โดยติดตั้งเครื่องเสมือนที่กำหนดไว้ล่วงหน้า (vagrant) หรือคู่มือ

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

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

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

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

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

แนะนำให้อ่าน


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

ทั้งสองเส้นทางหลักในการเริ่มกับการพัฒนามีเดียวิกิจะรับการแก้ไขข้อผิดพลาดเล็ก ๆ น้อย ๆ ในรหัสที่มีอยู่ หรือเพื่อเพิ่มคุณลักษณะใหม่ ซึ่งมักจะผ่านส่วนขยายของมีเดียวิกิ  
 * การเข้ารหัสการประชุม และหน้าเว็บใด ๆ ที่เกี่ยวข้องกับงานของคุณ (,, , …)
 * ตามแนวทางข้อความผูกมัด โดยเฉพาะอย่างยิ่งส่วนตัวอย่างที่ด้านล่าง จะเพิ่มการแจ้งเตือนเกี่ยวกับเส้นทางของการรายงานที่สอดคล้องกันในโดยอัตโนมัติ ดังนั้นไม่มีความจำเป็นอีกต่อไปที่จะเพิ่มความคิดเห็น"โปรดตรวจสอบ"ในรายงาน
 * ตรวจสอบรหัสของคุณกับก่อนกระทำรายการตรวจสอบ อย่าข้ามขั้นตอนนี้ ; คุณจะมีความสุขที่คุณไม่ได้ทำ
 * ได้รับการตรวจสอบรหัส ค้นหาและเพิ่มผู้ตรวจสอบที่มีศักยภาพต่อแพตช์ของคุณ
 * การแก้ไขเปลี่ยนแปลง อย่าสร้างเซ็ตการแก้ไขเกอร์ริตใหม่ในการแก้ไขปัญหาอย่างใดอย่างหนึ่งก่อนหน้าของคุณ !
 * ในกรณีส่วนใหญ่เมื่อทำงานกับมีเดียวิกิ คุณไม่ต้องการที่จะแฮกแกนวิกิมีเดีย จนกว่าคุณจะรู้ถึงสิ่งที่คุณกำลังทำจริง ๆ

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

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

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

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

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

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


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


 * ทรัพยากรส่วนขยายมีเดียวิกิ:
 * รายการของส่วนขยายสามัญ — วิธีง่าย ๆ ในการคุ้นเคยกับวิธีการทำงานของส่วนขยาย
 * คำแนะนำสั้น ๆ สำหรับการพัฒนาส่วนขยายมีเดียวิกิ — วิดีโอนำเสนอเกี่ยวกับวิธีการสร้างส่วนขยายมีเดียวิกิ (สไลด์)
 * การทำส่วนขยายมีเดียวิกิ — ครอบคลุมถึงวิธีการในการพัฒนาส่วนขยายสำหรับมีเดียวิกิ, การปฏิบัติที่ดีที่สุด และวิธีการที่จะมีส่วนร่วมในชุมชนมีเดีย ตั้งแต่เดือนกุมภาพันธ์ ค.ศ. 2011
 * แม่แบบหน้าพิเศษ — เพิ่มหน้าพิเศษเพื่อแสดงข้อมูลที่มีประโยชน์บางอย่าง
 * ขยายมาร์กอัปวิกิ — เพิ่มพาร์เซอร์ฮุกเพื่อแก้ไขเนื้อหาของข้อความวิกิ

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


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


 * ทรัพยากรภาษาพีเอชพี:
 * คู่มือภาษาพีเอชพี — ให้บริการในภาษาที่แตกต่างกัน
 * การประชุมการเข้ารหัสภาษาพีเอชพีภายในชุมชนมีเดียวิกิ


 * สิ่งที่ต้องรู้:
 * สคริปต์  ในมีเดียวิกิ ได้เอื้ออำนวยตัวแปลภาษาพีเอชพีพื้นฐาน กับอ็อบเจ็คมีเดียวิกิ และประเภทที่ทำการโหลด

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


 * เรียนรู้มายเอสคิวแอล/มาเรียดีบี
 * เกี่ยวกับการสอนมายเอสคิวแอล — จากคู่มืออ้างอิงมายเอสคิวแอล 5.0
 * MySQL at Wikibooks.


 * ทรัพยากรมายเอสคิวแอล/มาเรียดีบี
 * คู่มืออ้างอิงมายเอสคิวแอล — ใช้ประโยชน์ได้ในภาษาที่ต่างกัน
 * ฐานความรู้ของมาเรียดีบี
 * การประชุมการเข้ารหัสฐานข้อมูลภายในชุมชนมีเดียวิกิ


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

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


 * เรียนรู้เกี่ยวกับจาวาสคริปต์และซีเอสเอส
 * JavaScript and CSS at Wikibooks.
 * เริ่มต้นกับเจเควียรี — เกี่ยวกับการสอนเจเควียรี


 * ทรัพยากรจาวาสคริปต์และซีเอสเอส
 * การประชุมการเข้ารหัสจาวาสคริปต์ภายในชุมชนมีเดียวิกิ
 * การประชุมการเข้ารหัสซีเอสเอสภายในชุมชนมีเดียวิกิ

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


 * หนังสือมีเดียวิกิชั้นต้นและต้องอ่าน:
 * สถาปัตยกรรมมีเดียวิกิ — ภาพรวมระดับสูงขององค์ประกอบหลักมีเดียวิกิ และวิธีที่พวกเขาทำงานด้วยกัน
 *  — ภาพรวมของสาเหตุและวิธีการเขียนโค้ดที่เชื่อถือได้


 * ทรัพยากรมีเดียวิกิ:
 * — รายชื่อของไฟล์ที่สำคัญและเชื่อมโยงไปยังข้อมูลรายละเอียดเพิ่มเติม
 * — รายการของตะขอ หากคุณกำลังพยายามที่จะหาสิ่งที่เป็นส่วนหนึ่งของฐานรหัสทำอะไรบางอย่าง ก็มักจะเป็นตำแหน่งที่ดีที่จะเริ่มต้นด้วยการค้นหาตะขอที่เกี่ยวข้อง
 * — ภาพรวมของการประชุมการเข้ารหัสทั่วไปภายในชุมชนมีเดียวิกิ
 * — วิธีแฮกมีเดียวิกิ จากการตั้งค่าของผู้ใช้ในการขยายและส่วนกลาง
 * รหัสเอกสาร — สร้างเอกสารจากรหัส และแสดงความคิดเห็นรหัสโดยอัตโนมัติ
 * — คู่มือการแก้จุดบกพร่องมีเดียวิกิ
 * — เครื่องมือในการโต้ตอบกับอ็อบเจ็ค ของมีเดียวิกิแบบสด ๆ

ดูเพิ่ม

 * – เมื่อคุณได้อ่านข้อมูลอย่างละเอียดในบทความนี้ ก็ถึงเวลาที่จะไปสู่ข้อมูลในศูนย์กลางนักพัฒนา
 * MediaWiki Virtual Library (MVL) books; this page forms also part of the MediaWiki Developers Guide.
 * MediaWiki Virtual Library (MVL) books; this page forms also part of the MediaWiki Developers Guide.