# Software Design Principles คืออะไร อธิบายแบบง่ายที่สุด แม้เด็ก 8 ขวบก็เข้าใจ
เคยสงสัยไหมครับว่าผู้คนสร้างโปรแกรมคอมพิวเตอร์ได้อย่างไร? ในโลกแห่งการเขียนโปรแกรมคอมพิวเตอร์นั้นมีหลักการที่เรียกว่า "Software Design Principles" หรือ หลักการออกแบบซอฟต์แวร์ ที่ช่วยให้นักพัฒนาสามารถสร้างโปรแกรมได้อย่างมีคุณภาพ ง่ายต่อการบำรุงรักษา และสามารถปรับเปลี่ยนได้ง่ายเมื่อมีความจำเป็น
หากเราจะอธิบายให้เด็ก 8 ขวบเข้าใจนั้น เราอาจจะเปรียบเทียบหลักการออกแบบซอฟต์แวร์กับการสร้างบ้านแสนสนุกจากก้อนเลโก้ ก่อนที่เราจะสร้างบ้าน เราต้องรู้ว่าบ้านที่สร้างออกมาต้องมีห้องไหนบ้าง ต้องมีหน้าต่างและประตูกี่บาน และเราต้องแน่ใจว่าบ้านของเราแข็งแรงพอที่จะไม่ล้มเมื่อมีลมพัดแรงๆ ในทำนองเดียวกัน หลักการออกแบบซอฟต์แวร์ก็ทำให้โค้ดของโปรแกรมมีโครงสร้างที่ดี มีความยืดหยุ่น และสามารถปรับแต่งได้โดยไม่ทำให้มีปัญหาในภายหลังครับ
มีหลักการหลายอย่างที่นักพัฒนาซอฟต์แวร์ใช้ แต่ในที่นี้ เราจะพูดถึง 3 หลักการหลักที่เรียบง่ายและสำคัญครับ:
1. Keep It Simple, Stupid (KISS)
หมายความว่า เราควรออกแบบโปรแกรมให้เรียบง่ายที่สุด ห้ามยุ่งยากซับซ้อนโดยไม่จำเป็น นึกภาพคุณกำลังสร้างรถโดยสารจากเลโก้ เราจะไม่ต้องการที่จะเพิ่มปีกเหมือนเครื่องบินถ้าเป้าหมายคือการให้มันวิ่งได้บนถนนครับ
2. Don't Repeat Yourself (DRY)
"อย่าทำซ้ำซ้อน" หากโปรแกรมของเรามีสิ่งเดียวกันที่ต้องทำหลายครั้ง เราควรสร้างส่วนที่นำมาใช้ซ้ำได้ ให้คิดว่าเรามีก้อนเลโก้ที่เป็นประตูบุคคลที่สามารถใช้ได้ทั้งบ้านและรถยนต์ เราก็แค่ใช้ก้อนนั้นซ้ำๆ ไม่จำเป็นต้องสร้างใหม่ทุกครั้ง
3. Liskov Substitution Principle (LSP)
หลักการนี้บอกว่า โปรแกรมที่เราออกแบบควรจะสามารถใช้ประโยชน์จากความสามารถในการแทนที่ "ชิ้นส่วน" หรือ "วัตถุ" ด้วยวัตถุที่มีความสามารถที่เหมาะสม คล้ายกับเลโก้ที่เราสามารถแทนที่บล็อคหนึ่งด้วยบล็อคอื่นที่มีรูปทรงและคุณสมบัติใกล้เคียงกันได้
สมมติว่าเราจะเขียนโปรแกรมสำหรับร้านขายหนังสือ และมีฟังก์ชันที่คำนวณยอดรวมราคาหนังสือ:
def calculate_total_price(book_list):
total_price = 0
for book in book_list:
total_price += book.price
return total_price
ในที่นี้ เราใช้หลักการ KISS เพราะฟังก์ชันนี้ทำหน้าที่เดียวคือคำนวณราคา และหลักการ DRY โดยไม่ต้องเขียนโค้ดคำนวณซ้ำซ้อนในหลายๆ ที่ ส่วนหลักการ LSP อาจไม่จำเป็นที่จะต้องใช้ในตัวอย่างนี้ แต่ถ้าในโปรแกรมมีการจัดการกับหนังสือหลายประเภท เราก็ควรออกแบบให้สามารถเพิ่มหรือเปลี่ยนหนังสือประเภทใหม่ๆ โดยไม่กระทบต่อฟังก์ชัน calculate_total_price ครับ
หลักการออกแบบซอฟต์แวร์เป็นเครื่องมือสำคัญที่ช่วยให้การเขียนโปรแกรมมีคุณภาพ แข็งแรง และสามารถปรับเปลี่ยนได้ง่าย การเรียนรู้หลักการเหล่านี้จะทำให้คุณกลายเป็นนักพัฒนาที่ชาญฉลาดและสามารถสร้างผลงานที่ยอดเยี่ยมได้ หวังว่าตัวอย่างและการอธิบายของผมจะทำให้คุณเข้าใจหลักการออกแบบซอฟต์แวร์ได้ง่ายขึ้นนะครับ
ถ้าคุณสนใจที่จะเข้าสู่โลกแห่งการเขียนโปรแกรมและต้องการคำแนะนำเพิ่มเติม ศึกษาและฝึกฝนกับการเรียนรู้ต่อไปนี้เป็นสิ่งสำคัญ และส่งผลดีอย่างมากสำหรับการพัฒนาทักษะของคุณครับ!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากเจอข้อผิดพลาด หรือต้องการพูดคุย ติดต่อได้ที่ https://m.me/expert.Programming.Tutor/
Tag ที่น่าสนใจ: software_design_principles หลักการออกแบบซอฟต์แวร์ programming คำนวณราคา kiss dry liskov_substitution_principle เขียนโปรแกรม หลักการออกแบบ software_development
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM
Copyright (c) 2013 expert-programming-tutor.com. All rights reserved. | 085-350-7540 | 084-88-00-255 | ntprintf@gmail.com