BeckDesignRules: หลักการออกแบบแบบเบกค์ๆ

emc2 BeckDesignRules กล่าวสรุปโดย อาจารณ์ Martin Fowler ช่วยในการ พิจารณาการออกแบบ Code แต่ผมคิดว่าใช้เป็นหลักการ หรือ กฏ สำหรับใช้ออกแบบงานได้ทุกเรื่อง มี 4 ข้อ ให้พิจารณา ไล่ไปตามลำดับ อาจารย์ท่านได้เรียงลําดับความสำคัญให้แล้ว ดังนี้

ผ่านการทดสอบแล้ว (Passes the tests)

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

แสดงเจตนาชัดเจน ไม่คลุมเครือ (Reveals intention)

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

ทำหน้าที่ไม่ซ้ำซ้อนกัน (No duplication)

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

ครอบคลุมปัญหา โดยสร้างสมาชิกให้น้อยที่สุด (Fewest elements)

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

ผมคิดว่า กฏ หรือ หลักการ BeckDesignRules นี่น้อย จึงจำได้ง่ายดี และยังนำเราไปสู่การออกแบบเพื่อสร้างสรรค์ผลิตภันฑ์ หรือ ชิ้นงานใดๆ สำหรับแก้ปัญหา ได้ซึ่งไม่ใช่เพียงแค่ดีเฉยๆ แต่มันจะยอดเยี่ยมได้เลย ผมก็หวังว่ามันจะมีประโยชน์ดีมาก ลองนำไปใช้ดูนะครับ อ่านเพิ่มเติม: Essential XP: Emergent Design

ขอบคุณครับ

#:P

Advertisements