Architecture Decision Record

Active theme: Light

← ตัวอย่างบันทึกการตัดสินใจ

บันทึกการตัดสินใจด้านสถาปัตยกรรม: โปรแกรมแก้ไขโค้ดสำหรับการเขียนโปรแกรม

บริบท

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

ลำดับความสำคัญ

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

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

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

  • ส่วนติดต่อผู้ใช้: ส่วนติดต่อผู้ใช้ควรเข้าใจง่ายและใช้งานง่าย ให้นักพัฒนามุ่งความสนใจที่โค้ดของตนแทนที่จะต้องต่อสู้กับโปรแกรมแก้ไข

  • ความสามารถในการขยาย: โปรแกรมแก้ไขโค้ดควรออกแบบให้ขยายได้ง่ายด้วยปลั๊กอินและการทำงานร่วมกันของบุคคลที่สาม

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

การตัดสินใจ

จากลำดับความสำคัญเหล่านี้ สถาปัตยกรรมสำหรับโปรแกรมแก้ไขโค้ดสำหรับการเขียนโปรแกรมควรออกแบบด้วยองค์ประกอบต่อไปนี้:

  • แกนหลัก: องค์ประกอบนี้ให้ฟังก์ชันพื้นฐานของโปรแกรมแก้ไขโค้ด เช่น การเน้นไวยากรณ์ การแก้ไขข้อความ และการจัดการไฟล์

  • UI: องค์ประกอบนี้ให้ส่วนติดต่อผู้ใช้สำหรับโปรแกรมแก้ไขโค้ด รวมถึงเมนู แถบเครื่องมือ และทางลัดแป้นพิมพ์

  • ปลั๊กอิน: องค์ประกอบนี้ให้นักพัฒนาขยายฟังก์ชันของโปรแกรมแก้ไขโค้ดโดยติดตั้งปลั๊กอินของบุคคลที่สาม ปลั๊กอินอาจให้ฟีเจอร์เพิ่มเติม เช่น การเติมโค้ด การตรวจสอบโค้ด หรือการดีบัก

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

เหตุผล

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

  • ประสิทธิภาพ: สำคัญยิ่งเพราะนักพัฒนาต้องทำงานได้อย่างมีประสิทธิภาพโดยไม่ถูกเครื่องมือทำให้ช้าลง โปรแกรมแก้ไขโค้ดที่มีประสิทธิภาพจำเป็นต่อผลิตภาพและช่วยให้นักพัฒนารักษาสมาธิและความจดจ่อ

  • UI: สำคัญเพราะให้นักพัฒนามุ่งความสนใจที่โค้ดของตนแทนที่จะต้องต่อสู้กับโปรแกรมแก้ไข ซึ่งนำไปสู่ผลิตภาพที่ดีขึ้นและความหงุดหงิดน้อยลงสำหรับนักพัฒนา

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

  • ความเข้ากันได้: มีค่าเพราะให้ใช้โปรแกรมแก้ไขโค้ดกับภาษาโปรแกรมและเทคโนโลยีหลากหลาย ทำให้โปรแกรมแก้ไขเป็นเครื่องมือที่มีประโยชน์มากขึ้นสำหรับนักพัฒนาในวงกว้าง

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