
Иван
17.06.2017
10:31:48

Алимжан
17.06.2017
10:33:43
Бизнес говорит что name обязательно, и ты потом спокоен об этом

Юрий
17.06.2017
10:36:09

Google

Юрий
17.06.2017
10:36:16
И вот уже name не обязательно
И послезавтра вообще война и бизнеса нет

Алимжан
17.06.2017
10:38:55

Юрий
17.06.2017
10:42:11
Стандартный функционал фреймворка покрыт тестами в должной мере. Если у вас команда разработки делает черный ящик для самих себя - это повод задуматься о компетенции CTO и этой команды разработки. Это к вопросу о том что кто-то может удалить правило валидации не обсудив для чего оно вводилось.

Алимжан
17.06.2017
10:44:00

Юрий
17.06.2017
10:44:06
А то ведь можно и проверки на авторизацию удалить и много чего еще, что обычными юнит тестами не покрыть из-за завязки на сторонние системы и что могут выявить только тестировщики в третий день луны

Алимжан
17.06.2017
10:44:48

Юрий
17.06.2017
10:44:51

Алимжан
17.06.2017
10:45:30

Юрий
17.06.2017
10:45:35
Вы делаете из функционального теста приемочный и думаете что это нормально. Не знаю что тут еще добавить.

Алимжан
17.06.2017
10:48:02

Google

Юрий
17.06.2017
10:48:56
Перед созданием теста стоило бы ответить на вопрос - в каком случае name может не валидироваться.
Ответа тут ровно два:
1) кривые валидаторы yii
2) некомпетентная команда разработки снесшая валидатор просто так
Первое вы "перетестируете", а второе решается на другом уровне и не программистами вовсе
Потому что сегодня они снесли валидатор не подумав, а завтра базу на проде
Так же не подумав

Алимжан
17.06.2017
10:50:59
Некомпетентная команда может снести что угодно, не имеет значения валидатор это или бизнес логика

Юрий
17.06.2017
10:51:19
И вы защищаетесь от этого?

Алимжан
17.06.2017
10:51:34

Юрий
17.06.2017
10:51:55
А разве от некомпетентной команды что-то защитит весь бизнес в целом?
А некомпетентная команда не может сломать тест?
Напоминает анекдот про солонки. Читали?
https://xakep.ru/2006/12/16/35784/

Алимжан
17.06.2017
10:53:27

Юрий
17.06.2017
10:54:02
Интересно. То есть тесты у вас проходят код ревью, а валидаторы нет?
При этом обосновать удаление валидатора сложнее чем удаление проверки на него в тесте.
И вроде бы это решается (якобы) запретом на правки в тестах, вот только там такой же код который по требованиям бизнеса тоже придется править или городить версионность тестов
Это очень интересная тема для холиваров на самом деле

Алимжан
17.06.2017
10:56:20

Юрий
17.06.2017
10:56:27
Но все сводится к людям исключительно - тем кто пишет код не думая, удаляет код не думая, проводит код ревью не думая, тестирует не думая

Алимжан
17.06.2017
10:57:08

Google

Юрий
17.06.2017
10:57:13
А у вас почему то тест святая истина в последней инстанции
Хотя иногда приходилось наблюдать за кривыми тестами и теми последствиями к которым они привели

Алимжан
17.06.2017
10:58:19

Юрий
17.06.2017
10:58:37
Уууу...

Алимжан
17.06.2017
10:59:07
Т.е. не вдаваться в суть кода

Юрий
17.06.2017
10:59:13
Надо бы серьезно обсудить будет вопрос "TDD головного мозга и к чему он в итоге приведет"
Потому что вы сначала будете не вдаваться в код, а потом в код тестов
Или найдете косяк в тесте и поймете, что все покрытое им - говно
И заляпано будет все вообще

Алимжан
17.06.2017
11:01:50

Юрий
17.06.2017
11:01:59
Я бы рекомендовал обратить внимание на понятие (не знаю как аббревиатурой) на принцип кодирования, когда результат подгоняют к тестам
Солонки как раз про это

Алимжан
17.06.2017
11:02:26

Юрий
17.06.2017
11:02:30
И надо как-то с этим уметь жить
Это же TDD
Ага. Я знаю что тест проверяет наличие null, например. Ставлю в коде if null = 0, тест не замечает
Ошибка в коде есть
И без должного контроля не только на уровне тестов у вас такое будет сплошь и рядом
Потому что не все программисты программисты особенно если бизнесу надо было сделать еще вчера
При сколь угодно красивом и правильном тесте я могу вам сделать абсолютный говнокод не работающий, но проходящий тест

Алимжан
17.06.2017
11:06:05

Google

Юрий
17.06.2017
11:06:06
Поэтому TDD круто, но и от контроля на всем уровне никуда. Это лишь парадигма при которой меньшее число разрабов напишут с ошибкой. Но не все

Алимжан
17.06.2017
11:06:36
А что-то не учесть можно и без тестов

Юрий
17.06.2017
11:06:37
Но такое редкость, пускай команда и пропагандирует кучу модных слов

Алимжан
17.06.2017
11:07:03
Щас можно становится это

Юрий
17.06.2017
11:07:27
Если такое выстроено - ок.
Но тут вчера кидали репозиторий с eav

Алимжан
17.06.2017
11:07:57

Admin
ERROR: S client not available

Юрий
17.06.2017
11:07:58
И не смотря на то что все так модно - куча претензий у @ExileeD нашлась
На что были ответы типа "это просто не удалили/не успели/переделаем"

Алимжан
17.06.2017
11:08:53

Юрий
17.06.2017
11:08:58
Хочется жить в идеальном мире, но в реальности...
Это то что не объяснить с точки зрения прибыли
Ладно если получается выбить два часа в сутки на такое

Алимжан
17.06.2017
11:10:02
Все равно бизнес почти никогда не поймет что рефакторинг нужен

Boris
17.06.2017
11:13:05

Google

Boris
17.06.2017
11:13:14
Нужен результат и что-бы работало :)

Алимжан
17.06.2017
11:13:34

Юрий
17.06.2017
11:13:45
Ну вот на работе выбили два часа на рефакторинг, это прям дико круто

Boris
17.06.2017
11:13:45
Не многие понимают что в дальшейшем говнокод выльется в затраты :)

Алимжан
17.06.2017
11:13:53
Была где-то статься про технический долг и бла бла бла

Юрий
17.06.2017
11:14:18

Алимжан
17.06.2017
11:14:29

Юрий
17.06.2017
11:14:34
Но чаще всего это "эффективные менеджеры"

Katulos
17.06.2017
11:16:45
Дефективные же
менеджеры

Юрий
17.06.2017
11:18:45
Вон у Yahoo эффективный менеджер
Выбила золотой парашют, а компании больше нет)

Mirocow
17.06.2017
12:10:20

Dmitriy
17.06.2017
12:17:24

Yet Another Stats
17.06.2017
12:47:02
https://yasb.exileed.com/telegram/chat/1001046156199

Deil
17.06.2017
13:18:41
Подскажите как установить дефолтное значение переменной в которую записывается get параметр.
Типа есть url http://domen/action и соответственно public function actionStaff($title) и соответсвенно надо чтобы в $title записалось дефолтное значение равное 1 , если же http://domen/action/2 ,то 2. Чет понять не могу)

Алимжан
17.06.2017
13:22:15
actionStaff($title = 1)

Yura
17.06.2017
13:22:18
public function actionFoo($var1, $var2=1)
Если пропишешь то поменяется

Deil
17.06.2017
13:27:48
Почему тогда ошибку выводит при http://domain/action/1
Вроде в правилах указал 'site/Нужныйaction/<title:\D+>' => 'site/Нужныйaction'