
Артур Евгеньевич
18.07.2017
17:18:12

Sergey
18.07.2017
17:18:19
но это DRY ради DRY

Артур Евгеньевич
18.07.2017
17:18:25
имел ввиду что собираем коллекцию из всех сущностей

Sergey
18.07.2017
17:18:32
без какого либо смысла и только увеличивающего проблемы

Google

Артур Евгеньевич
18.07.2017
17:19:06
так а где мне собирать коллекцию всех зависмых сущностей

Sergey
18.07.2017
17:19:09
если мне не веришь - дело твое, это нормально не верить. Просто задумайся когда у тебя появятся чуть более сложные кейсы, типа а вот эти сущности в коллекции трогать не надо

Артур Евгеньевич
18.07.2017
17:19:16
в методе удаления самом или как?

Sergey
18.07.2017
17:19:18
сча подправлю свой пример

Артур Евгеньевич
18.07.2017
17:19:54

Sergey
18.07.2017
17:20:04
https://gist.github.com/fesor/67ed7ca31d2b51aa7f9e17a11a23e81c
> я просто хочу понять где у меня ошибка в рассуждениях
ты стримишься убрать дублирование там где его нет

Igor'
18.07.2017
17:21:52
почему ты так думаешь? очень редко встречал тесты на каких-либо проектах
мне пока не дали на них добро
а на них надо спрашивать разрешения?
ошибка новичка

Артур Евгеньевич
18.07.2017
17:22:14

Google

Артур Евгеньевич
18.07.2017
17:23:35
почему ты так думаешь? очень редко встречал тесты на каких-либо проектах
у нас есть тестирвощик с итеграционными и прочими тестами, и т.к мое приложение это api то в принципе их хватает. Там есть немного юнит тестов но они дико не актуальные и самое главное что никем не запускюатся никогда. Я тесты ставил как один из первых пунктов плана, но скзаали, что сейчас раз все равно архзитектру перелопачивать будем, лучше их не писать пока
хотя конкретно что я делаю в кажый момент не следят, и я бы мог устроить некоторый саботаж, покрывая тестами новые классы

Sergey
18.07.2017
17:25:27


Артур Евгеньевич
18.07.2017
17:26:42

Sergey
18.07.2017
17:26:58
если это тесты API то это все те же интеграционные тесты
может реально замутить пару видосиков по примеру @KuvshinovEE на тему тестов

Evgeniy
18.07.2017
17:27:45
можно
начать разницы mock vs stub

Sergey
18.07.2017
17:28:16
ну я сейчас со своими пробую проводить внутренние воркшопы (так себе выходит, вот второй буду в пятницу делать)

Evgeniy
18.07.2017
17:28:16
потому что иногда под словом mock многие stub юзают
ну и да разделение сделать)

Sergey
18.07.2017
17:28:26

Evgeniy
18.07.2017
17:28:46
ну и объяснить о unit, integration, acceptance

Igor'
18.07.2017
17:28:50
а почему это именно "ошибка новичка"?)

Evgeniy
18.07.2017
17:28:53
что у них своя ниша и свои задачи)

Sergey
18.07.2017
17:28:56
я думал делать такой план:
1. Юнит тесты, зачем они нужны. Пример - что-то типа калькулятора
2. Тесты с калобараторами
3. Когда не надо писать тесты

Evgeniy
18.07.2017
17:29:41
https://martinfowler.com/articles/mocksArentStubs.html

Google

Sergey
18.07.2017
17:29:45
но их могут QA писать

Evgeniy
18.07.2017
17:29:50

Sergey
18.07.2017
17:30:10
твой вопрос "моки и стабы" покрываются вторым пунктом полностью

Артур Евгеньевич
18.07.2017
17:30:31

Evgeniy
18.07.2017
17:30:32
типо или максимально симулируем среду или в реальность отправляем

Sergey
18.07.2017
17:30:52

Артур Евгеньевич
18.07.2017
17:32:01
одна ответственность на класс/компонент...или у класса одна причина на изменение. Под одной причиной имею ввиду изменение в поведении какой то одной операции, необязательно выраженной одним методом

Evgeniy
18.07.2017
17:34:13
у меня в ближайшее время сделать норм плейлист по ER
чтобы было прямо норм с нуля, ото стрим получился слишком сумбурный
начать с нотаций Чена

Evgeniy
18.07.2017
17:35:31
потом про Crow foot
показать их и сказать что это лишь способ визуализации связей
ну и про типы связей в самомм начале между entity
и далее по тихоньку на практику, уже с примерами в mysql
пергнать бд в -> ER схему
Перегнать ER схему -> В БД
потом отдельное видео о том как все это применять и для чего

Sergey
18.07.2017
17:37:07
ты хочешь поменять код не потому что "надо поменять код" а потому что "кому-то надо что бы код поменялся"
и вот если ты можешь придумать 2-х людей которые захотят изменений в одном модуле - надо дробить

Google

Evgeniy
18.07.2017
17:37:48
ни код а поведение системы, ты имелл ввиду)

Sergey
18.07.2017
17:38:00
и да, менеджеров и аналитиков просят другие челы - то есть надо всю цепочку раскручивать

Evgeniy
18.07.2017
17:38:20

Sergey
18.07.2017
17:38:29
важное замечание - рефакторинг или оптимизации не меняют поведение а значит это не входит в определени штук связанных с SRP

Evgeniy
18.07.2017
17:38:38

Sergey
18.07.2017
17:38:41
в том числе и багфикс - исправление поведения

Admin
ERROR: S client not available

Sergey
18.07.2017
17:39:26
ну короч это очень субъективная штука, она хороша как раз таки что бы не пере-DRYить

Evgeniy
18.07.2017
17:40:07
сталкивался со всякими штукамми
типо менеджер
контроллер менеджера

Sergey
18.07.2017
17:40:28
ну это просто херовые нейминги
и ад с зависимостями

Evgeniy
18.07.2017
17:40:43
в крупной системе было дофига ролей и все умножалось на 2 (контроллеры)

Sergey
18.07.2017
17:40:44
и нарушение open/close

Evgeniy
18.07.2017
17:40:59
типо есть отделение банка и там есть рабочие и контроллер банка

Sergey
18.07.2017
17:41:00

Evgeniy
18.07.2017
17:41:08
есть уровень города

Google

Evgeniy
18.07.2017
17:41:14
таже история
есть уровень региона
далее уровень федерального округа

Sergey
18.07.2017
17:41:40
ну это не роли - это уровни. У тебя есть некое поведение системы которое кому-то нужно
и вот важно кому

Evgeniy
18.07.2017
17:41:44
и на глобальном уровне небольшой адок)
но в целомм цифра 7 да довольно точна)

Sergey
18.07.2017
17:42:04
допустим ты делаешь систему отчетности - на каждом уровне нужна своя детализация отчетности

Aleh
18.07.2017
17:42:35

Evgeniy
18.07.2017
17:42:37
или вот другая система там тоже адища с ролями была
около 27 было
плюс доступы по географии

Aleh
18.07.2017
17:42:49
Но это частный случай работы в больших корпорациях

Evgeniy
18.07.2017
17:43:09
типо роль и группа доступа (филиал, регион, федеральный округ, глобальный)

Sergey
18.07.2017
17:43:10
я вот все так и не дочитал книжку
Responsibility Driven Design

Aleh
18.07.2017
17:43:52
Not been fired driven development

Sergey
18.07.2017
17:44:06
Designing Object Oriented Software