Archive for the ‘Developer || Programer’ Category

โปรแกรมแบบพอเพียง (ทำอะไรให้เล็กที่สุดเท่าที่เป็นไปได้) ทำสิ่งธรรมดาให้ง่าย ทำสิ่งยากให้เป็นไปได้ จงโปรแกรมโดยนึกว่าจะมีคนมาทำต่ออย่างแน่นอน ระเบียบ กฎข้อบังคับ เชื่อถือไม่ได้ถ้ามีเพียงหนึ่งโมดูลไม่ปฏิบัติตาม ตัดสินใจให้ดีระหว่างความชัดเจน (Clearance) กับการขยายได้ (Extensibility) อย่าเชื่อมั่น Output จากโมดูลอื่น ถึงแม้เราจะเป็นคนเขียนเอง ถ้าคนเขียนยังเข้าใจได้ยาก แล้วคนอ่านจะเข้าใจได้ยากกว่าแค่ไหน ค้นหาข้อมูลสามวันแล้วทำหนึ่งวัน หรือจะทำสามวันแล้วแก้บั๊กตลอดไป จงสร้างเครื่องมือ ก่อนทำงาน อย่าโทษโมดูลอื่นก่อน โดยเฉพาะถ้าโมดูลอื่นเป็น OS และ Compiler พยายามทำตามกฎ แต่ถ้ามีข้อยกเว้น ต้องมีอย่างหลีกเลี่ยงไม่ได้ ให้ประกาศและตะโกนให้ดังที่สุด High Cohesion Loose Coupling (ยึดเกาะให้สูงสุดในโมดูล และเกาะเกี่ยวกับโมดูลอื่นให้น้อยที่สุด) ให้สิ่งที่เกี่ยวข้องกันยิ่งมากอยู่ไกล้กันมากที่สุด อย่าเชื่อโดยไม่พิสูจน์ อย่าลองทำแล้วคอมไพล์ดู ถ้าเราไม่ได้คาดหวังผลลัพธ์อะไรไว้ (อย่างเช่นปัญหา index off by one) จงกระจายความรู้เพราะนั่นคือการทำ Unit Test ระดับล่างสุด (ระดับความคิด) อย่าเอาทุกอย่างใส่ใน UI เพราะ UI [...]