Skip to content

Commit 9a25604

Browse files
committed
Исправлены опечатки в Practice_article.md
1 parent 0892f5d commit 9a25604

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

practice/Practice_article.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ https://martinfowler.com/bliki/CQRS.html<br>
125125
-------OperationsRubNetworkModel<br>
126126
-------OperationCurrNetworkModel<br>
127127

128-
Разбивать только по слоям или фичам невсегда бывает удобно, поэтому гибридный вариант, когда внутри одного пакета слоя могут быть пакеты с фичами, вполне приемлим.<br>
128+
Разбивать только по слоям или фичам не всегда бывает удобно, поэтому гибридный вариант, когда внутри одного пакета слоя могут быть пакеты с фичами, вполне приемлим.<br>
129129

130130
Иногда проект разбивают на модули, чаще всего делаю отдельный модуль для каждого слоя приложения. <br>
131131

@@ -178,8 +178,8 @@ Dagger 2 имеет следующие преимущества перед "ру
178178
modeRepository.getMode()
179179
.flatMap(mode -> operationsRepository.getOperations(mode))
180180

181-
Исходя из вышесказанного Репозиторий должен тестироваться.<br>
182-
Если вам нужно сделать приложение быстро, можно, конечно, не заморачиваться с маппингом, а передавать модель, полученную с запроса. Но если приложение чуть более серьезное и долгое, то лучше маппить. Так как по опыту, по Дате-уровне или по логике получения данных всегда что-то может поменяться. Бизнес-логика про это вообще не должна знать.<br>
181+
Исходя из вышесказанного, Репозиторий должен тестироваться.<br>
182+
Если вам нужно сделать приложение быстро, можно, конечно, не заморачиваться с маппингом, а передавать модель, полученную с запроса. Но если приложение чуть более серьезное и долгое, то лучше маппить. Так как по опыту, в Дата-уровне или в логике получения данных всегда что-то может поменяться. Бизнес-логика про это вообще не должна знать.<br>
183183

184184
#repository #designpatterns<br>
185185

@@ -233,7 +233,7 @@ geoApiProvider - это специальный класс, которому мы
233233

234234
**Проблема**<br>
235235

236-
Хранение данных в рантайме. Если нужно хранить какие-то состояния, но ложить их в БД или SP нет необходимости. А где мне следует хранить данные, которые должны жить только в рантайме? Т.е. допустим, у меня приложение не кэширует что-то в бд. Получает данные и хранит пока приложение живо. У меня есть репозиторий, в нем по сути ретрофит, который берет данные из сети. Репозиторий сделал на случай если бд в дальнейшем понадобится, то будет удобно делать выборку из бд или сети в репозитории. А данные которые, хранятся в рантайме я тоже в репозитории хранить должен или какой-то манагер данных должен быть, в которого складываются данные из сети?<br>
236+
Хранение данных в рантайме. Если нужно хранить какие-то состояния, но класть их в БД или SP нет необходимости. А где мне следует хранить данные, которые должны жить только в рантайме? Т.е. допустим, у меня приложение не кэширует что-то в бд. Получает данные и хранит пока приложение живо. У меня есть репозиторий, в нем по сути ретрофит, который берет данные из сети. Репозиторий сделал на случай если бд в дальнейшем понадобится, то будет удобно делать выборку из бд или сети в репозитории. А данные которые, хранятся в рантайме я тоже в репозитории хранить должен или какой-то манагер данных должен быть, в которого складываются данные из сети?<br>
237237

238238
**Решение**<br>
239239

@@ -251,7 +251,7 @@ Persistence данные должны быть всегда сокрыты по
251251
**Решение**<br>
252252

253253
Можно реализовать интерактор по паттерну Фасад. Данный интерактор будет уже дергать соответствующие вспомогательные классы. И интерфейс бизнес-логики у нас будет единым, что очень удобно при дальнейшем сопровождении. <br>
254-
По опыту одного из админов. В своё была задачи встроить чат в одно банковское приложение. И там было очень много логики. Но так как это одна бизнес-фича, то был сделалан один Интерактор по Фасаду. В имплементации он по сути просто дергал вспомогательные классы. Написаны были ещё некоторые функциональные тесты. И вот спустя 9 месяцев руководство для реализации чата решило использовать не стороннюю либу, а свою. А это другой интерфейс и вообще другая логика отправки сообщений и прослушки входящих. Просто подменой data уровня не спастись было поэтому. Но ui тот же остаётся. <br>
254+
По опыту одного из админов. Была задача встроить чат в одно банковское приложение. И там было очень много логики. Но так как это одна бизнес-фича, то был сделалан один Интерактор по Фасаду. В имплементации он по сути просто дергал вспомогательные классы. Написаны были ещё некоторые функциональные тесты. И вот спустя 9 месяцев руководство для реализации чата решило использовать не стороннюю либу, а свою. А это другой интерфейс и вообще другая логика отправки сообщений и прослушки входящих. Поэтому просто подменой data уровня было не спастись. Но ui тот же остаётся. <br>
255255
И вот тогда действительно сыграло на руку такое решение с интерактором. Была просто произведена подмена Интерактора без затрагивания View и Presenters, где было тоже немало всего. И оно заработало с первого раза =)<br>
256256

257257
#facade #interactor #designpatterns<br>

0 commit comments

Comments
 (0)