Martin Fowler ได้บรรยายเป็นเวลา 14 นาทีเกี่ยวกับความสำคัญของสถาปัตยกรรมซอฟต์แวร์ในวันที่สองของงานประชุม OSCON 2015 และนี่คือวิดีโอที่นำมาใส่ซับไตเติลพร้อมแปลไว้ (ซับไตเติลภาษาเกาหลี)
Martin Fowler ได้แบ่งปันเนื้อหาที่เขาแลกเปลี่ยนทางอีเมลกับ Ralph Johnson ซึ่งเป็นหนึ่งใน GoF และวิจารณ์การเหมารวมมากเกินไปของแนวคิด [สถาปัตยกรรมซอฟต์แวร์] ที่ใช้กันมาแต่เดิม พร้อมทั้งชี้ให้เห็นว่า เมื่อพิจารณาว่าความลึกของความรู้ที่นักพัฒนาในโครงการนั้นมีร่วมกันเกี่ยวกับตัวโครงการมีความสำคัญ และการตัดสินใจด้านสถาปัตยกรรมก็เปลี่ยนแปลงได้ยาก สิ่งที่สำคัญที่สุดในการออกแบบสถาปัตยกรรมจึงคือบรรดาการตัดสินใจต่างๆ เพื่อคุณค่าหลักของโครงการ
เขายังชี้ให้เห็นอีกด้วยว่า ในโครงการต่างๆ มักมีแนวโน้มที่จะให้ความสำคัญกับคุณภาพของโค้ดเป็นเรื่องรอง ซึ่งถ้ามองอีกมุมก็เป็นเรื่องธรรมดา เพราะจากมุมมองของลูกค้าที่จ่ายเงินจริงให้ซอฟต์แวร์นั้น คุณภาพของโค้ดย่อมไม่ใช่สิ่งที่มองเห็นได้ Martin Fowler อธิบายว่าคุณภาพของซอฟต์แวร์แบ่งได้เป็นคุณภาพภายนอก (External Quality) และคุณภาพภายใน (Internal Quality) โดยข้อบกพร่องอย่าง UX ที่ผู้ใช้สัมผัสได้หรือบั๊กต่างๆ คือคุณภาพภายนอก ส่วนคุณภาพของโค้ดคือคุณภาพภายในที่ผู้ใช้มองไม่เห็น สถาปัตยกรรมซอฟต์แวร์เกี่ยวข้องกับคุณภาพภายใน และเพราะมันไม่ใช่สิ่งที่มองเห็นได้โดยตรง จึงเป็นธรรมดาที่ในมุมผู้ใช้ หากฟังก์ชันเหมือนกันก็ย่อมเลือกตัวที่ถูกกว่า แต่ซอฟต์แวร์ที่มีคุณภาพภายในไม่ดีจะมีต้นทุนสูงมากเมื่อต้องเพิ่มฟีเจอร์หรือปรับปรุงให้ก้าวหน้า ตรงกันข้าม ซอฟต์แวร์ที่มีคุณภาพภายในดีจะทำให้ซอร์สโค้ดกลายเป็นแพลตฟอร์ม จึงทำให้ในระยะยาวสามารถเพิ่มฟีเจอร์ได้ง่ายและรวดเร็วกว่า Martin Fowler เรียกสิ่งนี้ว่า ‘สมมติฐานความอึดของการออกแบบ’ (design stamina hypothesis) และยืนยันว่านี่เองคือเหตุผลที่สถาปัตยกรรมซอฟต์แวร์มีความสำคัญ เพราะการเพิ่มฟีเจอร์อย่างต่อเนื่องคือหัวใจสำคัญนั่นเอง
ไฟล์ PDF ของคอลัมน์ที่ถูกกล่าวถึงระหว่างการบรรยาย:
https://martinfowler.com/ieeeSoftware/whoNeedsArchitect.pdf
บทความในช่วงงาน OSCON 2015:
4 ความคิดเห็น
อ้างอิง - เหตุผลที่ควรเขียน ADR:
https://th.news.hada.io/topic?id=2665
Uncle Bob คือ Robert C. Martin
จริงหรือครับ? ถ้าอย่างนั้นผมคงเข้าใจผิดไปเอง
สู้ๆ นะ