Я работаю в компании, где у нас много разных навыков в команде разработчиков.
Мы делаем все следующее (как правило, ориентированные на веб):
- .NET (MVC, Umbraco, ASP.NET, Surface)
- Java (Spring, Hibernate, Android)
- PHP (Zend, Кодовый воспламенитель)
- Actionscript 3
- ВОЗДУХА
- Objective-C
- HTML / Javascript (очевидно)
Мы пытаемся упростить процесс разработки.
В настоящее время у нас есть сервер TeamCity, который создает и развертывает проекты .NET с помощью msbuild / msdeploy / nant.
То, что я хочу, - это что-то вроде maven, которое даст нам стандартную структуру шаблонов проектов, которая работает для большинства проектов, чтобы люди из разных команд могли легко перемещаться между проектами.
В настоящее время это работает на одной платформе, потому что мы склонны делать что-то стандартным образом для этой платформы (при условии участия определенных людей), однако я хочу использовать что-то вроде maven для стандартизации того, как проект спланирован и построен.
Кто-нибудь пробовал что-то подобное раньше? Опыт? Книги?
Ответы:
Что касается .NET, есть три проекта для портирования Maven. Смотрите этот ответ на stackoverflow.com. Также эта статья вики может быть полезна.
Что касается других языков, я предлагаю применить ту же структуру, которую поддерживает Maven (все источники ниже
src/language/main
и т. Д.), А затем либо написать плагины Maven для их построения, либо по крайней мере написать общие шаблоны «Makefile», которые поддерживают эту структуру из коробки.источник
В настоящее время мы используем несколько языков в нашем проекте: C ++, Java, Ruby, Perl, OCaml, Shell, PHP и JavaScript. И у нас нет проблем с ними мириться. Потому что каждый компонент имеет свою структуру и структуру каталогов . Сборка склеена с простыми рекурсивными Make-файлами, обработанными GNU make. Иногда они вызывают другие системы сборки, если необходимо (например, они вызывают Ant для сборки Java-кода). Если эти системы сборки привязаны к определенной компоновке, это не проблема, потому что у каждого компонента есть свой, и он может быть настроен в соответствии с требованиями системы сборки.
Основная идея заключалась в том, чтобы держать каждый компонент отдельно от других. Внутри его каталога мы просто сохранили файлы, так как думали, что это будет полезно для этого конкретного компонента. У нас нет больших блобов, таких как
src/
каталоги, которые содержат, например, весь код для одного языка. Таким образом, у нас не было проблем с редактированием кода в разных компонентах.источник