ฉันเพิ่งโชคดีพอที่จะไม่ต้องกังวลเกี่ยวกับเรื่องนี้มากเกินไปหรือฉันเป็นโปรแกรมเมอร์ที่ไม่ดี?
คุณสนใจเกี่ยวกับความต้องการของคุณหรือไม่ หากประสิทธิภาพไม่ใช่ข้อกำหนดคุณก็ไม่ต้องกังวล การใช้เวลาอย่างมีนัยสำคัญเป็นความเสียหายแก่นายจ้างของคุณ
หากต้องการขอบเขตประสิทธิภาพเป็นความต้องการเสมอ หากคุณสามารถตีได้โดยไม่ต้องคิดถึงมันคุณจะได้รับการพิสูจน์ว่าไม่ได้คิด
โดยส่วนตัวแล้วฉันมักจะได้แรงหนุนจากการแสดงเมื่อการทดสอบของฉันใช้เวลานานในการผ่าน ฉันใจร้อนเกินกว่าจะรอ 5 นาทีในขณะที่ชุดทดสอบผ่านไป แต่ก็มักจะแก้ไขได้โดยเล่นซอกับการทดสอบ
คำถามของฉันคือเหตุใดโปรแกรมเมอร์จำนวนมากจึงสนใจ? มันเป็นปัญหาสำหรับนักพัฒนาส่วนใหญ่จริงหรือ
มีโปรแกรมเมอร์จำนวนมากที่พิสูจน์ว่าพวกเขาสนใจมากแค่ไหน มีคนจำนวนมากที่ไม่ได้เป็น พูดคุยเกี่ยวกับคนที่ไม่ได้
หนึ่งในสิ่งแรกที่โปรแกรมเมอร์เรียนรู้ในโรงเรียนหลังจากทำสิ่งต่าง ๆ ได้ผลจริง ๆ ก็คือสัญกรณ์ O ที่ยิ่งใหญ่ หลายคนเรียนรู้บทเรียนอย่างถูกต้องและมุ่งเน้นไปที่สิ่งต่าง ๆ ที่ได้รับผลกระทบอย่างมากจาก n คนอื่นไม่เข้าใจคณิตศาสตร์และเรียนรู้บทเรียนที่เมื่อจำเป็นต้องรวดเร็ว นักเรียนเหล่านี้บางคนไม่เคยเรียนรู้อะไรเกี่ยวกับสิ่งที่สำคัญที่ต้องทำกับรหัสของคุณนอกจากทำให้มันทำงานและทำให้มันทำงานได้อย่างรวดเร็ว บทเรียนที่ไม่ได้รับ: ทำให้อ่านง่ายออกแบบได้ดีอย่าเล่นโดยไม่มีเหตุผล
Knuth ถูกต้อง: การเพิ่มประสิทธิภาพก่อนวัยอันควรเป็นรากฐานของความชั่วร้ายทั้งหมด แต่เมื่อมันทำงานขั้นตอนต่อไปคืออะไร? เร็วใช่มั้ย NO! ขั้นตอนต่อไปสามารถอ่านได้ สามารถอ่านได้เป็นขั้นตอนแรกถัดไปกลางและสุดท้าย ผู้คนจำนวนมากที่ฉันพบว่าการเพิ่มประสิทธิภาพการทำงานที่ไม่จำเป็นนั้นกำลังทำให้อ่านง่ายขึ้นใต้รถบัส
บางคนถึงกับตื่นเต้นระทึกใจจากการที่โค้ดไม่สามารถอ่านได้ พวกเขาต้องประสบกับการมองที่ยากที่จะเข้าใจรหัสที่สร้างโดยคนอื่นดังนั้นตอนนี้ถึงคราวที่พวกเขาจะต้องคืนทุน
ฉันรู้สิ่งนี้เพราะฉันเคยทำสิ่งนี้ ฉันเคยปรับโครงสร้างที่สามารถอ่านได้ 5 บรรทัดอย่างสมบูรณ์ถ้าโครงสร้างลงไปในนิพจน์บูลีนที่อ่านไม่ออกหนึ่งบรรทัดและส่งไปยังอาจารย์ของฉันอย่างภาคภูมิใจโดยหวังว่าจะประทับใจเพราะฉันสามารถสร้างบางสิ่งที่กะทัดรัดและน่ากลัว ฉันไม่ได้รับคำชมที่ฉันหวังไว้
หากรหัสยังคงสามารถอ่านได้ทำให้มันเร็วในภายหลังเป็นเรื่องง่าย นั่นเป็นเหตุผลที่ Knuth เน้น "ก่อนกำหนด" ไม่ใช่ "ไม่จำเป็น" เพราะแน่นอนว่าเร็วกว่าดีกว่า แต่ดีกว่าดีกว่าขึ้นอยู่กับว่าคุณเสียสละเพื่ออะไร ดังนั้นรอจนกว่าคุณจะรู้ว่าประสิทธิภาพที่คุณต้องการจริงๆก่อนที่คุณจะเสียสละเพื่อมัน การอ่านอย่างเสียสละไม่เต็มใจเพราะเมื่อผ่านไปแล้วมันก็ยากที่จะกลับมาได้
นอกเหนือจากความสามารถในการอ่านคือโลกทั้งโลกของการออกแบบซอฟต์แวร์ ไซต์นี้เกี่ยวกับอะไร บางคนไม่มีเงื่อนงำว่าจะทำอย่างไรกับการออกแบบ ดังนั้นเนื่องจากพวกเขาไม่สามารถสร้างความประทับใจให้กับการออกแบบพวกเขาทำสิ่งที่อ่านไม่ออกดังนั้นผู้คนจึงไม่สามารถบอกได้ว่าพวกเขาไม่มีเงื่อนงำ เนื่องจากไม่มีใครแก้ไขรหัสของพวกเขาจะต้องเป็นรหัสที่ดีใช่มั้ย
สำหรับบางคนการแสดงเป็นข้ออ้างที่จะทำทุกสิ่งที่พวกเขาต้องการ โปรแกรมเมอร์มีพลังและความเป็นอิสระมาก ความน่าเชื่อถือได้ถูกใส่เข้าไปในพวกเขา อย่าละเมิดความไว้วางใจ