ฉันเริ่มตระหนักแล้วว่าการพัฒนาซอฟต์แวร์เป็นกระบวนการหนึ่งในการถามคำถามตัวเองอย่างต่อเนื่อง คำถามเกี่ยวกับคุณภาพของรหัสการแยกข้อกังวลการลดการพึ่งพา ...
แต่คำถามหลักคือคุณจะไปได้ไกลแค่ไหนโดยไม่ต้องไปโรงพยาบาลโรคจิต?
ฉันสมัครงานใหม่ เมื่อวานฉันอยู่กับนายจ้างในอนาคตที่เป็นไปได้ที่ต้องการทดสอบความสามารถในการเขียนโปรแกรมของฉัน แบบฝึกหัดข้อหนึ่ง: อธิบายว่าโค้ดนี้ทำอะไร ฉันอ่านโค้ดของแอปพลิเคชั่น (winforms ใน vb.net) ที่พวกเขาพัฒนา (มันเป็นแอพพลิเคชั่นสำหรับผู้บริหารในโรงพยาบาล) นี่ทำให้ฉันมีโอกาสได้เห็นว่าพวกเขาเข้าใกล้สิ่งต่าง ๆ อย่างไรและมันค่อนข้างน่าผิดหวัง
ตัวอย่างบางส่วน:
- ฉันเห็นบางแห่ง: โทร [ใส่ชื่อของรูทีนย่อยที่นี่] -> ฉันหลง: นั่นไม่ใช่อะไรจาก VB6 ใช่ไหม
- พวกเขามีข้อมูลแยกต่างหากโดยใช้ ado.net แต่วิธีหนึ่งที่ฉันต้องตรวจสอบส่งกลับชุดข้อมูลไปยังชั้นที่เรียก แยกข้อมูลหรือไม่ดังนั้นแอปพลิเคชันจึงเชื่อมโยงกับ ado.net (ซึ่งอาจไม่เป็นปัญหาหากไม่เคยเปลี่ยนไปใช้วิธีการเข้าถึงข้อมูลอื่น)
- ชุดข้อมูลนั้นอ่านตามสภาพดังนั้นจึงยังคงเป็นวิธีการที่ใช้ข้อมูลเป็นศูนย์กลาง (แน่นอนว่าเราสามารถยืนยันเหตุผล / พฤติกรรมที่คุณสามารถใส่ในคลาสเช่น "ผู้ป่วย" หรือ "LabAnalysisRequest" ได้
- ฉันยังเชื่อว่าได้เห็นการสร้างแบบสอบถาม SQL โดยการต่อข้อมูลสตริง
- พวกเขาใช้วิธีการเก็บ (ซึ่งสำหรับฉันหมายถึง: การกระจายของตรรกะ)
- ไม่เอ่ยถึงมุมมอง / ตัวควบคุม: มันขับเคลื่อนทุกรูปแบบ
- สิ่งที่น่าเกลียดที่สุดที่ฉันเห็นคือ:
ถ้า TestEnvironment.Intesting แล้ว someVar = [ค่าฮาร์ดโค้ดบางตัว] อื่น someVar = [บางค่าที่ถูกดึงแบบไดนามิก] จบถ้า [ส่วนที่เหลือของฟังก์ชันที่นี่]
ทุกอย่างแตกต่างจากสิ่งที่ฉันเรียนในโรงเรียน: (ผู้ไม่เชื่อเรื่องพระเจ้าคงอยู่) ชั้นโดเมน, ชั้นติดตา, ชั้นนำเสนอ, การทดสอบหน่วย ...
ดังนั้นฉันจึงเรียบเรียงคำถามของฉันใหม่: พื้นฐานหรือดันทุรังควรเป็นอย่างไร โปรแกรมเมอร์ควรยึดติดกับหลักการของเขาหรือเธอในระดับใดหรือเพียงแค่เขียนโค้ดที่ทำงานได้?