ฉันไม่ได้เขียนโครงการขนาดใหญ่จริงๆ ฉันไม่ได้บำรุงรักษาฐานข้อมูลขนาดใหญ่หรือจัดการกับโค้ดหลายล้านบรรทัด
รหัสของฉันคือ "สคริปต์" สิ่งที่พิมพ์ - สิ่งที่จะทดสอบฟังก์ชั่นทางคณิตศาสตร์หรือเพื่อจำลองบางอย่าง - "การเขียนโปรแกรมทางวิทยาศาสตร์" โปรแกรมที่ยาวที่สุดที่ฉันทำงานจนถึงจุดนี้คือโค้ดสองร้อยบรรทัดและโปรแกรมส่วนใหญ่ที่ฉันใช้อยู่นั้นมีประมาณ 150 รายการ
รหัสของฉันยังอึ ฉันรู้เรื่องนี้เมื่อวันก่อนขณะที่ฉันพยายามค้นหาไฟล์ที่ฉันเขียนสักครู่แล้ว แต่ฉันอาจจะเขียนทับและฉันไม่ได้ใช้การควบคุมเวอร์ชันซึ่งอาจทำให้คุณรู้สึกปวดร้าวใจเป็นจำนวนมาก
รูปแบบของรหัสของฉันมีความซับซ้อนและเต็มไปด้วยความคิดเห็นที่ล้าสมัยซึ่งระบุวิธีอื่นในการทำบางสิ่งหรือคัดลอกบรรทัดของรหัสไป ในขณะที่ชื่อตัวแปรเริ่มต้นที่ดีมากและเป็นคำอธิบายในขณะที่ฉันเพิ่มหรือเปลี่ยนแปลงสิ่งต่าง ๆ ตามเช่นสิ่งใหม่ที่ใครบางคนต้องการทดสอบรหัสได้รับการซ้อนทับด้านบนและเขียนทับและเพราะฉันรู้สึกว่าสิ่งนี้ควรทดสอบอย่างรวดเร็วตอนนี้ มีกรอบฉันเริ่มใช้ชื่อตัวแปรเส็งเคร็งและไฟล์ไปที่หม้อ
ในโครงการที่ฉันกำลังทำอยู่ตอนนี้ฉันอยู่ในช่วงที่สิ่งเหล่านี้กลับมากัดฉันอย่างมาก แต่ปัญหาคือ (นอกเหนือจากการใช้การควบคุมเวอร์ชันและการสร้างไฟล์ใหม่สำหรับการทำซ้ำแต่ละครั้งและบันทึกทั้งหมดในไฟล์ข้อความที่ไหนสักแห่งซึ่งอาจจะช่วยสถานการณ์ได้อย่างมาก) ฉันไม่รู้จริง ๆ ว่าจะดำเนินการปรับปรุงอย่างไร สไตล์การเข้ารหัสที่แท้จริงของฉัน
การทดสอบหน่วยจำเป็นสำหรับการเขียนโค้ดขนาดเล็กลงหรือไม่? แล้ว OOP ล่ะ วิธีใดบ้างที่ดีสำหรับการเขียนโค้ดที่ดีและสะอาดได้อย่างรวดเร็วเมื่อทำการ "การเขียนโปรแกรมเชิงวิทยาศาสตร์" ซึ่งต่างจากการทำงานในโครงการขนาดใหญ่
ฉันถามคำถามเหล่านี้เพราะบ่อยครั้งการเขียนโปรแกรมเองนั้นไม่ซับซ้อน มันเกี่ยวกับคณิตศาสตร์หรือวิทยาศาสตร์ที่ฉันกำลังทดสอบหรือค้นคว้าด้วยการเขียนโปรแกรม เช่นคลาสจำเป็นหรือไม่เมื่อมีตัวแปรสองตัวและฟังก์ชั่นอาจดูแลได้ (พิจารณาสิ่งเหล่านี้โดยทั่วไปเป็นสถานการณ์ที่ความเร็วของโปรแกรมเป็นที่ต้องการในตอนท้ายที่เร็วกว่า - เมื่อคุณรันขั้นตอนการจำลองมากกว่า 25,000,000+ ครั้งคุณต้องการให้มันเป็นแบบนั้น)
บางทีนี่อาจจะกว้างเกินไปและถ้าเป็นเช่นนั้นฉันขอโทษ แต่เมื่อดูหนังสือโปรแกรมพวกเขามักจะพูดถึงโครงการขนาดใหญ่ รหัสของฉันไม่จำเป็นต้องมี OOP และมันก็ค่อนข้างสั้นอยู่แล้วดังนั้นจึงไม่เหมือน "โอ้ แต่ไฟล์จะลดลงหนึ่งพันบรรทัดถ้าเราทำอย่างนั้น!" ฉันต้องการทราบวิธี "เริ่มต้นใหม่" และเขียนโปรแกรมอย่างละเอียดเกี่ยวกับโครงการขนาดเล็กลงและเร็วขึ้น
ฉันยินดีที่จะให้รายละเอียดที่เฉพาะเจาะจงยิ่งขึ้น แต่ยิ่งคำแนะนำที่มีประโยชน์มากกว่านี้ฉันคิดว่า ฉันกำลังเขียนโปรแกรมใน Python 3
มีคนแนะนำสำเนาที่ซ้ำกัน ให้ฉันชัดเจนฉันไม่ได้พูดเกี่ยวกับการละเว้นมาตรฐานการเขียนโปรแกรมมาตรฐานทันที เห็นได้ชัดว่ามีเหตุผลมาตรฐานเหล่านั้นอยู่ แต่ในทางกลับกันมันเป็นเรื่องที่สมเหตุสมผลหรือไม่ที่จะเขียนโค้ดที่พูดว่า OOP เมื่อสิ่งมาตรฐานสามารถทำได้สำเร็จจะเร็วกว่ามากในการเขียนและจะอ่านได้ในระดับใกล้เคียงกันเนื่องจากความสั้น โปรแกรม?
มีข้อยกเว้น นอกจากนี้อาจมีมาตรฐานสำหรับการเขียนโปรแกรมทางวิทยาศาสตร์เกินกว่ามาตรฐานธรรมดา ฉันถามเกี่ยวกับสิ่งเหล่านั้นเช่นกัน นี่ไม่เกี่ยวกับว่ามาตรฐานการเข้ารหัสปกติควรถูกละเว้นเมื่อเขียนรหัสทางวิทยาศาสตร์มันเกี่ยวกับการเขียนรหัสทางวิทยาศาสตร์ที่สะอาด!
ปรับปรุง
แค่คิดว่าฉันจะเพิ่มการอัปเดตประเภท "ไม่ค่อนข้างหนึ่งสัปดาห์ - ต่อมา" คำแนะนำทั้งหมดของคุณมีประโยชน์อย่างยิ่ง ตอนนี้ฉันกำลังใช้การควบคุมเวอร์ชัน - git ด้วย git kraken สำหรับส่วนต่อประสานกราฟิก มันใช้งานง่ายมากและทำความสะอาดไฟล์ของฉันอย่างมาก - ไม่จำเป็นต้องใช้ไฟล์เก่า ๆ อีกต่อไปหรือโค้ดเก่า ๆ แสดงความคิดเห็นว่า "ในกรณี"
ฉันยังติดตั้ง pylint และรันบนโค้ดทั้งหมดของฉัน เริ่มต้นหนึ่งไฟล์มีคะแนนลบ ฉันไม่แน่ใจด้วยซ้ำว่ามันเป็นไปได้อย่างไร ไฟล์หลักของฉันเริ่มต้นที่คะแนน ~ 1.83 / 10 และตอนนี้อยู่ที่ ~ 9.1 / 10 รหัสทั้งหมดตอนนี้สอดคล้องกับมาตรฐานค่อนข้างดี ฉันวิ่งไปหามันด้วยสายตาของฉันเองในการอัพเดตชื่อตัวแปรที่หายไป ... เอ่อ ... เหรอ ... และมองหาส่วนต่างๆ
โดยเฉพาะอย่างยิ่งฉันถามคำถามเมื่อเร็ว ๆ นี้ในไซต์นี้เกี่ยวกับการรีแฟคเตอร์หนึ่งในฟังก์ชั่นหลักของฉันและตอนนี้มันสะอาดกว่าและสั้นกว่ามาก: แทนที่ฟังก์ชั่นที่เต็มไปด้วยความยาว ขนาดและง่ายต่อการหาว่าเกิดอะไรขึ้น
ขั้นตอนต่อไปของฉันคือการใช้ "การทดสอบหน่วย" แปลก ๆ โดยที่ฉันหมายถึงไฟล์ที่ฉันสามารถเรียกใช้ในไฟล์หลักของฉันซึ่งดูฟังก์ชั่นทั้งหมดที่อยู่ในนั้นด้วยคำสั่ง assert และลอง / ยกเว้นซึ่งอาจไม่ใช่วิธีที่ดีที่สุดในการทำมันและผลลัพธ์ในรหัสที่ซ้ำกันจำนวนมาก แต่ฉันจะอ่านต่อไปและพยายามหาวิธีที่จะทำให้ดีขึ้น
ฉันได้อัปเดตเอกสารที่ฉันเขียนไปแล้วและเพิ่มไฟล์เสริมเช่นสเปรดชีต excel เอกสารและเอกสารที่เกี่ยวข้องไปยังที่เก็บ github มันดูเหมือนโครงการเขียนโปรแกรมจริงตอนนี้
ดังนั้น ... ผมคิดว่านี่เป็นสิ่งที่จะพูดว่า: ขอขอบคุณ