เมื่อกล่าวถึงหลักการนี้ ในหัวผมกลับคิดไปถึงกลอนบทเก่าที่เคยท่องในสมัยเด็ก
..
อันความรู้รู้กระจ่างแต่อย่างเดียว แต่ให้เชี่ยวชาญเถิดคงเกิดผล
อาจจะชักเชิดชูฟูสกนธ์ ถึงคนจนพงศ์ไพร่คงได้ดี
..
พระยาศรีสุนทรโวหาร (น้อย อาจารยางกูร)
แล้วยังคิดเลยไปถึงเพลงที่ฟังตั้งแต่ครั้งยังวัยรุ่น
ไม่น่าเชื่อว่า สิ่งเหล่านี้จะนำเอามาประยุกต์ใช้กับการเขียนโปรแกรมได้ ไม่ใช่ว่าให้เราเขียนแต่โปรแกรมอย่างเดียวไม่ต้องสนใจอย่างอื่น หรือ ห้ามเปลี่ยนภาษา แต่เป็นเรื่องการออกแบบว่า ถ้าเราสร้างโปรแกรมขึ้นส่วนย่อยๆ ของมัน เช่น module, class, หรือแม้แต่ method หรือ function ควรจะทำงานเพื่อประโยชน์เพียงอย่างเดียว ตัวอย่างเช่น ถ้า class หนึ่ง ใช้ บวกเลข มันก็ควรจะบวกเลขเพียงอย่างเดียว ไม่ควร ให้มันมาจัดรูปแบบ format ด้วยว่า จะมีทศนิยมหรือไม่ กี่ตำแหน่ง หรือ มี comma ขั้น หลักพันหรือไม่ ถ้าจะทำ ก็ควรจะมีอีก class มาจัดการ เป็นตัว formatter ไปเสีย
หลักการนี้ช่วยได้มาก ในเรื่อง การสร้าง โค้ดให้สะอาด และ สามารถหาจุดผิดพลาดได้ง่าย ที่สำคัญเป็นส่วนที่ทำให้ การทำ TDD (Test Driven Development) เกิดขึ้นได้จริง เพราะโค้ดมี dependencies น้อย จึงทำให้สามารถ test แยกย่อยได้ง่าย (testablitiy)