นี่เป็นเรื่องยุ่งยากมากที่จะอธิบายเพราะความเรียบง่ายไม่ได้หมายถึงสิ่งเดียวกันกับทุกคน
ตัวอย่าง. นักพัฒนาบางคนคิดว่า?:ง่าย แต่คนอื่น ๆ คิดว่าifข้อความนั้นดีกว่า เมื่อถึงระดับนี้คุณจะไม่พอใจทุกคน
โดยทั่วไปวิธีการง่าย ๆ โดยไม่มีความซับซ้อน เพื่อที่จะเข้าใจความเรียบง่ายเราจำเป็นต้องเข้าใจความซับซ้อน
ความซับซ้อนมีสองประเภท:
ความซับซ้อนที่สำคัญหมายถึงสถานการณ์ที่การแก้ปัญหาที่สมเหตุสมผลทั้งหมดต้องมีความซับซ้อน (และอาจทำให้สับสน) เพราะการแก้ปัญหา "แบบง่าย" จะไม่สามารถแก้ปัญหาได้อย่างเพียงพอ - วิกิพีเดีย
ความซับซ้อนโดยบังเอิญคือความซับซ้อนที่เกิดขึ้นในโปรแกรมคอมพิวเตอร์หรือกระบวนการพัฒนา (การเขียนโปรแกรมคอมพิวเตอร์) ซึ่งไม่จำเป็นสำหรับปัญหาที่ต้องแก้ไข - วิกิพีเดีย
คุณสามารถตรวจสอบความซับซ้อนที่สำคัญได้ด้วยคำถามต่อไปนี้:
วิธีนี้ง่ายหรือไม่? ฉันสามารถอธิบายให้เพื่อนของฉันทราบภายในไม่กี่นาทีและพวกเขาจะได้รับหรือไม่ มีวิธีแก้ไขปัญหาที่ง่ายกว่านี้ไหม? ถ้าใช่มีการแลกเปลี่ยนระหว่างโซลูชันที่ซับซ้อนกับโซลูชันที่เรียบง่ายหรือไม่? เราสามารถอยู่กับการแลกเปลี่ยนเหล่านั้นได้หรือไม่? ตัวอย่างเช่นโปรแกรมเมอร์หลายคนทำผิดพลาดจากการเพิ่มประสิทธิภาพทุกอย่างของไมโครและการแก้ปัญหาของพวกเขา (และรหัสเช่นกัน) จะซับซ้อนเกินไป
ตรวจสอบความซับซ้อนโดยไม่ตั้งใจของคุณ:
รหัสง่ายหรือไม่ ถ้าฉันกลับมาในสามเดือนมันจะใช้เวลานานแค่ไหนในการสร้างบริบทในสมองของฉันเพื่อที่ฉันจะได้ทำการเปลี่ยนแปลงที่ฉันต้องการ คือทุกอย่างในรหัสที่มาของฉันมีวัตถุประสงค์ที่ชัดเจนและมันบ่งบอกถึงจุดประสงค์ที่มีประสิทธิภาพกับผมและนักพัฒนาอื่น ๆ ? การทดสอบรหัสของฉันยากแค่ไหน โดยปกติยิ่งโค้ดของคุณซับซ้อนมากเท่าไหร่ก็ยากที่จะทดสอบหน่วยดังนั้นฉันมักจะใช้สิ่งนี้เป็นเครื่องวัดความซับซ้อน คุณมักจะต้องการชั้นเรียนขนาดเล็กที่มีชื่อดีและมุ่งเน้นและวิธีการ รูปแบบการออกแบบมักจะช่วยให้คุณบรรลุสิ่งเหล่านี้เช่นกัน
หากคุณพบว่าคุณต้องการใช้รูปแบบการออกแบบเพียงเพราะคุณเพิ่งอ่านเกี่ยวกับมันอาจเป็นไปได้ที่จะแนะนำความซับซ้อนโดยไม่ตั้งใจ หากคุณคิดว่าตัวเองต้องการใส่อะไรเข้าไปเพราะคุณคิดว่า 'มันฉลาด' มันอาจจะทำให้เกิดความซับซ้อนโดยไม่ตั้งใจ
ฉันหวังว่านี้จะช่วยและไม่ลืมที่: เรียบง่ายไม่ได้หมายความว่า EASY