แม้ว่าฉันสามารถเขียนโค้ดได้ แต่ฉันยังไม่มีประสบการณ์ในการทำงานในโครงการขนาดใหญ่ สิ่งที่ฉันทำจนถึงตอนนี้ก็คือการเขียนโปรแกรมขนาดเล็กที่รวบรวมในไม่กี่วินาที (แบบฝึกหัด c / c ++ ต่าง ๆ เช่นอัลกอริทึมหลักการเขียนโปรแกรมแนวคิดแนวความคิดหรือเพียงแค่ลอง api ... ) หรือทำงานในโครงการขนาดเล็กบางโครงการ ทำในภาษาสคริปต์ (python, php, js) โดยไม่จำเป็นต้องรวบรวม
สิ่งนี้คือเมื่อโค้ดในภาษาสคริปต์เมื่อใดก็ตามที่ฉันต้องการลองสิ่งที่ใช้ได้ผลฉันแค่เรียกใช้สคริปต์และดูว่าเกิดอะไรขึ้น หากสิ่งต่าง ๆ ไม่ทำงานฉันสามารถเปลี่ยนรหัสและลองใหม่อีกครั้งโดยเรียกใช้สคริปต์อีกครั้งและทำต่อไปเรื่อย ๆ จนกว่าฉันจะได้ผลลัพธ์ตามที่ฉันต้องการ .. ประเด็นของฉันคือคุณไม่ต้องรอ อะไรก็ตามที่จะรวบรวมและเพราะมันค่อนข้างง่ายที่จะใช้ฐานรหัสขนาดใหญ่ดัดแปลงแก้ไขเพิ่มบางอย่างเข้ากับมันหรือเล่นกับมัน - คุณสามารถเห็นการเปลี่ยนแปลงได้ทันที
เป็นตัวอย่างฉันจะใช้ Wordpress มันค่อนข้างง่ายที่จะลองและคิดวิธีการสร้างปลั๊กอินสำหรับมัน ก่อนอื่นคุณต้องเริ่มต้นด้วยการสร้างปลั๊กอิน "Hello World" อย่างง่ายจากนั้นคุณสร้างอินเทอร์เฟซที่ง่ายสำหรับผู้ดูแลระบบเพื่อทำความคุ้นเคยกับ API จากนั้นคุณสร้างมันขึ้นมาและทำให้สิ่งที่ซับซ้อนมากขึ้นในเวลาที่เปลี่ยนไป ครั้ง .. ความคิดที่จะต้องคอมไพล์บางสิ่งที่ยิ่งใหญ่เท่า WP ซ้ำแล้วซ้ำอีกหลังจากการเปลี่ยนแปลงเล็กน้อยแต่ละครั้งเพื่อลอง "ถ้ามันได้ผล" และ "การทำงาน / รู้สึกอย่างไร" ดูเหมือนจะไม่มีประสิทธิภาพช้าและผิด
ตอนนี้ฉันจะทำอย่างไรกับโครงการที่เขียนด้วยภาษาที่รวบรวม? ฉันต้องการมีส่วนร่วมในโครงการโอเพนซอร์ซบางโครงการและคำถามนี้ทำให้ฉันรำคาญใจ สถานการณ์อาจแตกต่างจากโครงการหนึ่งไปอีกโครงการหนึ่งซึ่งบางคนที่เคยคิดอย่างชาญฉลาดจะเป็น "แบบแยกส่วน" ในบางกรณีขณะที่คนอื่น ๆ จะกลายเป็นหยดขนาดใหญ่ที่ต้องมีการคอมไพล์ซ้ำแล้วซ้ำอีก
ฉันต้องการทราบเพิ่มเติมเกี่ยวกับวิธีการทำสิ่งนี้อย่างถูกต้อง อะไรคือวิธีปฏิบัติทั่วไปแนวทางและการออกแบบโครงการ (รูปแบบ?) เพื่อรับมือกับสิ่งนี้? "modularity" นี้เรียกว่าอย่างไรในโลกโปรแกรมเมอร์และสิ่งที่ฉันควร google เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับเรื่องนี้? บ่อยครั้งที่โครงการเติบโตจากสัดส่วนความคิดแรกของพวกเขาซึ่งกลายเป็นปัญหาหลังจากผ่านไประยะหนึ่งหรือไม่? มีวิธีใดบ้างที่จะหลีกเลี่ยงการรวบรวมโครงการที่ไม่ได้รับการออกแบบมาเป็นอย่างดี? วิธีใดในการทำให้เป็นโมดูลอย่างใดพวกเขา (อาจยกเว้นส่วนที่ไม่สำคัญของโปรแกรมในขณะที่การพัฒนา
ขอบคุณ