Инфраструктура для программного проекта

Скоро я буду вести новый проект. И я размышлял о том, какова базовая инфраструктура для программного проекта. Вот то, что, я думаю, должно быть в каждом проекте:

-Соглашения о стилях кодирования

-Соглашения об именах

-Стандартная структура каталогов проекта (например, стандартный макет каталога maven и т. д.)

-Управление проектами и отслеживание проблем (например, trac, redmine и т. д.)

-Сервер непрерывной интеграции (например, Hudson, круиз-контроль и т. д.)

Не уверен, что я что-то пропустил. Кто-нибудь хотел бы добавить?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
4
0
1 836
8

Ответы 8

В дополнение к вашему поставлю:

  • Стратегия модульного тестирования
  • Стратегия тестирования интеграции
  • Определенный процесс
  • Стратегия выпуска (доставки) (например, этапы, рабочие пакеты и т. д.)
  • Стратегия ветвления системы контроля версий
  • система контроля версий (например, subversion, cvs, git)

В качестве предварительного ответа ознакомьтесь с тестом Джоэла: http://www.joelonsoftware.com/articles/fog0000000043.html

Просто закуска:

  1. Do you use source control?
  2. Can you make a build in one step?
  3. Do you make daily builds?
  4. Do you have a bug database?
  5. Do you fix bugs before writing new code?
  6. Do you have an up-to-date schedule?
  7. Do you have a spec?
  8. Do programmers have quiet working conditions?
  9. Do you use the best tools money can buy?
  10. Do you have testers?
  11. Do new candidates write code during their interview?
  12. Do you do hallway usability testing?
  • Что насчет документации - как (комментарии в коде, высокоуровневые спецификации), когда, количество, кто
  • Как вы будете тестировать - модульное / приемочное / пользовательское тестирование
  • управление версиями кода, какой-то SVN / Git (или он включен в trac?)
  • командные роли и обязанности - должны выполняться вне вашего проекта

Управление знаниями имеет решающее значение. Поскольку вы уже планируете использовать вики (например, Trac или Redmine), вы также можете использовать его для KM.

Функциональное тестирование - обязательная часть любого проекта. Модульное тестирование - это прекрасно, и оно хорошо работает для Agile-проектов, но функциональное тестирование по-прежнему необходимо. Вам нужен хотя бы базовый план тестирования. Если вы планируете иметь несколько проектов или подпроектов, вам подойдет документ о стратегии тестирования или страница Wiki. Сценарии тестирования, примеры приемочного тестирования и т. д. Могут быть обусловлены вашими пользовательскими историями или их эквивалентами, но они все равно должны существовать в той или иной форме.

Я бы также добавил к этому файлообменный сервер. Я думал, что контроль версий настолько прост, что даже не стал помещать его в список. Но это хороший контроль версий.

План управления конфигурацией. У вас должен быть документированный подход к вашим рабочим потокам разработки, к тому, как вы будете объединяться между ними и т. д.

Другие вопросы по теме