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

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

Outdated translations are marked like this.
Other languages:
العربية • ‎български • ‎বাংলা • ‎dansk • ‎Deutsch • ‎Ελληνικά • ‎English • ‎español • ‎فارسی • ‎français • ‎हिन्दी • ‎magyar • ‎interlingua • ‎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แทน

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

ภาพรวม

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

ตัวอย่างเช่น หากคุณมีปัญหากับเกอร์ริต ส่วนหน้าอภิปรายเกอร์ริตอาจจะเป็นส่วนที่ดีในการสอบถาม

  • หากคุณมีคำถามเกี่ยวกับข้อผิดพลาดของตัวมันเอง ให้แสดงความคิดเห็นในรายงานฟาบริเคเตอร์Phabricatorที่สอดคล้องกัน

"ฉันจะต้องทำอะไรเพื่อแก้ไขปัญหานี้หรือไม่ ?" ไม่ได้เป็นคำถามที่ดีสำหรับการเริ่มต้น: คำถามเฉพาะเจาะจงมากขึ้นของคุณ คือ มีใครสักคนที่สามารถตอบได้อย่างรวดเร็วมากกว่า หากคุณไม่มีความคิดในการแก้ไขข้อผิดพลาดทุกวิธี บางทีข้อผิดพลาดยังไม่ได้เกิดขึ้นกับคุณ - โปรดพิจารณาการค้นหาสิ่งที่ง่ายกว่าเป็นอันดับแรก

  • เมื่อถาม, อธิบายรายละเอียดสิ่งที่คุณมีความพยายามและพบแล้ว เพื่อให้ผู้อื่นสามารถช่วยในระดับที่เหมาะสม

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

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

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


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

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

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

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

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

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

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

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

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


ภาคผนวก

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

PHP

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

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

ฐานข้อมูล

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

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

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

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

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

MediaWiki

ฐานรหัสมีเดียวิกิมีขนาดใหญ่ และมีบางส่วนที่น่าเกลียด ไม่ควรต้องถูกครอบงำโดยสิ่งดังกล่าว

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

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

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

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

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

ดูเพิ่ม

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