Open main menu

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

This page is a translated version of the page How to become a MediaWiki hacker and the translation is 98% complete.

Outdated translations are marked like this.
Other languages:
Bahasa Indonesia • ‎Deutsch • ‎English • ‎Nederlands • ‎Tiếng Việt • ‎Türkçe • ‎dansk • ‎español • ‎français • ‎interlingua • ‎italiano • ‎magyar • ‎occitan • ‎polski • ‎português • ‎português do Brasil • ‎română • ‎svenska • ‎čeština • ‎Ελληνικά • ‎български • ‎русский • ‎српски / srpski • ‎українська • ‎العربية • ‎فارسی • ‎हिन्दी • ‎বাংলা • ‎ਪੰਜਾਬੀ • ‎ไทย • ‎中文 • ‎日本語 • ‎한국어

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

เส้นทางหลักในการเริ่มต้นใช้งานกับการพัฒนาวิกิมีเดียคือการร่วมกับโครงการวิกิมีเดียที่ให้คำปรึกษา ทางเลือกหนึ่งที่ไม่มีการให้คำปรึกษาคือการแก้ไขบั๊กเล็กน้อยที่น่ารำคาญ

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

สำหรับวิธีการอื่น ๆ ที่จะได้มีส่วนร่วมในชุมชนวิกิมีเดีย ดู วิธีในการมีส่วนร่วม​

Contents

ภาพรวม

มีเดียวิกิเป็นซอฟต์แวร์ที่ทรงอานุภาพของวิกิพีเดีย, โครงการพี่น้อง และวิกินับพันทั่วโลก

มีเดียวิกิได้รับการเขียนขึ้นในภาษาโปรแกรมพีเอชพี[1] ใช้เจเควียรีเป็นไลบรารีของจาวาสคริปต์

มีเดียวิกิเขียนขึ้นเป็นหลักสำหรับแลมป์[2] และทำงานในระบบปฏิบัติการส่วนใหญ่ มีเดียวิกิใช้เซิร์ฟเวอร์ฐานข้อมูลมายเอสคิวเอล และมาเรียดีบีเป็นหลัก[3]

การพัฒนาเกิดขึ้นในรูปแบบโอเพนซอร์ส[4] โดยเป็นการประสานงานออนไลน์ส่วนใหญ่ และได้รับการสนับสนุนจากมูลนิธิวิกิมีเดีย แม้ว่าอาสาสมัครพัฒนาชุมชนจะมีส่วนสำคัญเช่นกัน

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

ตั้งค่าสภาพแวดล้อมการพัฒนาของคุณ

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

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

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

สภาพแวดล้อมการพัฒนาดอกเกอร์

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

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

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

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

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

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



สื่อสารว่าคุณทำงานในภารกิจ

คุณไม่จำเป็นต้องถามว่าคุณสามารถทำงานได้หรือไม่

คุณไม่จำเป็นต้องประกาศแผนการของคุณก่อนที่คุณจะเริ่มทำงานกับบั๊ก แต่ก็ยินดีที่จะต้อนรับ

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

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

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

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


ภาคผนวก

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

PHP

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

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

ฐานข้อมูล

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

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

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

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

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

MediaWiki

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

ข้อมูลพื้นฐานของมีเดียวิกิและต้องอ่าน
  • สถาปัตยกรรมมีเดียวิกิ — ภาพรวมระดับสูงขององค์ประกอบหลักมีเดียวิกิ และวิธีที่พวกเขาทำงานด้วยกัน
  • Security for developers — ภาพรวมของสาเหตุและวิธีการเขียนโค้ดที่เชื่อถือได้
ทรัพยากรมีเดียวิกิ
  • Manual:Code — รายชื่อของไฟล์ที่สำคัญและเชื่อมโยงไปยังข้อมูลรายละเอียดเพิ่มเติม
  • Manual:Hooks — รายการของตะขอ หากคุณกำลังพยายามที่จะหาสิ่งที่เป็นส่วนหนึ่งของฐานรหัสทำอะไรบางอย่าง ก็มักจะเป็นตำแหน่งที่ดีที่จะเริ่มต้นด้วยการค้นหาตะขอที่เกี่ยวข้อง
  • Manual:Coding conventions — ภาพรวมของการประชุมการเข้ารหัสทั่วไปภายในชุมชนมีเดียวิกิ
  • รหัสเอกสาร (class reference) — สร้างเอกสารจากรหัส และแสดงความคิดเห็นรหัสโดยอัตโนมัติ
  • Manual:How to debug — คู่มือการแก้จุดบกพร่องมีเดียวิกิ
  • Manual:Eval.php — เครื่องมือในการโต้ตอบกับอ็อบเจ็ค ของมีเดียวิกิแบบสด ๆ

ส่วนขยายมีเดียวิกิ

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

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

ดูเพิ่ม

  1. มีเดียวิกิทั้งหมดไม่ได้รับการเขียนขึ้นในภาษาพีเอชพี เครื่องมือสนับสนุนบางอย่างเขียนในภาษาอื่น ๆ รวมไปถึง แบทช์ไฟล์, เชลล์สคริปต์, เมคไฟล์ และภาษาไพทอน
  2. มีเดียวิกิทำงานบนแพลตฟอร์มส่วนใหญ่ที่สามารถรองรับพีเอชพีได้ อย่างไรก็ตาม การขาดคุณสมบัติหรือคุณลักษณะระบบปฏิบัติการบางอย่างอาจจำกัดการทำงานหรือประสิทธิภาพการทำงานของมีเดียวิกิบนแพลตฟอร์มที่ไม่ใช่แลมป์
  3. มีเดียวิกิมีการสนับสนุนฐานข้อมูลนอกเหนือจากมายเอสคิวเอล และมาเรียดีบี รวมไปถึงออราเคิล, โพสต์เกรสคิวเอล, เอสคิวแอลไลท์ และไมโครซอฟท์ เอสคิวแอลเซิร์ฟเวอร์
  4. นักพัฒนาซอฟต์แวร์เป็นกลุ่มอาสาสมัครและพนักงาน (หรือผู้รับเหมา) สำหรับองค์กรต่าง ๆ สำหรับรายชื่อผู้ที่ทำงานกับโค้ดมีเดียวิกิ อ่านบทความ Developers
  5. เรียกดูซอร์สโค้ดและการแก้ไขที่เก็บรหัสที่ https://phabricator.wikimedia.org/diffusion/ หรือดาวน์โหลดซอร์สโค้ดไปยังระบบของคุณโดยใช้เกอร์ริต