Bien que je puisse coder, je n'ai pas encore d'expérience dans le travail sur de grands projets. Ce que j'ai fait jusqu'à présent était soit de coder de petits programmes qui se compilaient en quelques secondes (divers exercices c / c ++ comme des algorithmes, des principes de programmation, des idées, des paradigmes, ou simplement d'essayer des API ...) ou de travailler sur des projets plus petits qui étaient fait dans un ou des langages de script (python, php, js) où aucune compilation n'est nécessaire.
Le truc, c'est que lorsque je code dans un langage de script, chaque fois que je veux essayer si quelque chose fonctionne - je lance simplement le script et vois ce qui se passe. Si les choses ne fonctionnent pas, je peux simplement changer le code et l'essayer à nouveau en exécutant le script à nouveau et continuer à le faire jusqu'à ce que j'obtienne le résultat que je voulais. Mon point est que vous n'avez pas à attendre rien à compiler et à cause de cela, il est assez facile de prendre une grande base de code, de la modifier, d'y ajouter quelque chose ou de simplement jouer avec - vous pouvez voir les changements instantanément.
Comme exemple, je prendrai Wordpress. Il est assez facile d'essayer de comprendre comment créer un plugin pour cela. D'abord, vous commencez par créer un simple plugin "Hello World", puis vous créez une interface simple pour le panneau d'administration pour vous familiariser avec l'API, puis vous le construisez et faites quelque chose de plus complexe, en attendant de changer l'apparence de quelques fois .. L'idée d'avoir à recompiler quelque chose d'aussi gros que WP maintes et maintes fois, après chaque modification mineure pour essayer "si cela fonctionne" et "comment cela fonctionne / se sent" semble juste inefficace, lente et erronée.
Maintenant, comment pourrais-je faire cela avec un projet écrit dans un langage compilé? Je voudrais contribuer à certains projets open-source et cette question continue de me déranger. La situation diffère probablement d'un projet à l'autre où certains d'entre eux qui ont été pensés au préalable avec sagesse seront d'une certaine manière "modulaires" tandis que d'autres ne seront qu'une grosse goutte qui doit être recompilée encore et encore.
J'aimerais en savoir plus sur la façon dont cela se fait correctement. Quelles sont les pratiques, approches et conceptions de projets (modèles?) Communes pour y faire face? Comment appelle-t-on cette "modularité" dans le monde des programmeurs et à quoi dois-je google pour en savoir plus? Est-ce souvent que les projets sortent de leurs proportions de première pensée qui deviennent gênantes après un certain temps? Existe-t-il un moyen d'éviter une longue compilation de projets pas si bien conçus? Un moyen de les modulariser d'une manière ou d'une autre (peut-être en excluant des parties non vitales du programme pendant le développement (d'autres idées?))?
Merci.