@oop_ru

Страница 295 из 785
Артур Евгеньевич
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
> я просто хочу понять где у меня ошибка в рассуждениях ты стримишься убрать дублирование там где его нет
но ведь по факту все удаляется одинакого...сейчас у меня 6 сущностей в иерархии...а если бы их 60 было

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

хотя конкретно что я делаю в кажый момент не следят, и я бы мог устроить некоторый саботаж, покрывая тестами новые классы

Sergey
18.07.2017
17:25:27
почему ты так думаешь? очень редко встречал тесты на каких-либо проектах
1. потому что разработчики считают что это дорого 2. это дорого потому что разработчики часто не умеют писать тестируемый код и собственно не умеют выбирать что важно тестить и как тестить

но ведь по факту все удаляется одинакого...сейчас у меня 6 сущностей в иерархии...а если бы их 60 было
разница в том что твой вариант вводит какие-то невнятные абстракции и т.д. а мой вариант проще с точки зрения восприятия - он тупой и им сложнее неправильно воспользоваться. У тебя например зачем-то открывается публичный доступ к детям. Внешнему миру не нужен этот доступ

Артур Евгеньевич
18.07.2017
17:26:42
загугли Integrational tests are a scum.
я возможно не так выразился...короче он пишет клиент на джаве к "моей" апишке типо и мокает там всё

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 юзают

ну и да разделение сделать)

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
ну и объяснить о unit, integration, acceptance
я чет как-то за последние 3 месяца все больше убеждаюсь что integration тесты не нужны от слова совсем. А вот acceptance - думаю все же нужны..

но их могут QA писать

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

Артур Евгеньевич
18.07.2017
17:30:31
разница в том что твой вариант вводит какие-то невнятные абстракции и т.д. а мой вариант проще с точки зрения восприятия - он тупой и им сложнее неправильно воспользоваться. У тебя например зачем-то открывается публичный доступ к детям. Внешнему миру не нужен этот доступ
короче нет у меня чуйки как грамотно выделять абстракции...да и вообще туго с принципами именно с применением...постоянно мучаюсь например как соблюсти SRP и правило не больше 3 зависимостей для одного класса. Так как если дроблю классы сильно, то у других много зависимостей появляетс, а если не дроблю, то сервисы жирненькие выходят...хз как этот скилл качать

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

Артур Евгеньевич
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

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

Admin
ERROR: S client not available

Sergey
18.07.2017
17:39:26
а не кажется ли что это вызовет слишком большую декомпозицию?)
а у тебя много ролей на проекте? на моем опыте самое большое количество ролей "пользователей" которые могут хотеть что-то изменить в поведении системы - 7

ну короч это очень субъективная штука, она хороша как раз таки что бы не пере-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
типо есть отделение банка и там есть рабочие и контроллер банка

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
и да, менеджеров и аналитиков просят другие челы - то есть надо всю цепочку раскручивать
Дядя боб это хорошо объяснял до уровня chief officer, какой C*O будет недоволен

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
Дядя боб это хорошо объяснял до уровня chief officer, какой C*O будет недоволен
да, "кто будет тебя увольнять если ты сломаешь этот модуль, и если возможны больше одной кандидатуры - у тебя проблемы с декомпозицией")

я вот все так и не дочитал книжку

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

Страница 295 из 785