ข้ามไปยังเนื้อหาหลัก

พันธกิจ (Mission)

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

  • เรามองว่าเป้าหมายของเราคือความสมดุลระหว่างอุดมการณ์และความเรียบง่าย
  • เราไม่สามารถสร้าง "กระสุนเงิน" (Silver Bullet) ที่ตอบโจทย์ทุกคนได้

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

เป้าหมาย

ความชัดเจนที่เข้าใจง่ายสำหรับนักพัฒนากลุ่มกว้าง

ระเบียบวิธีควรจะเข้าถึงได้ง่าย สำหรับคนส่วนใหญ่ในทีมโปรเจกต์

เพราะถึงจะมีเครื่องมือล้ำยุคแค่ไหน ก็คงไม่พอ ถ้ามีแค่ระดับ Senior/Lead เท่านั้นที่เข้าใจระเบียบวิธีนี้

การแก้ปัญหาในชีวิตประจำวัน

ระเบียบวิธีควรจะระบุเหตุผลและวิธีแก้ปัญหาที่เราเจอกันทุกวันในการพัฒนาโปรเจกต์

และยังต้องมีเครื่องมือสนับสนุน (CLI, Linters) มาช่วยด้วย

เพื่อให้นักพัฒนาสามารถใช้แนวทางที่ ผ่านการทดสอบในสนามจริง (Battle-tested) ซึ่งช่วยให้ก้าวข้ามปัญหาเดิมๆ เรื่องสถาปัตยกรรมและการพัฒนาไปได้

@sergeysova: ลองจินตนาการว่านักพัฒนาเขียนโค้ดตามกรอบของระเบียบวิธีนี้ แล้วเจอปัญหาน้อยลง 10 เท่า เพียงเพราะมีคนอื่นช่วยคิดวิธีแก้ปัญหาหลายๆ อย่างมาให้แล้ว

ข้อจำกัด

เราไม่อยาก ยัดเยียดมุมมองของเรา และในขณะเดียวกันเราก็เข้าใจว่า นิสัยหลายอย่างของเราในฐานะนักพัฒนา มักจะเป็นอุปสรรคในแต่ละวัน

ทุกคนมีระดับประสบการณ์ในการออกแบบและพัฒนาระบบที่ต่างกัน ดังนั้น จึงควรทำความเข้าใจเรื่องต่อไปนี้:

  • สิ่งที่จะไม่เกิดขึ้น: ง่ายมากๆ, ชัดเจนสุดๆ, เหมาะสำหรับทุกคน

    @sergeysova: คอนเซปต์บางอย่างไม่สามารถเข้าใจได้โดยสัญชาตญาณ จนกว่าคุณจะเจอปัญหาและใช้เวลาเป็นปีๆ ในการแก้มัน

    • ในโลกคณิตศาสตร์: ทฤษฎีกราฟ
    • ในฟิสิกส์: กลศาสตร์ควอนตัม
    • ในการเขียนโปรแกรม: สถาปัตยกรรมแอปพลิเคชัน
  • สิ่งที่เป็นไปได้และควรจะเป็น: ความเรียบง่าย, ความสามารถในการขยาย (Extensibility)

ดูเพิ่มเติม