Skip to content

Резюме зустрічі 27.01.16

romach edited this page Jan 30, 2016 · 2 revisions

youtube-icon Відео

Відповіді на запитання [00:00 - 6:45]

[00:00] Можно ли конфигурационный файл xml спринга разбить на составные, но оставить в нем ссылки на них, чтобы он был как одно целое? Например один и тот же бин нужен в двух конфигах, но если прописать его и там и там, то будет нарушение принципа DRY, а так можно было бы в обоих конфигах всего лишь прописать ссылку на отдельный xml с этим бином.

Если можно то как?

http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#beans-factory-xml-import

Можна і треба. У нас пошарове розмежування проекту. Тому має сенс на кожен шар свій контекст. Типу, persistence-contex, service, etc.

Типи архітектур проектів (принцип за яким відбувається поділ на пакети):

  • леєрна (вертикальна) (controller, dao, service, ...);
  • за фічами (user, event, subscribe, ...);

Архітктура з розподілом за фічами зручна тому, що з неї легко зробити мікросервіси.

[03:00] В последнем ревью ты указал в качестве разделителя в именах в .properties точку. однако так как на Travis и OpenShift эти свойства хранятся в переменных окружения, а в переменных окружения нельзя использовать точку, то можно ли использовать знак подчеркивания вместо точки, либо есть другое решение?

Таке обмеження означає платформозалежність - це мені не подобається. А на практиці я не зустрічався. Тому варто окремо почитати.

Підхід з environment variables поганий, тому що колізія змінних, коли в нас на одному сервері запущено декілька апплікейшенів.

Workflow [6:45 - ]

В цьому розділі описані процеси, котрі повинні дотримуватись всіма учасниками команди відповідно до ролей.

1. Developer [9:45]

1.1. Початок роботи над задачею:
1.1.1. У девелопера може бути тільки одна задача в статусі In Progress;
1.1.2. Перед початком виконання задачі бере тікет із колонки Backlog:
1.1.2.1. Перш за все треба брати свої задачі, які були повернуті із рев'ю або були заблоковані
1.1.2.2. Брати задачі, вже назначені на когось, не дозволяється;
1.1.3. Якщо задача повернулась з рев'ю і в неї багато зауважень, треба розбити її на декілька, відповідно до скоупа (4 години);
1.1.4. Призначає себе на цю задачу;
1.1.5. Переносить задачу в колонку In Progress;
1.1.6. Гілку з задачею треба називати так: #123-very-important-feature;

1.2. Робота над задачею:
1.2.1. Повідомлення в коммітах повинні бути такого формату: #123: commit message;
1.2.2. На задачу повинні бути юніт-тести;

1.3. Якщо задача заблокована іншою [24:25]:
1.3.1. Додає коментар до своєї задачі blocked with #123 @AndriyBaibak @author-of-blocker pls fix it ASAP, тобто повідомляє PM'а та автора задачі-блокера про проблему;
1.3.2. Переводить заблоковану задачу в Backlog;

1.4. Якщо не вдається вирішити задачу:
1.4.1. Треба попросити допомоги у партнера;
1.4.2. Звернутисть в загальний чат;
1.4.3. Якщо робота вихлдить за рамки скоупа задачі - треба додати коментарі додати //TODO або @todo, доробити задачу частково; [56:36]
1.4.4. Створити тікети на основі todo [1:06:20]
1.4.5. Якщо є тести які не проходять, треба додати до них @Ignore;

1.5. Завершення роботи над задачею:
1.5.1. Створює пулл-реквест;
1.5.2. Для з'єднання пулл-реквеста з задачею в його опис додає connect to #123 (№ задачі);
1.5.3. Переносить задачу з колонки In Progress в Review;
1.5.4. В канал #reviewme додає лінк review me <link to PR>; Нічого крім запитів в цьому каналі постити не дозволяється!
1.5.5. Після мерджа або закриття рулл-реквеста видаляє із #reviewme запит на рев'ю;
1.5.6. Переходить до пункту 1.1;

1.6. Після того, як задача змерджилась в мастер, проводить демо (канал #demos);
1.7. Приймає участь у колективному code-review;

2. Project Manager - Андрій Байбак, @AndriyBaibak [20:40]

Зона відповідальності - щоб задачі швидше проходили від стврення до завершення;

2.1. Якщо пулл-реквест довго не розглядається, нагадує рев'юверам, що треба провести рев'ю; запити на рев'ю знаходяться в каналі #reviewme;
2.2. Нагадує девелоперу, що його задача блокує іншу;

3. Reviewer - Олександ Анакін, Олександр Власов, Роман Ільницький;

3.1. Проводить рев'ю по запиту з каналу #reviewme:
3.1.1. Для того, щоб задача пройшла рев'ю, необхідно мінімум 2/3 голосів;
3.1.2. Рев'ювер не може голосувати за свою задачу;

3.2. В разі наявності зауважень:
3.2.1. Повертає задачу в Backlog;

3.3. В разі відсутності зауважень:
3.3.1. Робить мердж;
3.3.2. Переносить задачу в колонку Ready;
3.3.3. Назначає Віктора на задачу;

4. Різне

4.1. Scope задачі повинен бути максимум 4 години. [27:20]
4.2. Якщо задача більше, ніж на 4 години, варто розбити її на дрібніші;
4.3. Мердж між гілками, які не пройшли код-рев'ю не дозволяється; [26:25]

Демонстрація роботи над проектом GSR [39:00]

  • ствоорення тесту; [40:00]
Clone this wiki locally