Как организовать ветки чтобы можно было отследить разработку отдельных частей приложения?
Как организовать ветки чтобы можно было отследить разработку отдельных частей приложения?
Чтобы можно было разрабатывать отдельные блоки и выдавать заказчику поэтапно приложение с ограниченным функционалом.
Или ограничение функционала реализуется не через ветки?
Как сделать чтобы можно было отследить работу по отдельному блоку проекта?
Типа ветка в которой можно отследить: Book.cs -> BooksService.cs -> BooksRepository.cs
Или такое не практикуется?
Пример
Ссылки между проектами:
- BookStore.App;
- BookStore.DAL;
- BookStore.Model;
- BookStore.AppManager;
- BookStore.DAL;
- BookStore.Model;
- BookStore.DAL;
- BookStore.Model;
Как я вижу ветки - Схема-1.
Схема-1:
- master
- DevelopBookStoreApp
- DevelopAppManager
- BookStoreModel
- BookStoreDAL
Описание работы с ветками:
- Создаём необходимые сущности в ветке BookStoreModel;
- Вливаем BookStoreModel в BookStoreDAL;
- Создаём необходимый функционал в BookStoreDAL;
- Вливаем BookStoreDAL в DevelopBookStoreApp (или в DevelopAppManager);
Или так?
Схема-2:
- master;
- DevelopBookStoreApp;
- DevelopAppManager;
- BookStoreDALModel;
- Этап-1;
- Этап-2;
- Этап-3;
Update-1
Схема-3 веток:
- master;
- DevelopBookStoreApp;
- DevelopAppManager;
- BookStoreModel;
- BookStoreDALBook;
- BookStoreDALCategory;
- BookStoreDALSeller;
- BookStoreDALDeal;
- BookStoreDALBuyer;
- BookStoreDAL;
Последовательность действий:
- ветка BookStoreModel. Добавить необходимую сущность(Book, Category, Seller, Deal, Buyer);
- перейти в ветку BookStoreDALBook (или BookStoreDALCategory, или Seller, Deal, Buyer);
- влить ветку BookStoreModel в ветку BookStoreDALBook ;
- в ветке BookStoreDALBook создать операции CRUD. Протестировать;
- перейти в ветку BookStoreDAL;
- влить ветку BookStoreDALBook в ветку BookStoreDAL;
- влить ветку BookStoreDAL в ветку DevelopBookStoreApp;
Update-1. Конец
Проект для примера.
Допустим имеется приложение: BookStore.App
Сущности:
- Book - Книга;
- Category - Категория;
- Seller - Продавец;
- Deal - Сделка;
- Buyer - Покупатель;
Этапы разработки:
- Этап-1. Задача Разработать приложение BookStore.App: просмотр списка Книг.
Состав:
- Book - Книга;
- Category - Категория;
Пользователь может:
- выполнять Чтение списка Книг;
- назначать категории на Книгу; - Этап-2. Задача Доработать приложение BookStore.App: добавить условный модуль - Продажи (т.е. не отдельный модуль, а классы в составе основного приложения).
Состав:
- Seller - Продавец;
- Deal - Сделка;
- Buyer - Покупатель;
Пользователь может: - выполнять Чтение списка Книг;
- назначать категории на Книгу;
- выполнять CRUD со Сделками;
- выполнять CRUD с Покупателями; - Этап-3. Задача Разработать приложение BookStore.AppManager: приложение для управленца.
Состав:
- Book - Книга;
- Category - Категория;
- Seller - Продавец;
Пользователь может:
- выполнять CRUD с Книгами;
- выполнять CRUD с Категориями;
- выполнять CRUD с Продавцами;
- Сохранить данные по Продавцам, Категориям, Продавцами в общее хранилище(БД);
Как я вижу решение:
BookStore.App;
- BooksService.cs
- CategoriesService.cs
- SellersService.cs
- DealsService.cs
- BuyersService.cs
BookStore.AppManager;
- BooksService.cs
- CategoriesService.cs
- SellersService.cs
BookStore.DAL;
- BooksRepository.cs
- CategoriesRepository.cs
- SellersRepository.cs
- DealsRepository.cs
- BuyersRepository.cs
BookStore.Model;
- Book.cs
- Category.cs
- Seller.cs
- Deal.cs
- Buyer.cs
Ссылки между проектами:
- BookStore.App;
- BookStore.DAL;
- BookStore.Model;
- BookStore.AppManager;
- BookStore.DAL;
- BookStore.Model;
- BookStore.DAL;
- BookStore.Model;