против Чагса, чтобы меня догнать.
Хммм ... вашей машине нужно больше памяти и хрюканья. У меня никогда не было проблем с производительностью.
У меня около десяти лет опыта работы именно с тем, что вы предлагаете, в основном в финансовой сфере, с разработкой систем реального времени для клиентов в банковской сфере, на фондовых биржах, в брокерских нишах.
Прежде чем продолжить, я должен признаться, что все это было сделано в VS6 + CVS, а в последнее время в SVN.
Управление версиями исходного кода
Разработчики имеют отдельные исходные безопасные репозитории, чтобы они могли хранить свою работу и проверять ее пакеты работ на логических этапах. Когда они чувствуют, что хотят провести интеграционный тест, мы запускаем скрипт, который проверяет его в SVN.
После регистрации в SVN у нас начинается процесс, который автоматически генерирует соответствующие make-файлы для их компиляции на целевых машинах для непрерывной интеграции.
У нас есть еще один набор скриптов, который синхронизирует новый материал из SVN с папками, за которыми VS наблюдает. Здесь есть небольшой разрыв, потому что VS не может автоматически получать новые файлы; мы обычно обрабатываем это вручную. Это происходит регулярно только в первые дни проекта.
Это обзор того, как мы поддерживаем коды. Я должен сказать, что я, вероятно, затушевал некоторые детали (дайте мне знать, если вы заинтересованы).
Кодирование
С точки зрения кодирования, мы в значительной степени полагаемся на препроцессоры (например, #define и т. Д.) И флаги в make-файле для формирования процесса компиляции. Для межплатформенной переносимости мы используем GCC. Несколько раз мы были вынуждены использовать aCC в HP-UX и некоторых других компиляторах, но у нас не было особого горя. Единственное, что вызывает постоянную боль, это то, что нам приходилось следить за пространством кучи потоков на разных платформах. Компилятор не избавляет нас от этого.
Почему?
Обычно вопрос звучит так: «Зачем вам вообще такой сложный путь развития?». Нашим ответом обычно является другой вопрос, который звучит так: «Есть ли у вас какая-то подсказка, насколько безумно отлаживать многопоточное приложение, изучая дамп ядра или используя gdb?». По сути, тот факт, что мы можем отслеживать / проходить через каждую строку кода при отладке неясной ошибки, делает все это стоящим усилий!
Плюс! ... Функция intellisense VS упрощает поиск метода / атрибута, принадлежащего классам. Я также слышал, что VS2008 имеет возможности рефакторинга. Я переключил свое внимание на Java на Eclipse, которая имеет обе функции. Вы бы более продуктивно сосредоточились на кодировании бизнес-логики, чем на том, чтобы тратить силы на то, чтобы заставить ваш ум делать такие вещи, как запомнить !
Также! ... В итоге мы получили продукт, который может работать как в Windows, так и в Linux!
Удачи!