Size: a a a

Android Architecture

2020 October 07

AV

Alex Vayts in Android Architecture
Konstantin Dovnar
И если детали описаны в ТЗ — то они становятся частью бизнес-логики.
Те кто пишут ТЗ мало имеют отношения к архитектуре. Там можно описать что угодно. Бизнес правила надо уметь выделять
источник

KD

Konstantin Dovnar in Android Architecture
Alex Vayts
Боюсь у нас разный взгляд на эти вещи. Мое мнение, что не вся логика - бизнес-логика. Может быть логика в слое данных, связанная с детали транспортного слоя системы. Может быть логика отображения в презентере и она не бизнес тоже.

Вопрос как определить где какая - довольно творческий
Может быть.

Однако я тоже вижу разницу между логикой представления, бизнес-логикой и деталями реализации.

Когда тебе говорят реализовать что-то "конкретно так", то это уже не детали реализации.
источник

KD

Konstantin Dovnar in Android Architecture
Alex Vayts
Те кто пишут ТЗ мало имеют отношения к архитектуре. Там можно описать что угодно. Бизнес правила надо уметь выделять
Под ТЗ я подразумеваю не конкретно ТЗ заказчика.
Это может быть тем, что вы решили на уровне вашей команды для реализации.
источник

AV

Alex Vayts in Android Architecture
Konstantin Dovnar
Может быть.

Однако я тоже вижу разницу между логикой представления, бизнес-логикой и деталями реализации.

Когда тебе говорят реализовать что-то "конкретно так", то это уже не детали реализации.
Я руководствуюсь таким признаком. Что если поменяется правило хэширования, шифрования? Если я для тестов захочу убрать шифрование - повлияет ли это на поведение приложения?

Выглядит как замена базы данных, auth manager’а или любой другой способ получения авторизации. Значит это транспорт и слой данных, а не бизнес
источник

KD

Konstantin Dovnar in Android Architecture
В примере с авторизацией — при проектировании авторизации вы в совокупности команд (фронт, бэк, безопасники, и т.д.) можете прийти к тому, что вместо отправки логина и пароля будете отправлять sha(username + password) — и это уже становится не деталями реализации, а именно бизнес-логикой.
источник

KD

Konstantin Dovnar in Android Architecture
Alex Vayts
Я руководствуюсь таким признаком. Что если поменяется правило хэширования, шифрования? Если я для тестов захочу убрать шифрование - повлияет ли это на поведение приложения?

Выглядит как замена базы данных, auth manager’а или любой другой способ получения авторизации. Значит это транспорт и слой данных, а не бизнес
И на сервере сам поменяешь всё? И на других системах?
источник

AV

Alex Vayts in Android Architecture
Konstantin Dovnar
И на сервере сам поменяешь всё? И на других системах?
Нет, я в своем приложении буду тестировать бизнес слой и передам ему репозиторий без шифрования.
источник

KD

Konstantin Dovnar in Android Architecture
Alex Vayts
Нет, я в своем приложении буду тестировать бизнес слой и передам ему репозиторий без шифрования.
А к чему этот репозиторий без хэширования, если у тебя сервер ждёт именно такие данные?
источник

AV

Alex Vayts in Android Architecture
Konstantin Dovnar
А к чему этот репозиторий без хэширования, если у тебя сервер ждёт именно такие данные?
К тому, что изменения на бэкэнде не повлияют на бизнес логику мобильного приложения. Не придется переписывать ни тесты бизнес-слоя, ни его код. Только изменить репозиторий для работы с ним.

Пользователь не увидит этих изменений тоже.
источник

KD

Konstantin Dovnar in Android Architecture
У тебя есть endpoint у сервера для авторизации. Он ждёт от тебя одну единственную строку в теле запроса, которая представляет из себя sha(username + password).

Сервер именно так авторизует.
Ему не нужны голые логин и пароль ни в каком виде.

Причём тут детали реализации, если теперь на этом всё завязано и это явная бизнес-логика?
источник

AV

Alex Vayts in Android Architecture
Konstantin Dovnar
У тебя есть endpoint у сервера для авторизации. Он ждёт от тебя одну единственную строку в теле запроса, которая представляет из себя sha(username + password).

Сервер именно так авторизует.
Ему не нужны голые логин и пароль ни в каком виде.

Причём тут детали реализации, если теперь на этом всё завязано и это явная бизнес-логика?
С точки зрения бизнес-слоя сервер ждет логин и пароль:) все остальное - деталь. Эндпоинт, шифрование, GET/POST
источник

KD

Konstantin Dovnar in Android Architecture
Alex Vayts
С точки зрения бизнес-слоя сервер ждет логин и пароль:) все остальное - деталь. Эндпоинт, шифрование, GET/POST
Вот именно, что нет. В данном кейсе сервер ждёт именно хэшированную строку. Это полноценное бизнес-правило из которого вытекает конкретный юзкейс.
источник

AV

Alex Vayts in Android Architecture
Konstantin Dovnar
Вот именно, что нет. В данном кейсе сервер ждёт именно хэшированную строку. Это полноценное бизнес-правило из которого вытекает конкретный юзкейс.
У нас разный взгляд на эти вещи) я не вижу причин почему это бизнес-правило.
источник

KD

Konstantin Dovnar in Android Architecture
Alex Vayts
У нас разный взгляд на эти вещи) я не вижу причин почему это бизнес-правило.
Ничего страшного. Главное, чтобы твоё неведение не мешало коллегам:)
источник

AV

Alex Vayts in Android Architecture
Konstantin Dovnar
Ничего страшного. Главное, чтобы твоё неведение не мешало коллегам:)
Это уже переход на личности. Вот скажи, если сервер ждет XML - это тоже бизнес-правило?
источник

KD

Konstantin Dovnar in Android Architecture
Alex Vayts
Это уже переход на личности. Вот скажи, если сервер ждет XML - это тоже бизнес-правило?
Что? На какие личности, ты что придумываешь то:)

>если сервер ждет XML - это тоже бизнес-правило?
Нет.
источник

AV

Alex Vayts in Android Architecture
Konstantin Dovnar
Что? На какие личности, ты что придумываешь то:)

>если сервер ждет XML - это тоже бизнес-правило?
Нет.
Почему sha(login+password) - это бизнес-правило, а xml/json нет? В чем отличие?
источник

с#

саша сок #KotlinGang... in Android Architecture
Alex Vayts
Это уже переход на личности. Вот скажи, если сервер ждет XML - это тоже бизнес-правило?
про личности зря, автор ничего плохого не говорил.
источник

AV

Alex Vayts in Android Architecture
саша сок #KotlinGang
про личности зря, автор ничего плохого не говорил.
«Чтобы ваше неведение не мешало коллегам», слишком сильное утверждение
источник

с#

саша сок #KotlinGang... in Android Architecture
Alex Vayts
«Чтобы ваше неведение не мешало коллегам», слишком сильное утверждение
> я не вижу причин
https://t.me/Android_Architecture/103589

> Ничего страшного. Главное, чтобы твоё неведение не мешало коллегам https://t.me/Android_Architecture/103590

Вы уверены ?
источник