Хотя я умею кодировать, у меня пока нет опыта работы над большими проектами. До сих пор я занимался написанием небольших программ, которые компилируются за считанные секунды (различные упражнения на языке c / c ++, такие как алгоритмы, принципы программирования, идеи, парадигмы, или просто тестирование API-интерфейсов ...) или работой над небольшими проектами, которые были сделано на скриптовом языке (ах) (python, php, js), где компиляция не требуется.
Дело в том, что при кодировании на языке сценариев, когда я хочу попробовать, если что-то работает, я просто запускаю сценарий и вижу, что происходит. Если что-то не работает, я могу просто изменить код и попробовать его снова, запустив скрипт снова и продолжая делать это, пока не получу желаемый результат ... Я хочу сказать, что вам не нужно ждать что-нибудь для компиляции, и из-за этого довольно легко взять большую базу кода, изменить ее, добавить что-то к ней или просто поиграть с ней - вы можете увидеть изменения мгновенно.
В качестве примера я возьму Wordpress. Это довольно легко попытаться понять, как создать плагин для него. Сначала вы создаете простой плагин «Hello World», затем создаете простой интерфейс для админ-панели, чтобы познакомиться с API, затем создаете его и делаете что-то более сложное, в то же время изменяя его внешний вид. раз ... Идея перекомпилировать что-то такое большое, как WP, снова и снова, после каждого незначительного изменения, пытаясь "если это работает" и "как это работает / чувствует", кажется неэффективной, медленной и неправильной.
Теперь, как я могу сделать это с проектом, который написан на скомпилированном языке? Я хотел бы внести свой вклад в некоторые проекты с открытым исходным кодом, и этот вопрос продолжает меня беспокоить. Ситуация, вероятно, отличается от проекта к проекту, где некоторые из них, которые были заранее продуманы, будут в некотором роде «модульными», в то время как другие будут просто одним большим двоичным объектом, который необходимо перекомпилировать снова и снова.
Я хотел бы узнать больше о том, как это делается правильно. Каковы некоторые общие практики, подходы и проекты (шаблоны), чтобы справиться с этим? Как эта «модульность» называется в мире программистов и для чего мне нужно поискать в Google? Часто ли проекты вырастают из своих первых масштабов, что через некоторое время становится проблематичным? Есть ли способ избежать долгой компиляции не очень хорошо разработанных проектов? Способ как-то их модульно (возможно, исключить не жизненно важные части программы при разработке (какие-либо другие идеи?))?
Спасибо.