Gleb
Ну я безобидно шучу)))
Anton
Так тогда и кэш убрать нужно
зачем вообще var указывать? просто rm -rf / и всё
Gleb
Сейчас так нельзя😔
Пф... недавно в команде rm -rf ./* пропустил точку. Убунту даже не спросила действительно ли я уверен.
Gleb
Не, это было из вложенной папки /home/user/
artem
Не, это было из вложенной папки /home/user/
Дык. Это же не мониторится. Попробуй cd / rm -rf ./
artem
Должно сработать. Сорри, не смог в одну команду. На телефоне не нашел знак
Gleb
😁 как будет лишняя виртуалка под снос - обязательно попробую)
artem
😁 как будет лишняя виртуалка под снос - обязательно попробую)
Интересно стало можно ли rm -rf / на маке сделать? Но что-то проверять не хочу
Сергей
Сергей
Ну короче если запустить в молчаливом режиме, то я думаю что доступно то грохнет, это могут быть и какие то системные конфигурации
Юра
И попробуй )
Aleksandr
привет, если кого-то интересует парт-тайм на симфони, обращайтесь)
Евгений
Всем привет друзья!
Евгений
Я делаю первый проект на Symfony, причем до этого делал сайты только на cms. Последняя - Drupal. Не смог приделать к нему нужный мне функционал и, услышав, что последние его версии созданы на основе Symfony, решил попытаться разобраться в нем. Пытаюсь уже несколько месяцев. Пока сделал только CRUD c определенными проверками. Делаю программку для учета аренды мест и ее оплаты в общежитии колледжа. В дальнейшем необходимо будет расширять для учета всех приходов и расходов. Мой проект работает с помощью форм и вывода информации в html формате. Я понимаю, что первый проект не может быть совершенным, но все таки хочется сделать то, что можно будет расширять. Посоветуйте пожалуйста, какой либо логичный существующий способ организации кода по функционалу, который поможет разбить проект на логические разделы. Важно, чтобы можно было по структуре папок и файлов можно было видеть что где искать и изменять. Спасибо. Всем мира!
Null
Я делаю первый проект на Symfony, причем до этого делал сайты только на cms. Последняя - Drupal. Не смог приделать к нему нужный мне функционал и, услышав, что последние его версии созданы на основе Symfony, решил попытаться разобраться в нем. Пытаюсь уже несколько месяцев. Пока сделал только CRUD c определенными проверками. Делаю программку для учета аренды мест и ее оплаты в общежитии колледжа. В дальнейшем необходимо будет расширять для учета всех приходов и расходов. Мой проект работает с помощью форм и вывода информации в html формате. Я понимаю, что первый проект не может быть совершенным, но все таки хочется сделать то, что можно будет расширять. Посоветуйте пожалуйста, какой либо логичный существующий способ организации кода по функционалу, который поможет разбить проект на логические разделы. Важно, чтобы можно было по структуре папок и файлов можно было видеть что где искать и изменять. Спасибо. Всем мира!
Это смотрел? https://habr.com/p/671956/
Евгений
Нет, спасибо, посмотрю.
Евгений
Еще раз спасибо. Но я не нашел ни одного контроллера в папке Controller. Я новичок в работе с Symfony. Мне необходимо реализовать это с помощью форм и html. И учет аренды и оплаты очень простой. Мне нужно сделать структуру по определенному шаблону.
Vladimir
Это смотрел? https://habr.com/p/671956/
Я смотрел, честно сказать - это шляпа какая-то, выглядит как будто автор хотел "выделиться" и показать свой скилл, переусложнив всё, что можно. А по факту там непонятно даже как добавить новую валюту.
Dmitry
Я делаю первый проект на Symfony, причем до этого делал сайты только на cms. Последняя - Drupal. Не смог приделать к нему нужный мне функционал и, услышав, что последние его версии созданы на основе Symfony, решил попытаться разобраться в нем. Пытаюсь уже несколько месяцев. Пока сделал только CRUD c определенными проверками. Делаю программку для учета аренды мест и ее оплаты в общежитии колледжа. В дальнейшем необходимо будет расширять для учета всех приходов и расходов. Мой проект работает с помощью форм и вывода информации в html формате. Я понимаю, что первый проект не может быть совершенным, но все таки хочется сделать то, что можно будет расширять. Посоветуйте пожалуйста, какой либо логичный существующий способ организации кода по функционалу, который поможет разбить проект на логические разделы. Важно, чтобы можно было по структуре папок и файлов можно было видеть что где искать и изменять. Спасибо. Всем мира!
А если действительно нужно разбивать на разделы, то тогда уже раскладывать по папкам-фичам как в докладе https://elisdn.ru/blog/149/code-structure
Евгений
Спасибо Дмитрий!
Евгений
👍
𝕎𝕒𝕣𝕞
А кто может обьяснить в чём смысл агрегатов в ddd? У меня есть сервис который создаёт и связывает несколько сущностей. Что я делаю не так?
Dmitriy
агрегат котролирует инварианты
Юра
Наверное например синхронизация рилейшенов
Павел
А кто может обьяснить в чём смысл агрегатов в ddd? У меня есть сервис который создаёт и связывает несколько сущностей. Что я делаю не так?
Агрегат - это несколько сущностей. Корень агрегата - это точка входа в эти сущности (одна из сущностей), т.е. все дейсвтия можно делать только через него. Напрямую рабоатть с сущностями мимо корня агрегата поидее нельзя. Агрегатом контролируются бизнес правила, которые возникают в ходе работы между этими сущностями. Если эти базнес правила выносить в сервис, то гораздо проще их нарушить, просто дернув одну из сущностей через репозиторий и выполнить манипуляцию с проперти мимо сервиса.
Павел
Если у вас нет таких проблем и задач, то и не за чем этим загоняться. Нет смысла натягивать ДДД на всё.
Павел
Опять таки, есть истинные инварианты, которые как раз надо в агрегаты заключать, а есть вещи которые можно догнать через eventual consistency
Павел
А сущности Chat, ChatParticipant, ChatRole для перехода на агрегат подходят?
Постараться натянуть можно что угодно. Но зачем. Вам надо разобраться что вы хотите контролировать, а не просто термины в код воткнуть
Павел
Чат - больше на круд походит
𝕎𝕒𝕣𝕞
агрегат лучше будет смотрется чем сервис
Павел
агрегат лучше будет смотрется чем сервис
Возможно, но мало представляется что в чате может требоваться от агрегата.
𝕎𝕒𝕣𝕞
Ну думаю это упростит задачу
𝕎𝕒𝕣𝕞
А для чего бы действительно пригодился агрегат?
Павел
Ну если вам кажется что упростит, то ок. Но выше вы писали, что даже не понимаете для чего агрегат, а тут он уже что то упрощает.
Павел
А для чего бы действительно пригодился агрегат?
Там где надо контролировать инварианты. Какие инварианты в чате - сложно представить.
Павел
Это куча сообщений, в которой скорее надо думать о перфомансе и нагрузке
Павел
Например агрегат - чат, что он контролирует. Если это агрегат, то и сообщения скорее всего надо через него добавлять. Или через агрегат Сообщения чата, ну если вы все через типа ддд делаете. Значит надо поднимать всю коллекцию сообщений в память. А зачем? Когда можно чуть ли не в тупую сделать sql insert
Павел
Решайте проблемы, а не создавайте их себе. Если считаете что это будет проще через агрегат-то ок.
Павел
Но если агрегат ради термина из ддд - то не ок
𝕎𝕒𝕣𝕞
Спасибо что прояснили
Katulos
Я делаю первый проект на Symfony, причем до этого делал сайты только на cms. Последняя - Drupal. Не смог приделать к нему нужный мне функционал и, услышав, что последние его версии созданы на основе Symfony, решил попытаться разобраться в нем. Пытаюсь уже несколько месяцев. Пока сделал только CRUD c определенными проверками. Делаю программку для учета аренды мест и ее оплаты в общежитии колледжа. В дальнейшем необходимо будет расширять для учета всех приходов и расходов. Мой проект работает с помощью форм и вывода информации в html формате. Я понимаю, что первый проект не может быть совершенным, но все таки хочется сделать то, что можно будет расширять. Посоветуйте пожалуйста, какой либо логичный существующий способ организации кода по функционалу, который поможет разбить проект на логические разделы. Важно, чтобы можно было по структуре папок и файлов можно было видеть что где искать и изменять. Спасибо. Всем мира!
Выбросьте и возьмите любую уже готовую erp
Юра
И сколько будет стоить эта готовая erp
Gleb
Ребята, а кому не сложно потратить немножко времени, объясните мне пожалуйста что я сделал не так? понимаю что фигня, но пока не могу понять что надо сделать иначе. Суть. Сервис - бизнес-логика. Есть публичный метод, часть логики выделено в приватный метод. (https://pastebin.com/P7NY465P) Написал юнит тест (да, ряд вещей по тесту оверхед и не нужны, но это учебная задача с целью пощупать разное), получается мне в нём надо протестировать как раз этот приватный метод - как основную часть логики. Тестировать приватные методы вроде считается фу-фу-фу, да и немного рефлексию попользовать пришлось, что бы протестировать приватный метод, что тоже вроде как фу-фу-фу. (тест https://pastebin.com/9mruRZy6) Размышления. 1. Делать в сервисе этот метод публичным - фигня, он нужен только в этом сервисе. 2. Не выносить код в приватный метод - тогда публичный метод получается относительно большим. 3. Не тестировать приватный метод - так у меня как раз публичный метод сложнее протестировать т.к. я не придумал какое возвращаемое значение туда впихнуть, что бы корректно оттестировать можно было. И как реорганизовать код, что бы была польза от тестирования публичного метода. 4. Сюда нафиг не нужен юнит тест - используй интеграционный?
Павел
Ребята, а кому не сложно потратить немножко времени, объясните мне пожалуйста что я сделал не так? понимаю что фигня, но пока не могу понять что надо сделать иначе. Суть. Сервис - бизнес-логика. Есть публичный метод, часть логики выделено в приватный метод. (https://pastebin.com/P7NY465P) Написал юнит тест (да, ряд вещей по тесту оверхед и не нужны, но это учебная задача с целью пощупать разное), получается мне в нём надо протестировать как раз этот приватный метод - как основную часть логики. Тестировать приватные методы вроде считается фу-фу-фу, да и немного рефлексию попользовать пришлось, что бы протестировать приватный метод, что тоже вроде как фу-фу-фу. (тест https://pastebin.com/9mruRZy6) Размышления. 1. Делать в сервисе этот метод публичным - фигня, он нужен только в этом сервисе. 2. Не выносить код в приватный метод - тогда публичный метод получается относительно большим. 3. Не тестировать приватный метод - так у меня как раз публичный метод сложнее протестировать т.к. я не придумал какое возвращаемое значение туда впихнуть, что бы корректно оттестировать можно было. И как реорганизовать код, что бы была польза от тестирования публичного метода. 4. Сюда нафиг не нужен юнит тест - используй интеграционный?
Варианты: 1. В тесте забыть что у вас есть приватный метод какой то. В тестах вообще не надо об этом думать. 2. Приватный метод похож на какую то бизнесовую логику. Вынести в доменный сервис отдельный, который не будет иметь зависимости. ТОгда у вас будет хороший юнит тест без моков.
Павел
Почитайте по разницу апликейшен сервисов и доменных сервисов. Сейчас вы как раз смешали эти два понятия в одном классе и поэтому страдаете
Gleb
В смысле понял. Я по терминологии путаюсь ещё. И вчера только закончил чистую архитектуру читать.
Павел
Хотя мб это у вас и доменный, раз у вас сразу сущности прилетают. Но название какое то члишком общее для доменного
Gleb
Это в итоге сервис, через который консьюмер разбирает очередь. Допускаю что намешал сразу и много.
Gleb
Все-таки это наверное доменный, только возможно в смеси и надо выделить что-то из него. Подумаю над этим вариантов.
Gleb
а какая у вас разница между сервисами и менеджерами?
Менеджер - это сервис который про crud и работу с репозиторием сущностей, но без DBAL/DQL. Уже обсуждали что выделение спорное
Gleb
DBAL/DQL вынесено в сам репозиторий.
Nikolay
там 2 ссылки
Не увидел сразу
Павел
@oleynikgleb Оритентируйтесь на то, что если какие либо действия являются логикой, имеют условия, стараться выносить это в отдельные классы с минимальным количеством зависимотей, в идеале 0 (но не всегда выходит). Например в вашем случае это явно какая то отдельная фабрика.
Nikolay
Спасибо! Поковыряю этот момент, попробую реализовать и разобраться ещё больше.
Могу посоветовать книгу принципы юнит тестирования почитать
Павел
Могу посоветовать книгу принципы юнит тестирования почитать
Ага, от Хорикова. Простым языком, хорошие примеры. Норм вправлят в этом направлении
Павел
@oleynikgleb Вот статья на его блоге по поводу всего этого ) Может и только ее достаточно будет https://enterprisecraftsmanship.com/posts/domain-vs-application-services/
Gleb
Спасибо вам всем огромное!) А вообще на этом учебном проекте я понял что такое писать тестируемый код, который упоминают в вакансиях 😄
Павел
Написать тест можно на любой код. А вот какой тест и какой код - другой разговор
Gleb
Видимо еще не совсем))) Так как основа именно то, что только сегодня вы узнали
Ну по крайней мере я понял что писать тестируемый код я ещё не умею.)