ตำราพิชัยสงครามนี้เป็นตำรายุทธวิธีการรบที่แพร่หลายเป็นอย่างมากในประเทศจีนว่ากันว่าปราชญ์ชาวจีน นามว่า ซุนวู(Sun Tzu) เป็นผู้เขียนขึ้นมาเนื่องจากเป็นตำราที่เขียนขึ้นมาเมื่อประมาณ 400-600 ปี ก่อนคริสตกาล จึงทำให้ไม่มีหลักฐานมากนักว่า ซุนวู นั้นมีตัวตนจริงรึเปล่า ปัจจุปันยุทธศาสตร์ในตำราได้ถูกประยุกต์ ใช้อย่างกว้างขวางในวงการธุรกิจและการเมือง

ข้อมูลจาก http://th.wikipedia.org/
สำหรับการพัฒนาซอฟต์แวร์นั้นก็มีสิ่งที่เรียกว่า “ตำราพิชัยสงคราม” เช่นกัน ซึ่งมีชื่อเรียกว่า “Design Pattern” หลักการอาจจะ ไม่เหมือนกันกับตำราของซุนวูทีเดียวนักแต่ส่วนที่เหมือนกัน ก็คือ “รูปแบบ” ซึ่งถ้าเรามองว่า ปัญหา = สงคราม และตำราของซุนวูนั้นเปรียบเสมือนรูปแบบ ที่ใช้การรบแล้วล่ะก็ Design pattern ก็เป็นเปรียบเสมือนรูปแบบที่ใช้ในการแก้ปัญหา เช่นกัน
Design pattern นั้นเกิดมาจากปัญหาทางด้านวิศวกรรมซึ่งศาสตร์ทางด้านวิศวกรรมต่างๆ นั้นพัฒนาไปอย่างมากแต่มีวิศวกรรมทางด้านหนึ่งพัฒนาไปช้ามากเมื่อเทียบกับวิศวกรรมอื่นๆ ซึ่งนั่นก็คือ วิศวกรรมซอฟต์แวร์ ปกติแล้วการออกแบบทางด้านวิศวกรรมที่ดีนั้นมีเป้าหมายอยู่ที่ว่า
- สามารถสร้างได้รวดเร็ว ทำให้มีกำลังในการแข่งขัน
- มีความง่ายต่อการใช้งาน เมื่อสร้างมาแล้วใครๆ ก็สามารถใช้งานได้ง่าย
- สามารถพัฒนาต่อยอดจากของเดิมได้โดยไม่ต้องแก้ไขของเก่า เพื่อลดต้นทุนในการผลิต
- มีความยืดหยุ่นต่อการเปลี่ยนแปลง ซึ่งจะช่วยให้ลดระยะเวลาในการพัฒนาปรับปรุง
จากสาเหตุหลักๆ ที่กล่าวมานี้จะเห็นได้ว่าอุปกรณ์เครื่องใช้ต่างๆ หรือแม้แต่ยานพาหนะจะสามารถ ถอดชิ้นส่วนเปลี่ยนอะไหล่ได้ ทั้งหมดนี้ล้วนมาจากเหตุผลทางด้านความคุ้มค่าในเชิงธุรกิจต่างๆ แต่สำหรับการพัฒนาซอฟต์แวร์นั้นทำได้ลำบาก จุดที่ยากที่สุดในการพัฒนาซอฟต์แวร์นั้นคือการ ทำให้ซอฟต์แวร์นั้นทนต่อการเปลี่ยนแปลงต่างๆ ซึ่งเป็นไปตามการใช้งานจริงซึ่ง Factor ต่างๆ นั้น จะมีการเปลี่ยนแปลงอยู่ตลอดเวลาเป็นระบบ Dynamic ไม่ใช่ Static การพัฒนาจึงต้องอาศัย หลักการออกแบบที่ดี
Design pattern เป็นการรวบรวมปัญหาเกี่ยวกับการออกแบบซอฟต์แวร์ที่เกิดขึ้นบ่อยๆ และแนวทางการแก้ไขปัญหานั้นโดยต้องเริ่มมาจากการ Designที่ดี จึงจะทำให้ปัญหานั้นๆ ถูกแก้ไขไปได้ และไม่เป็นการสร้างปัญหาใหม่ๆ เพิ่มขึ้นให้กับซอฟต์แวร์
นักพัฒนาซอฟต์แวร์ทุกคนก็ควรจะรู้เรื่อง Design pattern ด้วยเพื่อเพิ่มประสิทธิภาพในซอฟต์แวร์ โอกาสหน้าจะมาเล่าเรื่อง Pattern แบบต่างๆ ให้ฟังครับแต่ถ้าใครสนใจจะอ่านล่วงหน้าก่อนก็ สามารถอ่านได้ ที่นี่ ครับ (ภาษาอังกฤษนะ ^^)
บันทึกโพสใน ของหนักสมอง



