Sebbene io possa programmare, non ho ancora alcuna esperienza con il lavoro su grandi progetti. Quello che ho fatto fino ad ora è stato la codifica di piccoli programmi che sono stati compilati in pochi secondi (vari esercizi c / c ++ come algoritmi, principi di programmazione, idee, paradigmi o semplicemente provando api ...) o lavorando su alcuni progetti più piccoli che erano fatto in un linguaggio di scripting (s) (python, php, js) dove non è necessaria la compilazione.
Il fatto è che, quando si codifica in un linguaggio di scripting, ogni volta che voglio provare se qualcosa funziona, eseguo semplicemente la sceneggiatura e vedo cosa succede. Se le cose non funzionano, posso semplicemente cambiare il codice e provarlo di nuovo eseguendo nuovamente lo script e continuando a farlo finché non ottengo il risultato che volevo. Il mio punto è che non devi aspettare qualsiasi cosa per compilare e per questo è abbastanza facile prendere una grande base di codice, modificarla, aggiungervi qualcosa o semplicemente giocarci - è possibile vedere immediatamente le modifiche.
Come esempio prenderò Wordpress. È abbastanza facile provare a capire come creare un plugin per questo. Innanzitutto, si inizia creando un semplice plug-in "Hello World", quindi si crea un'interfaccia semplice per il pannello di amministrazione per familiarizzare con l'API, quindi lo si costruisce e si crea qualcosa di più complesso, cambiando nel frattempo l'aspetto di un paio di volte .. L'idea di dover ricompilare qualcosa di così grande come WP ancora e ancora, dopo ogni piccola modifica per provare "se funziona" e "come funziona / si sente" sembra inefficiente, lento e sbagliato.
Ora, come potrei farlo con un progetto che è scritto in un linguaggio compilato? Vorrei contribuire ad alcuni progetti open-source e questa domanda continua a infastidirmi. La situazione probabilmente differisce da progetto a progetto, dove alcuni di essi che sono stati pensati con saggezza saranno "modulari" in qualche modo, mentre altri saranno solo un grande blob che deve essere ricompilato ancora e ancora.
Mi piacerebbe sapere di più su come questo è fatto correttamente. Quali sono alcune pratiche comuni, approcci e progetti (modelli?) Per far fronte a questo? Come viene chiamata questa "modularità" nel mondo dei programmatori e cosa dovrei cercare su Google per saperne di più? È spesso che i progetti escono dalle loro prime proporzioni di pensiero che diventano fastidiose dopo un po '? C'è un modo per evitare compilazione lunga di progetti non ben progettati? Un modo per modularli in qualche modo (magari escludendo parti non vitali del programma durante lo sviluppo (altre idee?))?
Grazie.