Skip to main content

ความเข้าใจของโปรแกรมคืออะไร?

ความเข้าใจของโปรแกรมคือความสามารถของโปรแกรมเมอร์ในการทำความเข้าใจว่าซอร์สโค้ดโปรแกรมคอมพิวเตอร์ทำอะไรในการสอนวิทยาศาสตร์คอมพิวเตอร์ความเข้าใจของโปรแกรมมักถูกมองข้ามในความโปรดปรานของการเรียนรู้กลไกและไวยากรณ์ของภาษาคอมพิวเตอร์ที่สอนอย่างไรก็ตามการเขียนโค้ดที่เข้าใจได้นั้นเป็นความต้องการสากลโดยไม่คำนึงถึงภาษาคอมพิวเตอร์ที่เขียนไว้หากโปรแกรมเมอร์เขียนไลบรารีหรือชิ้นส่วนของรหัส แต่ไม่มีใครสามารถกำหนดสิ่งที่ทำหลังจากนั้นอัลกอริทึมและตรรกะที่อยู่เบื้องหลังรหัสนั้นสามารถสูญหายได้อย่างง่ายดายเป็นเรื่องธรรมดามากขึ้นที่โปรแกรมเมอร์ไม่สามารถถอดรหัสรหัสของตัวเองได้เนื่องจากมักจะไม่ได้เขียนอย่างชัดเจนและสังหรณ์ใจ

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

การเพิ่มเอกสารลงในรหัสเป็นวิธีที่ง่ายกว่าของทั้งสองวิธีและเมื่อทำได้ดีไม้ยันรักแร้ที่มีประโยชน์มากสำหรับโปรแกรมเมอร์ที่ไม่คุ้นเคยกับภาษาที่เขียนรหัสภาษาคอมพิวเตอร์ส่วนใหญ่มีรูปแบบเอกสารเฉพาะเพื่อช่วยในการทำความเข้าใจโปรแกรมหากเอกสารรหัสถูกเขียนอย่างละเอียดขั้นตอนแรกของโปรแกรมเมอร์ใหม่สามารถอ่านเอกสารทั้งหมดและความคิดเห็นเพื่อทำความเข้าใจว่าโปรแกรมทำงานอย่างไรโดยไม่ต้องอ่านรหัสเลยแทนที่จะขึ้นอยู่กับไวยากรณ์รหัสและกลไกโปรแกรมเมอร์สามารถเห็นสิ่งที่เกิดขึ้นในข้อความธรรมดาจากนั้นเชื่อมโยงข้อความเพื่อให้เกิดสิ่งที่เกิดขึ้นอย่างแม่นยำในสถานที่ใดก็ได้อย่างไรก็ตามเมื่อเพิ่มเอกสารลงในรหัสโปรแกรมเมอร์จะต้องระมัดระวังเพราะเอกสารที่มากเกินไปอาจทำให้เกิดความสับสนและล่วงล้ำแทนที่จะเป็นประโยชน์

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

แม้ว่าจะเขียนรหัสด้วยตาเพื่อความเข้าใจของโปรแกรมในภายหลังเอกสารเพิ่มเติมหรือการปรับเปลี่ยนโครงสร้างอาจจำเป็นต้องใช้ในภายหลังนี่เป็นส่วนหนึ่งของการบำรุงรักษารหัสและไม่ใช่ความล้มเหลวในมือของโปรแกรมเมอร์งานโปรแกรมเมอร์คือการคาดการณ์ปัญหาความเข้าใจให้มากที่สุดเท่าที่จะเป็นไปได้ แต่ทั้งหมดไม่ได้ถูกจับเสมอ