@yii2ru

Страница 240 из 1721
Алимжан
17.06.2017
10:33:43
Мне кажется странным проверять правильно ли в yii работает валидация.
Вообще-то проверяется не yii, а люди, которые могут править эти правила валидации. И в какой-то момент кто-то может удалить что-то вроде ['name', 'required']

Бизнес говорит что name обязательно, и ты потом спокоен об этом

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:06
А то ведь можно и проверки на авторизацию удалить и много чего еще, что обычными юнит тестами не покрыть из-за завязки на сторонние системы и что могут выявить только тестировщики в третий день луны

Юрий
17.06.2017
10:44:51
Не пойму каким образом тут тестируется фреймворк
Тест выше в большей степени проверяет валидаторы yii как уже заметили

Алимжан
17.06.2017
10:45:30
Тест выше в большей степени проверяет валидаторы yii как уже заметили
Идет проверка перечисления правил, а не самих валидаторов

Юрий
17.06.2017
10:45:35
Это вроде проверяется приемочными, не?
Ну так и ваш кейс с удалением валидатора name ими покрывается?

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

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
А некомпетентная команда не может сломать тест?
Ну как бы за тестами кто-то должен следить, код ревью и тд. Очень удобно при TDD. Написал тесты и потом прописал правила

Юрий
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
https://xakep.ru/2006/12/16/35784/
Классо, спасибо, поржал

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

Солонки как раз про это

Юрий
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
И не смотря на то что все так модно - куча претензий у @ExileeD нашлась
Это нормально. Всегда можно что-то рефакторить

Юрий
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 эффективный менеджер

Выбила золотой парашют, а компании больше нет)

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'

Страница 240 из 1721