เหตุผลที่เข้าใจง่ายคือคำศัพท์เฉพาะทางวัฒนธรรมซึ่งเป็นเหตุผลว่าทำไมจึงยากที่จะหาตัวอย่างที่เป็นรูปธรรม มันเป็นคำที่ยึดกับคนที่จะทำเหตุผล
"ง่ายต่อการให้เหตุผลเกี่ยวกับ" เป็นจริงวลีที่อธิบายด้วยตนเองมาก หากมีใครดูรหัสและต้องการให้เหตุผลว่ามันทำอะไรมันง่าย =)
โอเคทำลายมันทิ้ง หากคุณกำลังดูรหัสคุณมักต้องการให้มันทำอะไรสักอย่าง คุณต้องการทำให้แน่ใจว่ามันทำในสิ่งที่คุณคิดว่าควรทำ ดังนั้นคุณจึงพัฒนาทฤษฎีเกี่ยวกับสิ่งที่รหัสควรทำและจากนั้นคุณมีเหตุผลเกี่ยวกับมันเพื่อพยายามที่จะโต้แย้งว่าทำไมรหัสทำงานได้จริง คุณพยายามคิดเกี่ยวกับรหัสเหมือนมนุษย์ (แทนที่จะเป็นคอมพิวเตอร์) และพยายามหาเหตุผลเข้าข้างตนเองเกี่ยวกับสิ่งที่รหัสสามารถทำได้
กรณีที่เลวร้ายที่สุดสำหรับ "เหตุผลง่าย ๆ " คือเมื่อวิธีเดียวที่จะทำให้ความรู้สึกของสิ่งที่รหัสทำคือการไปทีละบรรทัดผ่านโค้ดเช่นเครื่องทัวริงสำหรับอินพุตทั้งหมด ในกรณีนี้วิธีเดียวที่จะให้เหตุผลอะไรก็ตามเกี่ยวกับรหัสคือการทำให้ตัวเองกลายเป็นคอมพิวเตอร์และรันมันในหัวของคุณ ตัวอย่างกรณีที่เลวร้ายที่สุดเหล่านี้สามารถพบเห็นได้ง่ายในการแข่งขันการเขียนโปรแกรมที่ล้าสมัยเช่น PERL ทั้ง 3 บรรทัดซึ่งถอดรหัส RSA:
#!/bin/perl -sp0777i<X+d*lMLa^*lN%0]dsXx++lMlN/dsM0<j]dsj
$/=unpack('H*',$_);$_=`echo 16dio\U$k"SK$/SM$n\EsN0p[lN*1
lK[d2%Sa2/d0$^Ixp"|dc`;s/\W//g;$_=pack('H*',/((..)*)$/)
สำหรับเหตุผลง่ายอีกครั้งคำที่มีวัฒนธรรมสูง คุณต้องพิจารณา:
- ผู้ใช้มีทักษะอะไร ประสบการณ์เท่าไหร่
- คำถามประเภทใดที่ผู้ใช้อาจมีเกี่ยวกับรหัส
- ผู้ให้เหตุผลจำเป็นต้องแน่ใจได้อย่างไร?
แต่ละสิ่งเหล่านี้มีผลต่อ "ง่ายต่อเหตุผลเกี่ยวกับ" แตกต่างกัน ยกตัวอย่างทักษะของผู้มีเหตุผล เมื่อฉันเริ่มต้นที่ บริษัท ของฉันขอแนะนำให้ฉันพัฒนาสคริปต์ของฉันใน MATLAB เพราะมันเป็น "ง่ายต่อการเหตุผล" ทำไม? ทุกคนใน บริษัท รู้จัก MATLAB ถ้าฉันเลือกภาษาที่แตกต่างกันคงเป็นเรื่องยากสำหรับทุกคนที่จะเข้าใจฉัน ไม่ต้องกังวลว่าการอ่านของ MATLAB นั้นโหดร้ายสำหรับงานบางอย่างเพียงเพราะมันไม่ได้ออกแบบมาสำหรับพวกเขา ต่อมาเมื่ออาชีพของฉันก้าวหน้าขึ้น Python ก็เป็นที่นิยมมากขึ้นเรื่อย ๆ ทันใดนั้นรหัส MATLAB ก็กลายเป็น "ยากที่จะให้เหตุผลเกี่ยวกับ" และ Python เป็นภาษาของการตั้งค่าสำหรับการเขียนรหัสที่ง่ายต่อการให้เหตุผลเกี่ยวกับ
พิจารณาสิ่งที่ผู้อ่านอาจมี หากคุณสามารถพึ่งพาผู้อ่านของคุณเพื่อรับรู้ FFT ในไวยากรณ์เฉพาะมันเป็น "ง่ายกว่าเหตุผลเกี่ยวกับ" รหัสถ้าคุณติดกับไวยากรณ์ที่ มันช่วยให้พวกเขาดูที่ไฟล์ข้อความในรูปแบบผืนผ้าใบที่คุณวาด FFT ลงไปแทนที่จะต้องเข้าไปดูรายละเอียดเล็ก ๆ น้อย ๆ หากคุณใช้ C ++ ให้ค้นหาว่าผู้อ่านของคุณพอใจกับstd
ห้องสมุดมากแค่ไหน พวกเขาชอบฟังก์ชั่นการเขียนโปรแกรมมากแค่ไหน? สำนวนบางอย่างที่ออกมาจากตู้คอนเทนเนอร์นั้นขึ้นอยู่กับสไตล์ที่คุณต้องการ
สิ่งสำคัญคือต้องเข้าใจว่าคำถามประเภทใดที่ผู้อ่านอาจสนใจในการตอบคำถาม ผู้อ่านของคุณส่วนใหญ่เกี่ยวข้องกับความเข้าใจผิวเผินของรหัสหรือพวกเขากำลังมองหาข้อบกพร่องลึกลงไปในลำไส้?
ผู้อ่านจะต้องแน่ใจได้อย่างไรว่าเป็นสิ่งที่น่าสนใจ ในหลายกรณีเหตุผลที่คลุมเครือจริง ๆ แล้วเพียงพอที่จะนำผลิตภัณฑ์ออกจากประตู ในกรณีอื่น ๆ เช่นซอฟต์แวร์เที่ยวบินของ FAA ผู้อ่านจะต้องการให้เหตุผลที่ชัดเจน ฉันพบกรณีที่ฉันใช้งาน RAII สำหรับงานเฉพาะเพราะ "คุณสามารถตั้งค่าและลืมมันได้ ... มันจะทำสิ่งที่ถูกต้อง" ฉันบอกว่าฉันผิดเกี่ยวกับเรื่องนั้น ผู้ที่จะให้เหตุผลในรหัสนี้ไม่ใช่คนที่ "แค่อยากลืมรายละเอียด" สำหรับพวกเขา RAII เป็นเหมือนชาดแขวนบังคับให้พวกเขาคิดทุกสิ่งที่สามารถเกิดขึ้นได้เมื่อคุณออกจากขอบเขต