.::ยินดีต้อนรับครุศาสตร์ไฟฟ้า::. เว็บรุ่น ETE คอบ. มจธ. KMUTT
07 เมษายน 2020 09:12:20 PM *
ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น
ข่าว: .::ยินดีต้อนรับครุศาสตร์ไฟฟ้า::.
 
  หน้าแรก   Forum   ช่วยเหลือ GAME ค้นหา ปฏิทิน เข้าสู่ระบบ สมัครสมาชิก Chat Room  

           ผู้สนับสนุน

Who's Online
  • Dot บุคคลทั่วไป: 22
  • Dot ซ่อนตัว: 0
  • Dot สมาชิก: 0

There aren't any users online.

สภาพอากาศในวันนี้

ราคาน้ำมัน ปตท.


หน้า: [1]   ลงล่าง
  ส่งหัวข้อนี้  |  พิมพ์  
Share this topic on AskShare this topic on FacebookShare this topic on GoogleShare this topic on LiveShare this topic on MySpaceShare this topic on SpurlShare this topic on TwitterShare this topic on YahooShare this topic on Google buzz
ผู้เขียน หัวข้อ: -==หลักการเขียนโปรแกรม 50==-  (อ่าน 1788 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
๏ETE29๏
Admin
Platinum
*****

Member ID : 1

Total Time
23 วัน, 22 ชั่วโมงและ 13 นาที
ออฟไลน์ ออฟไลน์

กระทู้: 573

Level and Hp mod by the DtTvB :: version 1.02 :: Made for Zone-IT.com Level 19 : Exp 41%
HP: 0.5%

noppol08_1@hotmail.com - noppol08_1@yahoo.com
เว็บไซต์
« เมื่อ: 18 ตุลาคม 2008 08:50:49 AM »

หลักการเขียนโปรแกรม 50

1. โปรแกรมแบบพอเพียง (ทำอะไรให้เล็กที่สุดเท่าที่เป็นไปได้)

2. ทำสิ่งธรรมดาให้ง่าย ทำสิ่งยากให้เป็นไปได้

3. จงโปรแกรมโดยนึกว่าจะมีคนมาทำต่ออย่างแน่นอน

4. ระเบียบ กฎข้อบังคับ เชื่อถือไม่ได้ถ้ามีเพียงหนึ่งโมดูลไม่ปฏิบัติตาม

5. ตัดสินใจให้ดีระหว่างความชัดเจน (Clearance) กับการขยายได้ (Extensibility)

6. อย่าเชื่อมั่น Output จากโมดูลอื่น ถึงแม้เราจะเป็นคนเขียนเอง

7. ถ้าคนเขียนยังเข้าใจได้ยาก แล้วคนอ่านจะเข้าใจได้ยากกว่าแค่ไหน

8. ค้นหาข้อมูลสามวันแล้วทำหนึ่งวัน หรือจะทำสามวันแล้วแก้บั๊กตลอดไป

9. จงสร้างเครื่องมือ ก่อนทำงาน

10. อย่าโทษโมดูลอื่นก่อน โดยเฉพาะถ้าโมดูลอื่นเป็น OS และ Compiler

11. พยายามทำตามกฎ แต่ถ้ามีข้อยกเว้น ต้องมีอย่างหลีกเลี่ยงไม่ได้ ให้ประกาศและตะโกนให้ดังที่สุด

12. High Cohesion Loose Coupling (ยึดเกาะให้สูงสุดในโมดูล และเกาะเกี่ยวกับโมดูลอื่นให้น้อยที่สุด)

13. ให้สิ่งที่เกี่ยวข้องกันยิ่งมากอยู่ไกล้กันมากที่สุด

14. อย่าเชื่อโดยไม่พิสูจน์

15. อย่าลองทำแล้วคอมไพล์ดู ถ้าเราไม่ได้คาดหวังผลลัพธ์อะไรไว้ (อย่างเช่นปัญหา index off by one)

16. จงกระจายความรู้เพราะนั่นคือการทำ Unit Test ระดับล่างสุด (ระดับความคิด)

17. อย่าเอาทุกอย่างใส่ใน UI เพราะ UI คือส่วนที่ Unit Test ได้ยาก

18. ทั้งโปรเจ็กต์ควรไปในทางเดียวกันมากที่สุด (Consistency)

19. ถ้ามีสิ่งที่ดีอยู่แล้ว จงใช้มัน อย่าเขียนเอง ถ้าจำเป็นต้องเขียนเอง ให้ศึกษาจากข้อผิดพลาดในอดีตก่อน

20. อย่ามั่นใจเอาโค้ดไปใช้จนกว่าจะ Test อย่างเพียงพอ

21. เอาโค้ดที่ Test ไว้ที่เดียวกันกับโค้ดที่ถูก Test เสมอ

22. ทุกครั้งที่แก้ไขโค้ดให้รัน Unit Test ทุกครั้ง

23. จงใช้ Unit Test แต่อย่าเชื่อมั่นทุกอย่างใน Unit Test เพราะ Unit Test ก็ผิดได้

24. ถ้าต้องทำอะไรที่ซ้ำกันมากกว่าหนึ่งครั้ง ก็เพียงพอแล้วที่จะแยกโค้ดส่วนนั้นออก

25. ทำให้ใช้งานได้ก่อน แล้วค่อย Optimize และถ้าไม่จำเป็น อย่า Optimize

26. ยิ่งประสิทธิภาพเพิ่ม ความเข้าใจง่ายจะลดลง

27. ใช้ Design Pattern ที่เป็นที่รู้จักจะได้คุยกับใครได้รู้เรื่อง

28. อย่าเก็บไว้ทำทีหลัง ถ้ายังไงก็ต้องทำ

29. Multithreading ไม่ใช่แค่การเพิ่มประสิทธิภาพ แต่มันมาพร้อมกับ Concurrency, Deadlock, Isolation Level, Hard to Debug, Undeterministic Errors

30. จงทำอย่างโจ่งแจ้ง

31. อย่าเพิ่มเทคโนโลยีโดยไม่จำเป็น เพราะนั่นทำให้โปรแกรมเมอร์ต้องวุ่นวายมากขึ้น

32. จงทำโปรเจ็กต์ โดยคิดว่าความเปลี่ยนแปลงเกิดขึ้นได้เสมอ

33. อย่าย่อชื่อตัวแปรถ้าไม่จำเป็น เดี๋ยวนี้ IDE มันช่วยขึ้นเยอะแล้ว ไม่ต้องพิมพ์เอง แค่ dot มันก็ขึ้นมาให้เลือก

34. อย่าใช้ i, j, k, result, index, name, param เป็นชื่อตัวแปร

35. ทำโค้ดที่ต้องสื่อสารผ่านเครือข่ายให้คุยกันน้อยที่สุด

36. แบ่งแยกดีๆ ระหว่าง Exception Message ในแต่ละเลเยอร์ ว่าต้องการบอกผู้ใช้ หรือ บอกโปรแกรมเมอร์

37. ที่ระดับ UI ต้องมี Catch All Exceptions เสมอ เพื่อกรอง Exception ที่ลืมดักจับ

38. ระวังคอลัมน์ Allow Null ใน Database ให้ดี ค่ามัน Convert ไม่ได้

39. อย่าลืมว่า Database เป็น Global Variable ประเภทหนึ่ง แต่ละโปรแกรมที่ติดต่อเปรียบเหมือน Multithreading ดังนั้นกฎของ Multithreading ต้องกระทำเมื่อทำงานกับ Database

40. ระวังอย่าให้ logic if then else ซ้อนกันมากๆ เพราะสมองคนไม่ใช่ CPU จินตนาการไม่ออกหรอกว่ามันอยู่ตรงไหนเวลา Debug (ถ้ามากกว่าสามชั้นก็ลองคิดใหม่ดูว่าเขียนแบบอื่นได้มั้ย)

41. ระวังอย่าให้ลูปซ้อนกันมากๆ ไม่ใช่แค่เรื่องความเร็วอย่างเดียว เวลา Debug เราคิดตามมันไม่ได้ (ถ้าเกินสามชั้นก็ไม่ไหวแล้ว)

42. อย่าใช้ Magic Number ในโค้ด เช่น if( controlingValue == 4 ) เปลี่ยนไปใช้ Enum ดีกว่า เป็น if( controlingValue == ControllingState.NORMAL ) เข้าใจง่ายกว่ามั้ย

43. ถ้าจะเปรียบเทียบ String ให้ Trim ซ้ายขวาก่อนเสมอ

44. คิดหลายๆ ครั้งก่อนใช้ Trigger

45. โปรแกรมเมอร์คือห่วงโซ่สุดท้ายของมลพิษทางความซับซ้อน ดังนั้นหา Project Leader ดีๆ แล้วกัน

46. มนุษย์ฉลาดกว่าคอมพิวเตอร์ การเขียนโปรแกรมก็คือการสอนให้คอมพิวเตอร์ฉลาดได้เหมือนเรา (มนุษย์ฉลาดกว่าคอมพิวเตอร์จริงๆ นะ)

47. จงควบคุมคอม มิใช่ให้คอมควบคุมเรา เราต้องสั่งให้คอมทำงาน ไม่ใช่ให้เราทำงานตามคอมสั่ง

48. อย่าปล่อยให้ข้อจำกัดของคอม มาจำกัดความคิดของเรา (คอมไม่ดีเปลี่ยนเครื่องเลย )

49. ยอมรับความคิดของผู้อื่น แต่อย่าออกจากกรอบของตนเอง

50. หมั่น Save โปรแกรมไว้อย่างสม่ำเสมอ ก่อนที่จะไม่มีโอกาส Save (จะให้ดี Save เป็นแต่ละ Version เลย)


ที่มา

* http://www.blognone.com/node/2286
* http://www.comscience.net/board/showthread.php?t=391
* http://www.pantip.com/tech/developer/topic.../DN1813962.html
แจ้งลบกระทู้นี้หรือติดต่อผู้ดูแล   บันทึกการเข้า

สวัสดีครับ  คุณผู้เยี่ยมชม

ผู้เขียน หัวข้อ: -==หลักการเขียนโปรแกรม 50==-(อ่าน 1788 ครั้ง)
aeees.com
AE.ENGINEERING & ELECTRICAL SERVICE
ETE29
Silver
*****

Member ID : 43

Total Time
18 ชั่วโมงและ 13 นาที
ออฟไลน์ ออฟไลน์

กระทู้: 136

Level and Hp mod by the DtTvB :: version 1.02 :: Made for Zone-IT.com Level 9 : Exp 41%
HP: 0%

wellcome to www.aeees.com

a_aees@hotmail.com
เว็บไซต์ อีเมล์
« ตอบ #1 เมื่อ: 11 สิงหาคม 2009 04:24:12 PM »

เยี่ยม!!!!!
แจ้งลบกระทู้นี้หรือติดต่อผู้ดูแล   บันทึกการเข้า

หน้า: [1]   ขึ้นบน
  ส่งหัวข้อนี้  |  พิมพ์  
 
กระโดดไป:  




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

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines | Thai language by ThaiSMF Valid XHTML 1.0! Valid CSS!
หน้านี้ถูกสร้างขึ้นภายในเวลา 0.026 วินาที กับ 28 คำสั่ง

Google visited last this page 12 กุมภาพันธ์ 2020 06:57:43 PM
SimplePortal 2.3.2 © 2008-2010, SimplePortal