
Evgeniy
04.07.2017
23:31:23

Sergey
04.07.2017
23:31:27
и код ревью?)

Evgeniy
04.07.2017
23:31:39

Google

Sergey
04.07.2017
23:31:54
наивно)
ну на самом деле норм даже, просто сейчас из-за этого подхода приходится иногда по выходным сидеть

Evgeniy
04.07.2017
23:31:54
воспользуйся тем что люди в легаси проекте очень многое хотят переписать

f4rt~
04.07.2017
23:31:58

Evgeniy
04.07.2017
23:32:08
предложи им чтобы все что они переписывают сначала покрывали тестами
во первых, проверять новый функционал проще что ничего не отвалилось

Sergey
04.07.2017
23:32:23
....они так и делают
чел, у меня не джуны

Evgeniy
04.07.2017
23:32:42
во вторых новый функционал будет с тестами)

Sergey
04.07.2017
23:32:43
если у тебя небыло тестов и надо чето порефакторить ты пишешь приемочные тесты
а мне надо юниты и tdd
потому что за счет этого я хочу сократить трудозатраты на других этапах пайплайна

Evgeniy
04.07.2017
23:33:24
я полюбил тесты когда начал писать в тдд свою либу
и с тех пор везде их форсю

Google

Evgeniy
04.07.2017
23:33:36
было это году в 2013
или 2012

Sergey
04.07.2017
23:33:55
и ты пишешь юнит тесты или таки приемочные?
property based testing юзал
?

Evgeniy
04.07.2017
23:34:19
я стараюсь создавать классы в tdd
прежде всего представить как это будет использоватся пользователем(другим программистом)
и сделать максимально удобно ему

Sergey
04.07.2017
23:34:51
тут маленький нюанс - либки просто

Evgeniy
04.07.2017
23:34:59
когда это получается написать тест просто
а потом уже реализация

Sergey
04.07.2017
23:35:05
скажи - ты на своих проектах именно tdd практикуешь или atdd?
не домашних проектах а тех за которые бабло получаешь

Evgeniy
04.07.2017
23:35:32
не совсем знаю в чем разница в atdd?

Sergey
04.07.2017
23:35:41
acceptance test driven...

Evgeniy
04.07.2017
23:36:00

Sergey
04.07.2017
23:36:20

Evgeniy
04.07.2017
23:36:24
сейчас у нас продукт с определенным техническим долгом и нам хотябы acceptance

Sergey
04.07.2017
23:36:35
а новый функционал?

Evgeniy
04.07.2017
23:36:39

Google

f4rt~
04.07.2017
23:36:40

Evgeniy
04.07.2017
23:36:51
на текущей работе

Sergey
04.07.2017
23:37:12
разве нет?
ну оно конечно так, просто мне не очень нравится работать над проектов который я точно знаю что через 2 месяца умрет. Обычно все же у бизнеса чуть другие планы.

Evgeniy
04.07.2017
23:37:25
в первую очередь я смотрю на команду

Sergey
04.07.2017
23:37:28

Evgeniy
04.07.2017
23:37:42
уровень

Sergey
04.07.2017
23:37:50
джуны?

Evgeniy
04.07.2017
23:37:52
иногда есть более важные проблемы в проекте
чем отсутствие юнит теста

Sergey
04.07.2017
23:38:02
ясно...

Evgeniy
04.07.2017
23:38:21
опять же скажу кэпство
если в проекте лапша

Sergey
04.07.2017
23:38:28
я уперся в то что что бы пофиксить "другие проблемы в проекте" так или иначе нужно повышать покрытие кода тестами.

Evgeniy
04.07.2017
23:38:30
с кучей магии

Sergey
04.07.2017
23:38:48
а там тебе и нормальный CI, и нормальное CD

Evgeniy
04.07.2017
23:38:54
юнит тесты далеко не все проблемы ловят

Sergey
04.07.2017
23:38:56
и ускорение пайплайна разработки

Evgeniy
04.07.2017
23:39:04
далее с увеличением количества тестов

Google

Evgeniy
04.07.2017
23:39:10
скорость сборки замедлится

Sergey
04.07.2017
23:39:12

Evgeniy
04.07.2017
23:39:25
доводилось работать над проектом где компиляция в java была более 8 часов

Sergey
04.07.2017
23:39:26

Evgeniy
04.07.2017
23:39:35
и требовала 16гб рам

Sergey
04.07.2017
23:39:37
у меня на моем проекте юнит тесты сейчас ранаются в один поток 1 минуту

Evgeniy
04.07.2017
23:39:45
тесты исполнялись еще дольше

Sergey
04.07.2017
23:40:08

Evgeniy
04.07.2017
23:40:15
8 часов компиляция

Sergey
04.07.2017
23:40:18

Evgeniy
04.07.2017
23:40:20
исходных кодов в java
без каких либо тестов
создание jar файлов

Sergey
04.07.2017
23:40:45

Evgeniy
04.07.2017
23:40:48
и потом поверх этого надо было стартовать юнит тесты

Sergey
04.07.2017
23:41:00
ну то есть для того что бы заранать юнит тесты тебе не надо собирать jar

Evgeniy
04.07.2017
23:41:10
ну чтобы что то тестить надо скомпилировать

Sergey
04.07.2017
23:41:11
8 часов

Google

Evgeniy
04.07.2017
23:41:24

Sergey
04.07.2017
23:41:26
ты можешь в несколько потоков компилить только то что надо для юнит тестов

Evgeniy
04.07.2017
23:41:30
и запуск тестов на уровне модулей

Sergey
04.07.2017
23:41:33
....
мне кажется что ты что-то выдумываешь

Evgeniy
04.07.2017
23:42:00
ну да

Sergey
04.07.2017
23:42:07
для того что бы заранать сюиту юнит тестов, настоящих, не надо собирать весь проект.

Evgeniy
04.07.2017
23:42:17
согласен
надо собирать модули

Sergey
04.07.2017
23:42:34
скомпилил классик нужный, скомпилил тестил - заранал. А теперь берем сервер на 16 ядер и паралелим

Evgeniy
04.07.2017
23:42:34
это если он у тебя разбит на разные jar файлы

Sergey
04.07.2017
23:42:47
у тебя каждый юнит тест будет jar-ой и он будет включать в себя только те зависимости которе ему нужны
очень много очень маленьких модулей
которые быстро собираются и быстро компилятся
хз что там компилятор 8 часов ражал
только если jni какое юзалось и что-то на Си собиралось
тогда поверю
но опять же - это не должно влиять на юнит тесты

Evgeniy
04.07.2017
23:44:07
ладно не верь

Sergey
04.07.2017
23:48:48
я не верю больше в тот факт что никто не подумал что "батюшки святы, надо оптимизировать процесс сборки ибо 8+ часов для получения командой фидбэка о проделанной работы это высшей степени не эффективно"
любой адекватный менеджер сразу заставил бы команду исправлять это