Павел
Не совсем понимаю, как связан сингл и tdd. Правда tdd в api тестах даже не знаю, сработает ли.
𝕎𝕒𝕣𝕞
tdd это то что я тесты пишу сначпла?
Павел
Можно в начале писать тесты, можно в конце. В начале - это TDD. Научитесь так писать - это гуд.
𝕎𝕒𝕣𝕞
Понял, спасибо))
Dmitriy
Если апи то это test first
𝕎𝕒𝕣𝕞
апи
Eldar
По TDD анрил с 0 если писать. Обычно в процессе написания кода только бизнес требования какие-то осмысляешь и дополняешь потом тест
Eldar
ну точнее сложно на входе сразу понять все бизнес требования
Юра
Не всегда
Юра
Наоборот иногда написание теста перед реализацией дает лучше понять бизнес логику
Юра
В случае с апи, представь что ты сначала пишешь клиента который будет использовать это апи
Юра
Вполне норм подход
Юра
Во время реализации ты слишком сконцентрирован на реализации
Юра
А во время написания теста мозг свободен
Dmitriy
Описываешь доку openapi, это потом тебе помогает начать писать тест итерациями
Kirill
Всем привет! Подскажите, как у вас апи возвращает данные? с JSON_UNESCAPED_UNICODE или без?
По умолчанию симфони (ForRestBundle) возвращает без JSON_UNESCAPED_UNICODE, то есть кириллица превращается в \uxxx, но есть настройка, чтобы кириллица возвращалась как есть. Фронту без разницы, он все принимает, но глазами когда смотришь, неудобно.
В общем, есть ли какой-то плюс в использовании формата \uxxx вместо JSON_UNESCAPED_UNICODE и как у вас в проектах?
Юра
Если ты отдаешь данные в браузер отдавай без кодирования
Юра
Еще желательно включить gzip иногда если передается много данных это прям сильно ускоряет ответ
Kirill
то есть в использовании JSON_UNESCAPED_UNICODE нет никаких минусов, правильно я понимаю?
Иван
Юра
А где глазатами смотришь и неприятно?
Юра
Дев тул хрома вроде декодирует
Kirill
ну тесты те же, например, в codeception я проверяю, что возвращаемый json содержит значения. Если нет, то в консоли пишет, что ответ не такой как надо и вываливает сам ответ, а там \uxxxx...
Dima
Привет. При попытке использовать bin/console debug:dotenv команду - получаю ошибку, мол пакет не инициализирован.
В документации нет не слова про корректную инициализиацию пакета. Есть некоторые упоминания, мол есть такая команда и всё.
Не подскажете, как справится с ошибкой?
https://symfony.com/doc/current/configuration.html#listing-environment-variables
Юра
(new Dotenv())->bootEnv(dirname(DIR).'/.env');
Юра
есть такое в index.php?
Vlad
а причем здесь index.php если вызывают bin/console?
Юра
есть ли такой код в ./bin/console ?
Dima
Есть
CaptchaBot
@khaaavte_sokolova has not completed the captcha in time. I tried to kick the "User", but due to an unexpected problem (maybe network/server related), I can't do it.
Юра
Я смотрю в симфе появился новый спринг лайк способ сервисы объявлять через аттрибут, AsMessenger к примеру
Юра
Можете назвать чем это лучше чем просто наследование интерфейса?
Vlad
Юра
Чем он там говорит забыл уже )
Null
шо то хуйня, шо это хуйня, но когда эти обе хуйни вместе то я ту маму рот ебал
Null
не притендую на точность цитаты, но смысл передал
Юра
Ну если ты наследуешь интерфейс к примеру MessegeHandlerInterface то тоже проникает код симфы же
Konstantin
а, ну да, я так не делаю прост
Юра
Я пока вижу одно преимущество, это возможность какие-то метаданные сразу же передать
Юра
Особенно на моменте компиляции контейнера бех хаков в виде статик методов
Юра
Ну и сразу понятно назначение класса
Юра
Хотя в интерфейсе тоже обычно понятно
Юра
Ну вообще я смотрю тупо копируют из спринга все )
Юра
Неудивительно что какие-то ПР отклоняют, наверное потому что в спринге такого нет
Юра
Нравится мне переключатель версии в доке доктрины
Юра
Игра успей нажать на ссылку пока попап не закрылся
Ivan
Разработка под Roadrunner сильно меняет жизнь?))
Vlad
в дев режиме как печка работает если говорим про мак
Ivan
Выигрыш в RoadRunner реально большой получается? И оно того стоит?
Сергей
разработка под RR - это как?) типа думать о состоянии?
Ivan
да, до этого думать в эту сторону не приходилось. всегда знаешь, что процесс помрёт сразу после ответа пользователю.
Vlad
Большой выигрыш. Сходу ничего не делая можешь получить 1k rps. На fpm надо попотеть
Vlad
плюс крутая плюшка rr не теряет запросы
Vlad
в отличии от fpm
Konstantin
минус - это крашащийся и текущий кусок говна, в котором вечно что-то не работает, и с которым произвольный код из пакаджиста особо не совместим
Konstantin
типа как drop-in replacement для фпм завести вряд ли получится, а писать отдельный специальный код под сервис в рр смысла нет - лучше взять голанг и то же самое сделать на нём отдельно, будет и быстрее, и менее костыльно
Сергей
Vlad
это как?
Отвечает но чуть дольше, а nginx будет падать в 503 потому что то не может достучаться до фпм
Юра
А что оно не умеет убивать пхп воркеров периодически?
Юра
Ну пусть течет, отработал 1000 запросов и сдох
Ivan
На самом деле хотел услышать о практическом опыте. Например мы используем в highload и нам всё нравится -)
Юра
Пхп хайлоад
Юра
Что-то тут не то
Юра
Не ч уверен можно сделать
Юра
Просто грамотно настроить
Юра
Ну и скорее всего без симфы
Юра
Мне кажется она слишком жирная для долгоживущих всяких процессов
Юра
Не знаю обычно если тебе нужен хайлоад и пхп, то чаще просто проще накидать очередь и в пхп её разгребать, чем городить роад ранеры и прочие костыли
Ivan
Спасибо)
Сергей
не было проблем с RR
Юра
Как всегда) у одного нет проблем, у другого нерабочий кусок говна )
Юра
Как жить в этом мире
Сергей
так дело не в оптимизации для симфы, а для одноразового бустрепинга
Сергей
неважно где
Юра
В симфе мне кажется слишком много всего что может потечь
Юра
Бандлы всякие
Юра
Не уверен что они все писались с учетом работы в фоне долго