นี่คือคำถามที่ฉันต้องการถามตัวเองเมื่อคิดว่าจะเพิ่มความคิดเห็นในส่วนของรหัส: ฉันสามารถถ่ายทอดสิ่งใดได้บ้างที่จะช่วยให้บุคคลต่อไปเข้าใจถึงเจตนาโดยรวมของรหัสได้ดีขึ้นเพื่อให้พวกเขาสามารถอัปเดตแก้ไขหรือ ขยายได้เร็วขึ้นและน่าเชื่อถือมากขึ้น?
บางครั้งคำตอบที่ถูกต้องสำหรับคำถามนี้ก็คือไม่มีอะไรมากที่คุณสามารถเพิ่มได้ในจุดนั้นในรหัสเพราะคุณได้เลือกชื่อและการประชุมที่ทำให้เจตนาชัดเจนเท่าที่จะเป็นไปได้ นั่นหมายความว่าคุณได้เขียนรหัสการจัดทำเอกสารด้วยตนเองที่ดีและการใส่ความคิดเห็นนั้นอาจทำให้เสียมากกว่าที่จะช่วยได้ (โปรดทราบว่าความคิดเห็นที่ซ้ำซ้อนสามารถทำลายความน่าเชื่อถือของรหัสในช่วงเวลาหนึ่งได้ด้วยการชะลอการทำข้อมูลให้ตรงกับรหัสจริงเมื่อเวลาผ่านไปและทำให้ยากต่อการถอดรหัสเจตนาที่แท้จริง
อย่างไรก็ตามในเกือบทุกโปรแกรมและในภาษาการเขียนโปรแกรมใด ๆ คุณจะได้พบกับจุดที่แนวคิดและการตัดสินใจที่สำคัญโดยโปรแกรมเมอร์ดั้งเดิม - โดยคุณ - จะไม่ปรากฏในรหัสอีกต่อไป นี่เป็นสิ่งที่หลีกเลี่ยงไม่ได้อย่างมากเนื่องจากโปรแกรมเมอร์ที่ดีมักจะมีโปรแกรมสำหรับอนาคต - นั่นคือไม่เพียง แต่จะทำให้โปรแกรมทำงานได้เพียงครั้งเดียว แต่เพื่อทำให้การแก้ไขทั้งหมดในอนาคตมากมายรวมถึงรุ่นและส่วนขยายและการปรับเปลี่ยนและพอร์ตยังทำงานอย่างถูกต้อง เป้าหมายหลังชุดนั้นยากกว่ามากและต้องใช้ความคิดอย่างมากในการทำให้ดีขึ้น นอกจากนี้ยังเป็นเรื่องยากมากที่จะแสดงได้ดีในที่สุดภาษาคอมพิวเตอร์ซึ่งจะเน้นในการทำงาน - นั่นคือในการพูดในสิ่งที่ไม่นี้ รุ่นของโปรแกรมต้องทำตอนนี้เพื่อให้มันเป็นที่น่าพอใจ
นี่คือตัวอย่างง่ายๆของสิ่งที่ฉันหมายถึง ในภาษาส่วนใหญ่การค้นหาแบบอินไลน์อย่างรวดเร็วของโครงสร้างข้อมูลขนาดเล็กจะมีความซับซ้อนมากพอที่ใครบางคนกำลังดูเป็นครั้งแรกที่มีแนวโน้มว่าจะไม่รับรู้ทันทีว่ามันคืออะไร นั่นเป็นโอกาสสำหรับความคิดเห็นที่ดีเพราะคุณสามารถเพิ่มสิ่งที่เกี่ยวกับเจตนาของรหัสของคุณที่ผู้อ่านในภายหลังจะขอบคุณทันทีที่มีประโยชน์สำหรับการถอดรหัสรายละเอียด
ในทางกลับกันในภาษาต่าง ๆ เช่นภาษาที่ใช้ตรรกะลอจิกการแสดงการค้นหารายการขนาดเล็กอาจเป็นเรื่องเล็กน้อยและรวบรัดอย่างไม่น่าเชื่อที่ความคิดเห็นใด ๆ ที่คุณอาจเพิ่มอาจเป็นเพียงเสียงรบกวน ดังนั้นการแสดงความคิดเห็นที่ดีจำเป็นต้องขึ้นอยู่กับบริบท นั่นรวมถึงปัจจัยต่างๆเช่นจุดแข็งของภาษาที่คุณใช้และบริบทของโปรแกรมโดยรวม
บรรทัดล่างคือ: คิดถึงอนาคต ถามตัวคุณเองว่าอะไรสำคัญและชัดเจนสำหรับคุณเกี่ยวกับวิธีที่โปรแกรมควรจะเข้าใจและแก้ไขในอนาคต [1]
สำหรับส่วนต่าง ๆ ของรหัสของคุณที่มีการจัดทำเอกสารด้วยตนเองอย่างแท้จริงความคิดเห็นเพียงแค่เพิ่มเสียงรบกวนและเพิ่มปัญหาการเชื่อมโยงสำหรับรุ่นในอนาคต ดังนั้นอย่าเพิ่มเข้าไปในนั้น
แต่สำหรับส่วนต่าง ๆ ของรหัสของคุณซึ่งคุณได้ทำการตัดสินใจที่สำคัญจากตัวเลือกต่าง ๆ หรือในกรณีที่รหัสนั้นซับซ้อนพอที่จุดประสงค์ของมันจะคลุมเครือโปรดเพิ่มความรู้พิเศษของคุณในรูปแบบของความคิดเห็น ความคิดเห็นที่ดีในกรณีเช่นนี้คือสิ่งหนึ่งที่ช่วยให้โปรแกรมเมอร์ในอนาคตรู้ว่าต้องรักษาอะไรไว้เหมือนเดิมนั่นคือแนวคิดของการยืนยันที่ไม่เปลี่ยนแปลงอย่างไม่ตั้งใจ - โดยบังเอิญ - และสิ่งใดที่จะเปลี่ยนแปลง
[1] สิ่งนี้นอกเหนือจากความคิดเห็น แต่ก็คุ้มค่าที่จะนำเสนอ: หากคุณพบว่าคุณมีความคิดที่ชัดเจนว่าโค้ดของคุณสามารถเปลี่ยนแปลงในอนาคตได้อย่างไรคุณควรคิดมากกว่าแค่แสดงความคิดเห็นและฝังพารามิเตอร์เหล่านั้น ภายในโค้ดนั้นเนื่องจากจะเป็นวิธีที่เชื่อถือได้มากขึ้นในการตรวจสอบความน่าเชื่อถือของรหัสในอนาคตของคุณมากกว่าการพยายามใช้ความคิดเห็นเพื่อคัดท้ายบุคคลที่ไม่รู้จักในอนาคตไปในทิศทางที่ถูกต้อง ในเวลาเดียวกันคุณยังต้องการหลีกเลี่ยงการทำให้อ้วนมากเกินไปเนื่องจากมนุษย์ไม่ดีพอที่จะทำนายอนาคตและนั่นรวมถึงอนาคตของการเปลี่ยนแปลงโปรแกรมด้วย ดังนั้นพยายามกำหนดและบันทึกมิติที่เหมาะสมและได้รับการพิสูจน์แล้วของอนาคตในทุกระดับของการออกแบบโปรแกรม แต่ไม่ต้อง