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