Створення гегемонії команди розвитку агностичної платформи


9

Я працюю в компанії, де в команді розробників багато різних наборів навичок.

Ми робимо все наступне (як правило, орієнтоване на Інтернет):

  • .NET (MVC, Umbraco, ASP.NET, Surface)
  • Java (весна, сплячий режим, Android)
  • PHP (Zend, код запалювання)
  • Сценарій дій 3
  • Повітря
  • Ціль-С
  • Html / Javascript (очевидно)

Ми намагаємось упорядкувати наш процес розробки.

В даний час у нас є сервер TeamCity, який створює та розгортає проекти .NET з msbuild / msdeploy / nant.

Я хочу щось подібне до Maven, який надасть нам стандартну структуру шаблонів проектів, яка працює для більшості проектів, щоб люди з різних команд могли легко переходити між проектами.

В даний час це працює на одній платформі, тому що ми, як правило, робимо речі стандартним чином для цієї платформи (доки задіяні певні люди), проте я хочу використовувати щось на зразок maven для стандартизації того, як проект складається і будується.

Хтось пробував щось подібне раніше? Досвід? Книги?


То як би це працювало? Якщо комусь потрібно створити веб-додаток, чи потрібно їм вказати мову, чи ви хочете змусити всі мови використовувати однакову структуру, навіть якщо вона не ідеальна для цієї мови. Наприклад, структурування моїх файлів JavaScript під час виконання Java або C # буде болем.
Джеймс Блек

Відповіді:


3

Що стосується .NET, то для порту Maven є три проекти. Дивіться цю відповідь на сайті stackoverflow.com. Також ця стаття у вікі може бути корисною.

Що стосується інших мов, я пропоную застосувати ту саму структуру, яку підтримує Maven (усі джерела нижче src/language/mainтощо), а потім або написати додатки Maven для їх побудови, або, принаймні, написати загальні шаблони "Makefile", які підтримують цю структуру з поля.


2

В даний час ми використовуємо кілька мов у нашому проекті: C ++, Java, Ruby, Perl, OCaml, Shell, PHP та JavaScript. І ми не маємо жодних проблем миритися з усіма ними. Тому що кожен компонент має свою структуру та макет каталогів . Збірка склеюється простими рекурсивними Makefiles, обробленими GNU make. Вони іноді викликають інші системи побудови, якщо це необхідно (наприклад, вони викликають Java Ant, щоб створити код Java). Якщо ці системи побудови прив’язані до конкретної верстки, це не проблема, оскільки кожен компонент має свій власний, і він може бути налаштований на виконання вимог системи збірки.

Основна ідея полягала в тому, щоб тримати кожен компонент окремо від інших. Всередині його каталогу ми просто зберігали файли, оскільки вважали, що це буде корисно саме для цього компонента. У нас немає великих крапок, таких як src/каталоги, які містять, наприклад, весь код для однієї мови. Таким чином, ми не мали жодних проблем із редагуванням коду в різних компонентах.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.