@oop_ru

Страница 278 из 785
Evgeniy
04.07.2017
23:05:08
декомпозиция это от общего к частному

при плохой декомпозиции (слишком детальной где не надо)

получается херовый класс

Sergey
04.07.2017
23:05:51
прям один класс получается

Google
Sergey
04.07.2017
23:05:59
хз, я тебя не понимаю

Evgeniy
04.07.2017
23:06:05
что ты получаешь пользователем либы

Sergey
04.07.2017
23:06:24
Evgeniy
04.07.2017
23:06:25
ты получаешь правильный взгляд на зависимости

Sergey
04.07.2017
23:06:41
ты получаешь правильный взгляд на зависимости
какие к чету зависимости с точки зрения пользователей либы?

Evgeniy
04.07.2017
23:06:41
за счет зависимостей ты нормально декомпозируешь

Sergey
04.07.2017
23:07:01
попробуй еще раз... всеравно не понятно причем тут зависимости. Это зависимости тестируемого кода?

клиенту твоего клсса плевать на зависимости твоего кода

Evgeniy
04.07.2017
23:07:46
ну давай пример)

Sergei
04.07.2017
23:07:49
ты получаешь правильный взгляд на зависимости
А если либа полный шлак с точки зрения ооп, ну вроде одни утилитные классы к примеру или еще какая то шняга, как мокировать утилитные классы?

Google
Sergei
04.07.2017
23:08:28
Sergey
04.07.2017
23:08:30
но вообще я бы сказал что "такой код нельзя покрыть юнит тестами"

с моками все не так просто на самом деле

с ними легко попасть в ловушку в духе "твой тест ничего не тестит"

Sergei
04.07.2017
23:10:33
Можно сделать хитро, сделать адаптер. Потом в имплементации этого адаптера каждый метод будет дёргать только один метод утилитного класса, вот и отвязались от статических методов. А адаптер мокируем.

Evgeniy
04.07.2017
23:19:15
вот о чем я говорил https://pastebin.com/Yy8GxwYT по поводу зависимостей

какой код проще покрыть юнит тестами

Sergey
04.07.2017
23:20:09
то есть ты хочешь сказать что "юнит тесты форсят людей юзать IoC и late binding"?

пффф

Evgeniy
04.07.2017
23:20:23
нет

Sergey
04.07.2017
23:20:31
тогда ничего не понял

Evgeniy
04.07.2017
23:20:37
я хочу сказать чтобы покрывать код тестами

он должен быть пригоден

Sergey
04.07.2017
23:20:47
ваш кэп

Evgeniy
04.07.2017
23:20:52
в остальных случаях покрытие тестами станет болью

Sergey
04.07.2017
23:21:00
.....и к чему ты это все говоришь вообще?

Evgeniy
04.07.2017
23:21:30
к тому что зависимости это то что передается в контроллер

если в твоем классе разные зависимости которые сложно контролировать

Sergey
04.07.2017
23:21:50
1. я хочу что бы мои ребята писали юнит тесты 2. в идеале до имплементации 3. как раз таки что бы больше углубляться в декомпозицию и следить за open/close и lsp

Evgeniy
04.07.2017
23:21:57
то и покрывать это больно

Google
Sergey
04.07.2017
23:22:05
к тому что зависимости это то что передается в контроллер
контроллеры у тебя откуда вообще взялись?

и причем тут юнит тесты?

речь просто о каше

Sergey
04.07.2017
23:22:26
тут и без тестов боль будет

короч...

Evgeniy
04.07.2017
23:22:48
а тесты это серебрянная пуля

Sergey
04.07.2017
23:22:49
ты походу подустал малеха

Evgeniy
04.07.2017
23:22:53
которая решает все проблемы

Sergey
04.07.2017
23:23:00
серебрянных пуль нет

Evgeniy
04.07.2017
23:23:00
я показал 3 примера одного и того же

но одно покрыть тестами просто

Evgeniy
04.07.2017
23:23:08
другое нет

Sergey
04.07.2017
23:23:18
.....и к чему ты мне это показываешь, вот в чем вопрос?

у тебя уже если смотреть по связанности проблемы есть

а тесты - это клиент к тестируемому коду, и они будут страдать теми же болячками что и твой код

Evgeniy
04.07.2017
23:24:15
к тому что если люди не понимают что такое зависимости то будет все очень больно

Sergey
04.07.2017
23:24:28
допустим люди понимают что такое зависимости)))

тебя такой ответ устроит?

Evgeniy
04.07.2017
23:24:46
тогда и тесты будет писать не сложно

Google
Sergey
04.07.2017
23:24:47
более того, большинство даже понимают что такое контракты

Evgeniy
04.07.2017
23:24:54
и проблем с тестами быть не должно

Sergey
04.07.2017
23:24:55
тогда и тесты будет писать не сложно
но почему-то их всеравно не пишут

и всеравно есть проблемы

и все вроде бы соблюдают IoC, пытаются думать в терминах SOLID, но тесты не пишут

Evgeniy
04.07.2017
23:25:41
ну тогда деспотия

вводи code coverage и запрещай его уменьшение, подход странный

Sergey
04.07.2017
23:26:14
code coverage ничего не говорит о том насколько у тебя все хорошо с тестами

Evgeniy
04.07.2017
23:26:16
но сделает так чтобы люди начали писать тесты

Sergey
04.07.2017
23:26:17
вот от слова совсем

Admin
ERROR: S client not available

Evgeniy
04.07.2017
23:26:24
поэтому и написал странный

Sergey
04.07.2017
23:26:36
....короч

Evgeniy
04.07.2017
23:26:47
зато он заставит людей писать тесты

и возможно кому то понравится

Sergey
04.07.2017
23:27:00
"заставить" не выйдет

это ооооочень хреновая стратегия

Evgeniy
04.07.2017
23:27:15
ну то есть ты сейчас спрашиваешь

Sergey
04.07.2017
23:27:16
надо объяснить

Google
Sergey
04.07.2017
23:27:28
ну то есть ты сейчас спрашиваешь
я не спрашиваю как мне кого-то заставить тесты писать

Evgeniy
04.07.2017
23:27:36
как мне заставить людей писать тесты, потому что я считаю что это надо, но только чтобы это не выглядело как заставить ?

Sergey
04.07.2017
23:27:36
я для этого воркшопы и усиленное код ревью делать буду

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

f4rt~
04.07.2017
23:28:12
я для этого воркшопы и усиленное код ревью делать буду
почему бы не брать на работу тех, кто не понимает смысла в написании тестов?

Sergey
04.07.2017
23:28:30
почему бы не брать на работу тех, кто не понимает смысла в написании тестов?
потому что тогда разработчиков годами буду искать

f4rt~
04.07.2017
23:28:36
да лаадно

Sergey
04.07.2017
23:28:41
проще потратить месяц и обучить чем 3 месяца искать разработчика

f4rt~
04.07.2017
23:28:45
я не верю что все так плохо

Sergey
04.07.2017
23:29:05
все ТАК плохо

f4rt~
04.07.2017
23:29:08
нет, ты немного не понял, если люди упрямо отказываются писать тесты их не заставишь

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

Evgeniy
04.07.2017
23:29:44
более того, весь код что написан в проекте

Sergey
04.07.2017
23:29:51
нет, ты немного не понял, если люди упрямо отказываются писать тесты их не заставишь
они не против. Но как это происходит: 1. надо писать тесты 2. <пишем тесты, на это уходит много времени потому что мало практики> 3. расстраиваемся что все медленно и потиху забиваем на тесты

Evgeniy
04.07.2017
23:29:53
он был с твоим участием

и как следствие ты сам раньше не думал что надо писать тесты

Sergey
04.07.2017
23:30:25
более того, весь код что написан в проекте
у нас типа... больше одного проекта) аутсорс и все такое

Evgeniy
04.07.2017
23:30:28
а потом решил что надо и теперь хочешь чтобы люди тоже начали так считать, но думаешь как бы так сделать

Sergey
04.07.2017
23:30:30
несколько команд

Evgeniy
04.07.2017
23:30:34
чтобы они сами к этому пришли

f4rt~
04.07.2017
23:30:38
они не против. Но как это происходит: 1. надо писать тесты 2. <пишем тесты, на это уходит много времени потому что мало практики> 3. расстраиваемся что все медленно и потиху забиваем на тесты
у тебя проблемы ну пункте 3, нельзя незнакомые вещи без практики сразу освоить и понять, если есть какие-то вялотекущие проекты где сроки не горят, можно на них руку набить

Sergey
04.07.2017
23:30:59
и как следствие ты сам раньше не думал что надо писать тесты
год назад у меня была мысль "нам надо быстро и у меня нет времени их учить тесты писать, потому я критичное сам буду покрывать а остальное за счет код ревью и декомпозиции норм будет"

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