Я технический директор и единственный разработчик в моей компании. Я готовлюсь нанять нашего первого разработчика и, возможно, второго в течение следующих 6-12 месяцев. Мне стыдно сказать, что я никогда не использовал контроль исходного кода как часть моего рабочего процесса. Я думаю, что команда разработчиков из одного члена позволила мне быть немного ленивым. Дело не в том, что я этого не хотел, у меня просто небольшой ментальный блок о том, как с этим начать.
У нас есть 5 веб-приложений, которые я создаю и поддерживаю. Мы используем ASP.NET, и каждое веб-приложение ссылается на одну .NET Class Library (DLL), которая была скопирована в папку «bin» для каждого приложения. Я разрабатывал одно решение Visual Studio, которое включает библиотеку классов и все веб-приложения. Я уверен, что немного раздутый, но этот метод позволил мне минимизировать ошибки, позволив мне одновременно выполнять глобальные операции поиска и замены для всех моих приложений (и библиотеки классов).
Я понимаю, что реализация управления исходным кодом сама по себе является большим изменением в моем рабочем процессе, но введение другого разработчика в мой процесс меня немного ошеломило. Мне нужна помощь в разработке рабочего процесса, который позволит моей небольшой команде быстро двигаться без громоздких процессов. Я хотел бы избежать дискуссий о том, какую систему SCC выбрать (мы собираемся использовать Mercurial). Я больше заинтересован в обсуждении структуры и аспектов рабочего процесса.
Вот вопросы, с которыми мне нужна помощь:
Должен ли я разделить каждое приложение на отдельный «проект» или сохранить их все вместе, чтобы мы могли продолжать получать выгоду от глобальных операций поиска и замены при необходимости. Я беспокоюсь о том, чтобы разделить их из-за ситуации с библиотекой классов (см. # 2).
Если разделить приложения на отдельные проекты, я не уверен, что делать с библиотекой классов, копия которой требуется для каждого проекта. Например, допустим, что изменения в одном из приложений (назовите его «проект 1») требуют изменения библиотеки классов ... если библиотека классов находится в отдельном проекте (назовите его «проект 2»), она Мне кажется "грязным", что проект 1 будет зависеть от последних изменений в проекте 2 для правильной работы. Или вы просто вносите свои изменения в проект 2 (библиотеку классов), регистрируете их, а затем копируете недавно скомпилированную dll в проект 1 (но не должна ли новая копия dll, копируемая в проект 1, записываться в ГТК как-то). Я запутался, даже когда я пишу это ...
Заранее спасибо за помощь.