Михаил
😂
Maks
я уже слоган придумал. "некий инструмент" - добавим успокоения в пайплайн
Юра
Корвалол говорят помогает
Юра
А если серьезно то наверное это только какие-нибудь верифицируемые языки могут тебе дать полное успокоение
Юра
Типо ада там и всякое такое
Юра
Но никто не будет на них писать обычные приложения
Юра
Вообще конечно смешно получается если так провести параллель с каким-нибудь строением мостов. Чел такой приварил железяку, собралась команда, прораб, все смотрят со всех сторон на эту железяку, кто-то постучал молотком, такие через полчасика подытожили все ок
Юра
Ну вот в айти такого инструмента нет. Есть только после упавшего прода паяльник
Юра
С другой стороны в айти например можно плавно запускать новый мост, переводя туда по несколько человек
Михаил
Ну не знаю почему вам это кажется смешным, но всякие phpcs для проверки кодстайла, phpstan для проверки инвариантов - являются нормой Я хочу найти инструмент который проверит тесты
Юра
Ну есть же каверадж с проверкой бранчей
Юра
Уже же обсудили вроде
Юра
Ещё рандомные фикстуры кто-то практикует
Михаил
Ну есть же каверадж с проверкой бранчей
да обсуждали, я же сказал что понял. Просто осталось понять как это сделать в виде пайплайна
Михаил
Ещё рандомные фикстуры кто-то практикует
тоже хорошо, но рандомные фикстуры работают только в функциональных тестах и падают ... рандомно
Юра
Ну если повезло то в логе увидишь на каких данных упало
Юра
Бранч каверадж тоже не решает полностью проблему
Юра
Так как ты увидишь лишь какие-то определенные сочетание веток
Юра
А их может быть миллион
Михаил
А их может быть миллион
да, это самое печальное. Но блин, хоть что-то. Особенное если для этого не пришлось ничего делать - всё автоматом прогналось
Nikolay
Есть всякие практики тестирования на проде, канареечное тестирование и тд
Юра
На практике же достаточно покрыть хорошо ьтестами только какой-то core domain
Юра
Остальное не приводит обычно к каким-то ужасным последствиям
Михаил
Типо у меня на работе были тесты на уязвимые пакеты. Если какой-то пакет обновился из-за найденной в ней уязвимости, и пакеты которые у меня стоят подвержены этой уязвимости - то пайп упадёт. Но вот проблема, уязвимостей от этого намного меньше не станет
Nikolay
Остальное не приводит обычно к каким-то ужасным последствиям
В интерфейсе что то сломается критичное и все
Михаил
Ещё на повестке дня 1) как бы автоматом находит проблемы с concurrency 2) автоматом искать всякие баянистые узявимости (IDOR, XSS, SQLInjection ...)
Юра
Пентестами
Юра
Но это обычно уже не входит в обязанности обычных разрабов
Юра
Это ж безопасники
Dmitriy
ну infection часть вопросов по тестам решает, если это у вас актуально пайп падает если индекс падает ниже некоторого порога
Михаил
Это ж безопасники
1) ввожу автоматический тест на уявимости 2) в проекте ни одной явной уязвимости 3) пентестеры ничего не находят 4) пентестеров сокращают 5) я сэкономил для бизнеса деньги - моя задача как программиста решена
Aleksandr Khristenko
но тяжелее чем процесс
Ну не особо. Это по сути процесс для которого создан неймспейс и подмонтирована фс.
Maks
и я не разу не видел штатных пентестеров, только конторы которых переодически приглашают на аудит
#lest
1) ввожу автоматический тест на уявимости 2) в проекте ни одной явной уязвимости 3) пентестеры ничего не находят 4) пентестеров сокращают 5) я сэкономил для бизнеса деньги - моя задача как программиста решена
1) Не веду тесты 2) В проекта х@й знает сколько уязвимостей 3) Пентестеров у нас нет 4) Некого сокращать 5) Сэкономил свои клетки - моя задача как программиста тоже решена
#lest
6) Во всем виноват битрикс, а так работал бы хорошо
#lest
!Шутка
Михаил
а разве твоя задача как программиста экономить денги бизнеса?
Нет, задача как программиста - заработать бизнесу больше бабок. Экономия тоже сродни заработку
Maks
Нет, задача как программиста - заработать бизнесу больше бабок. Экономия тоже сродни заработку
ой вей, задача программиста произвести ценность в виде софтвера, и получить в обмен за потраченное время горсточку шекелей. А "заработать бизнесу больше бабок" ты можешь сколько угодно долго, особенно при херовом маркетинге и слабыми продажниками
Maks
тут как говориться удачи вам в ваших начинаниях)
Maks
но помни две вещи 1. не надо решать чужие задачи. 2 едут на том кто везет
Maks
https://www.youtube.com/watch?v=vrMMj6ZuBPQ&t=1394s
Maks
неистово рекомендую к просмотру, чайку финконтроля особенно
Nikolay
неистово рекомендую к просмотру, чайку финконтроля особенно
Про прокрастинацию еще у него есть, и много чего интересного
Михаил
сейчас отсыплю очень старенький доклад на эту тему)
Да я думаю что про это много докладов, всё таки правильное распределение бюджета - это важно
Юра
Задачи программиста писать код так чтобы в нем не было уязвимостей. Задача пентестера проверить программиста
Юра
Это нормально и часто требуется чтобы исполнителей проверяли отдельные люди
Юра
Часто это отдельные приглашенные компании
Юра
Single responsibly)
Юра
Ну и если это нужно для получения какого-то сертификата то проверять все равно должны люди у которых есть соответствующач аккредитация
Юра
Ты конечно сам можешь проверить но это чисто для своего успокоения
Михаил
Задачи программиста писать код так чтобы в нем не было уязвимостей. Задача пентестера проверить программиста
Да, но просто если была бы какая-нибудь «серебряная пуля» которая проверит на совсем базовые уязвимости ещё во время разработки, когда мы «на берегу» было бы вообще круто, согласись
Maks
nikto?
Михаил
nikto?
Хороший боевик
Maks
https://habr.com/ru/companies/first/articles/731696/
Михаил
Оп, спасибо, почитаю
Maks
до кучи изучи fiddler/burp suite и вуаля, ты devSecOps
Михаил
Ну если платить будут меньше то нет смысла менять
Михаил
Ну и…
Denchik
Коллеги всем привет) подскажите уже на своем опыте кто и как планирует и создаёт базы данных для своих проектов, может кто посоветует интересные сервисы в помощь для этого, может какую полезную информацию и тд, заранее благодарен.
Михаил
Да просто сущность создал, bin/console d:m:diff & bin/console d:m:m и поехали
为什么要翻译
Всем привет использую gedmo/doctrine-extensions, softDelete, все работает, но как можно отключить фильтр для определенного роута Например хочу чтобы даже Entity с пометкой что они удалены находились public function delete(EntityManagerInterface $entityManager, Department $department) Вот на этот роут отдает 404 когда запись удалена, как это можно обойти?
为什么要翻译
Как вариант, можно кидать только id вместо подставления сущности в метод, и внутри явно выключать фильтры и искать необходимое
Да, этот способ я тоже расматривал, но думаю есть более элегантный способ это сделать
Павел
Да, этот способ я тоже расматривал, но думаю есть более элегантный способ это сделать
Библиотека роуты не читает, можете сделать это сами на листенере запроса, но это не очевидный ход, лучше в контроллере
Павел
$em->getFilters()->disable('softdeleteable'); $object = $em->find('AppBundle:Object', 1); $em->getFilters()->enable('softdeleteable');
Проблема в том, что отваливается в EntityResolver судя по вопросу и коду
Павел
У меня всё работает
Что где работает? Вопрос не в том как отключить фильтр, а ГДЕ его отключить. Not found exception вылетает до прилета в контроллер
Павел
Чтобы это работало, можно ваш код вызвать например в листенере запроса, отловив определенный роутер
Павел
Судя по тому, что речь идет про контроллер и роуты public function delete(EntityManagerInterface $entityManager, Department $department) Это экшен контроллера
Михаил
Судя по тому, что речь идет про контроллер и роуты public function delete(EntityManagerInterface $entityManager, Department $department) Это экшен контроллера
Значит надо найти тот ParamResolver который проставляет сущности в экшоны и дописать его так, что бы на параметр можно навесить аттрибут (допустим IgnoreSoftDelete) и если этот аттрибут стоит - то вызывать код который я скинул
Михаил
А вообще лучше сущности забирать уже в контроллере или в application layer implicit better then explicit
Михаил
Это симфонийский, но да, как вариант тоже.
Не знаю что за симфонёвский - но можно задекорировать симфонёвый листенер. Дело дюжины строчек
Павел
Не знаю что за симфонёвский - но можно задекорировать симфонёвый листенер. Дело дюжины строчек
Там нет листенера. https://symfony.com/doc/current/controller/value_resolver.html#built-in-value-resolvers https://github.com/symfony/symfony/blob/7.1/src/Symfony/Bridge/Doctrine/ArgumentResolver/EntityValueResolver.php