Upgrade to Pro — share decks privately, control downloads, hide ads and more …

По чесноку о бизнесе или зачем нам нужен domain layer

По чесноку о бизнесе или зачем нам нужен domain layer

С того момента, как улучшение проекта стало неотъемлемой частью моей работы, я осознал необходимость освоения Clean Architecture. Думая о back-end, regular Android разработчик не задумывается об оптимизации проекта. Будущий team lead и ведущий разработчик всегда понимает «есть ли бизнес логика» или знает ответ на вопрос «зачем нужен Use Case?». Вопросов о Clean Architecture было достаточно и у меня, теперь, разобравшись и требуя чистой архитектуры от своей команды, я готов поделиться и разъяснить что есть domain layer и каков он на вкус.

Zhanibek Marshal

November 30, 2019
Tweet

More Decks by Zhanibek Marshal

Other Decks in Programming

Transcript

  1. 1

  2. 4 Жанибек Маршал Публикую часто в @megasuperhero Отвечаю на вопросы

    в @janibek_marshal Выкладываю код в @JohnMars Личный сайт janibekmarshal.com
  3. 6

  4. 1. Что такое бизнес логика или UseCase 2. Примеры бизнес

    логики в приложении 3. Какие вопросы задавать у бизнеса 4. Подробнее о бизнес логике 5. Подробнее о UseCase 6. Преимущество бизнес логики/UseCase 8
  5. Примечание • Данный доклад не раскрывает полностью Clean Architecture •

    Реализации предоставленные на докладе не говорит о том, что это обязательное применение и не ответ на все проблемы разработки • Но если послушаете, возможно будете лучше понимать о более качественном коде 9
  6. Вам поручили разработать авторизацию.
 Ваше первое действие: 1. Сначала начну

    писать код 2. Сначала пойду к дизайнерам обсудить дизайн 3. Сначала узнаю требование от постановщиков задач 13
  7. Вопросы которые могут возникнут • Какой логин можно ввести для

    авторизации? • Когда будет готов дизайн? • Есть API или документация? • Что делать если пользователя не существуют? 15
  8. Вопросы которые могут возникнут • Какой логин можно ввести для

    авторизации? - На мобильном приложении используем телефон • Когда будет готов дизайн? - Надо уточнить у дизайнеров • Есть API или документация? - Надо уточнить у Back-End разработчиков • Что делать если пользователя не существуют? - Подумаем! 16
  9. 404 - User Not Found • Попросить сходить в отделение

    для открытия аккаунта • Заказать обратный звонок 18
  10. Требование по демоверсии • Если при вводе логин не смогли

    найти пользователя • Заполняем тестовыми данными: - Счета - Выписки - Профиль • Дать возможность показать доступные функционалы 20
  11. Ответы бизнеса • Какой логин можно ввести для авторизации? •

    На мобильном приложении используем телефон • Когда будет готов дизайн? • Надо уточнить у дизайнеров • Есть API или документация? • Надо уточнить у Back-End разработчиков • Что делать если пользователя не существуют? • Подумаем! 24 Бизнес Бизнес Дизайнеры Back-End
  12. Где должна быть бизнес логика в проекте? 25 ! "

    Спросите любого разработчика, где должна быть бизнес логика, и получите ответ: «Конечно же в бизнес слое». У вас не должно быть не малейших сомнений на счет того где должна быть бизнес логика – в бизнес слое.
  13. • Если логин и пароль валидный, то авторизованы • Если

    пароль не валидный, то запоминать сколько раз ошибся • Если 3 раза ввели пароль не правильно, можно восстанавливать пароль • Если логина не существует, включаем демоверсию 28 Авторизировать можно по валидному логину и пароль Бизнес логика UseCase
  14. 35

  15. Достоинства бизнес логики/UseCase • Слабосвязанный класс (используем только Kotlin coroutine)

    - Легко экспортируется в iOS/Server - Легко тестировать исполнение бизнес логики • Код исполняется по требованию - Повышается читабельность кода - Можно без проблем дискутировать код с iOS или Back- End разработчиком 37 * Или даже с командой бизнеса
  16. 38

  17. Выводы • Бизнес логика - это логика которая знает только

    команда бизнеса • UseCase - это один из сценариев исполняемой бизнес логики • Как написать хороший UseCase код - писать только то, что обсуждали с бизнес командой • В чем преимущество - Слабосвязанный код и очень читабельный 39