ฉันได้พัฒนาซอฟต์แวร์ในช่วงสามปีที่ผ่านมา แต่ฉันเพิ่งตื่นขึ้นมาเมื่อไม่นานมานี้ว่าฉันเป็นคนที่มีแนวปฏิบัติที่ดี สิ่งนี้ทำให้ฉันเริ่มอ่านClean Codeของหนังสือซึ่งทำให้ชีวิตของฉันกลับมาดีขึ้น แต่ฉันพยายามดิ้นรนเพื่อให้เข้าใจถึงวิธีการที่ดีที่สุดในการเขียนโปรแกรมของฉัน
ฉันมีโปรแกรม Python ที่ฉัน ...
- ใช้ argparse
required=True
เพื่อบังคับใช้สองอาร์กิวเมนต์ซึ่งเป็นทั้งชื่อไฟล์ ตัวแรกคือชื่อไฟล์อินพุตส่วนที่สองคือชื่อไฟล์เอาต์พุต - มีฟังก์ชั่น
readFromInputFile
ที่ตรวจสอบก่อนเพื่อดูว่าชื่อไฟล์อินพุตถูกป้อน - มีฟังก์ชั่น
writeToOutputFile
ที่ตรวจสอบก่อนเพื่อดูว่ามีการป้อนชื่อไฟล์เอาต์พุต
โปรแกรมของฉันมีขนาดเล็กพอที่จะทำให้ฉันเชื่อว่าการตรวจสอบใน # 2 และ # 3 ซ้ำซ้อนและควรถูกลบออกจึงทำให้ทั้งสองฟังก์ชั่นพ้นจากif
สภาพที่ไม่จำเป็น อย่างไรก็ตามฉันก็ถูกชักนำให้เชื่อว่า "การตรวจสอบซ้ำสองครั้งก็โอเค" และอาจเป็นคำตอบที่ถูกต้องในโปรแกรมที่สามารถเรียกใช้ฟังก์ชันได้จากตำแหน่งอื่นที่การแยกวิเคราะห์ของอาร์กิวเมนต์ไม่เกิดขึ้น
(นอกจากนี้หากการอ่านหรือเขียนล้มเหลวฉันมีtry except
ในแต่ละฟังก์ชั่นเพื่อเพิ่มข้อความแสดงข้อผิดพลาดที่เหมาะสม)
คำถามของฉันคือดีที่สุดที่จะหลีกเลี่ยงการตรวจสอบสภาพซ้ำซ้อนทั้งหมดหรือไม่ ควรตรรกะของโปรแกรมเป็นของแข็งที่ตรวจสอบต้องทำเพียงครั้งเดียว? มีตัวอย่างที่ดีที่แสดงถึงสิ่งนี้หรือการสนทนาหรือไม่?
แก้ไข: ขอบคุณทุกคำตอบ! ฉันได้เรียนรู้บางอย่างจากแต่ละคน การได้เห็นมุมมองมากมายทำให้ฉันมีความเข้าใจที่ดีขึ้นเกี่ยวกับวิธีแก้ไขปัญหานี้และกำหนดวิธีการแก้ปัญหาตามความต้องการของฉัน ขอขอบคุณ!