@symfony_php

Страница 171 из 1418
Jan
07.04.2017
01:12:31
@iSize1ce у нас такая же херня. Своё MVC-шное «ядро», шаблонизатор (типа Twig) ставить нельзя (ТОРМОЗИТ!!!111), нормальную абстракцию от БД нельзя (есть своя даже с «репозиториями», которые долбятся в базу и пришиты к MySQL, но сырые запросы наше всё, всё остальное тормозит и НИНУЖНО, а еще места много занимает, да, а делает много ненужной херни). ???

Andrey
07.04.2017
05:32:53
Звучит как арх из 90х

Jan
07.04.2017
05:55:17
А, еще DI-контейнера нет.

Google
Andrey
07.04.2017
06:35:08
Сразу через синглтоны?)

Dmitriy
07.04.2017
06:42:46
наследование и трейты поди )

Jan
07.04.2017
06:44:00
@alfabind в том числе.

Andrey
07.04.2017
06:50:39
И тестов нет?

Jan
07.04.2017
06:51:11
Только на одном из подпроектов, насколько я знаю.

Andrey
07.04.2017
06:51:22
Бинго! Та самая контора, которую я избегаю всю сознательную жизнь

Jan
07.04.2017
06:51:51
Ну, моё присутствие «здесь» не вечно =)

Andrey
07.04.2017
06:52:26
Спрашивай как часто деплоятся

Выявление половины симптомов сразу

Дмитрий
07.04.2017
06:53:52
как в сервисах юзать em? В services.yml churn_kpi: class: VC\ChurnBundle\Services\Kpi arguments: entityManager: [ "@doctrine.orm.entity_manager" ] ругается на строку public function __construct(EntityManager $entityManager) Type error: Argument 1 passed to VC\ChurnBundle\Services\Kpi::__construct() must be an instance of Doctrine\ORM\EntityManager, array given, protected $em; public function __construct(EntityManager $entityManager) { $this->em = $entityManager; }

Andrey
07.04.2017
06:54:49
Ентити менеджер в сервис

Звучит как god class

В сервис по-хорошему может только другой сервис передаваться, или в крайнем случае репа

Google
Andrey
07.04.2017
06:57:34
Через репу

Это ответственность персиста

Но симфони все стерпит да

Dinar
07.04.2017
06:59:48
Репа не должна сохранять. Она должна доставать.

Репы - это хранилище.

Pavel
07.04.2017
07:00:02
Юзаю денормолайзер в сайлексе. Обьект без методов, все на публичных свойствах. Передаю валидный массив. В любом случае выдается ошибка "Could not denormalize object of type AccountBundle\\Entity\\Account\\Account, no supporting normalizer found."

В чем проблема?

Кто-нибудь сталкивался, может

ObjectNormalizer подключаю

Dinar
07.04.2017
07:01:26
Чтобы не разрастались сервисы, надо именовать их не сервисами а вполне конкретными названиями. PortalDataFetcher или NewsUpdater

Без приставки Service

Andrey
07.04.2017
07:02:57
хорошо, хорошо, делайте как вам нравится

но в итоге получится лапша, которая размазывает слой базы по многим местам

и рефакторить такое будет очень проблематично

Dinar
07.04.2017
07:03:58
Ну а почему тогда именования методов должны начинаться на find?

Andrey
07.04.2017
07:04:13
у репозитория?

Dinar
07.04.2017
07:04:23
Не проблематичнее чем репы.

Ага.

Google
Andrey
07.04.2017
07:04:36
ну почитайте официальную документацию

SOLID очень полезные изменения в осознание разработки приносит

Dinar
07.04.2017
07:06:22
You can think of a repository as a PHP class whose only job is to help you fetch entities of a certain class.

Как раз таки юзать репы для всего - это против Single Responsibility.

Andrey
07.04.2017
07:07:13
https://martinfowler.com/eaaCatalog/repository.html

Dmitriy
07.04.2017
07:07:25
посмотри на репы в ДДД

там и find и save

но никто не мешает юзать CQRS

когда у тебя отдельно чтение и отдельно запись

Andrey
07.04.2017
07:08:41
CQRS немного идиотическая идея

много саппорта из-за малого профита

Dmitriy
07.04.2017
07:09:09
ну чувак же не хочет в репу сохранение встраивать

Andrey
07.04.2017
07:09:31
ну потом ему скажут спасибо, ища по всему проекту функциональность

а не найдя - впилить свое

обычно непрозрачное поведение находит свои велосипеды

Dinar
07.04.2017
07:09:52
Ок. А где ты используешь энтити мнеджер?

Andrey
07.04.2017
07:10:05
напрямую только в репозитории

ну и в бехате на старте для чистки базы

Dinar
07.04.2017
07:11:39
Ок.

Andrey
07.04.2017
07:11:43
сервис общается с сервисом через экспозируемые методы

Google
Andrey
07.04.2017
07:11:52
оно хорошо скейлится

Dinar
07.04.2017
07:12:08
Не лучше чем репы

Измени сигнатуру метода.

Andrey
07.04.2017
07:12:31
это контракт

Dinar
07.04.2017
07:12:32
И будешь так же рефакторинг везде.

Andrey
07.04.2017
07:12:44
если ты меняешь контракт, значит ты что-то делаешь не так

Dinar
07.04.2017
07:12:51
Это контракт только пока новые требования не подвезли.

Andrey
07.04.2017
07:12:52
можешь сделать фасад перед сервисом

Dinar
07.04.2017
07:13:03
Ты идеализируешь разработку.

Andrey
07.04.2017
07:13:11
обычно новые изменения не трогают так сильно ключевые понятия системы

Admin
ERROR: S client not available

Dinar
07.04.2017
07:13:19
Ой не надо.

Ещё как трогают.

Andrey
07.04.2017
07:13:36
ну то, что ты сидишь по колено в овне, не значит, что другие мучаются так же

Vadim
07.04.2017
07:13:49
Dinar
07.04.2017
07:13:54
Ну ты моего говна не видел. И проекты мои не видел.

Andrey
07.04.2017
07:13:55
есть четко выделенные контексты взаимодействия

Dinar
07.04.2017
07:14:04
Откуда столько экспертности?

Andrey
07.04.2017
07:14:19
друг, я с тобой не спорю

просто не переноси свой опыт на меня

Google
Andrey
07.04.2017
07:14:33
у меня разработка идет планомерно, без рывков

Dinar
07.04.2017
07:14:35
Ты утвер

ну то, что ты сидишь по колено в овне, не значит, что другие мучаются так же

Andrey
07.04.2017
07:14:46
есть код, есть спеки, есть юнит на определенные моменты

это пример, метафора

Dinar
07.04.2017
07:15:13
Ок.

Метафора под собой вполне конкретные утверждения подразумевает.

Andrey
07.04.2017
07:16:15
давай тему сменим

я не вижу конструктива

Dmitriy
07.04.2017
07:17:02
просто аккуратней с выражениями надо быть чтобы не агрить потом на себя )

Dinar
07.04.2017
07:17:19
У меня тоже нет рывков в разработке. Но когда стейкхолдер приходит и говорит, ребята, надо вот такую фиск реализовать. Ты не говоришь ему "ну нееее. У нас там репозитории. Контракты. Не получится".

Ты делаешь.

Andrey
07.04.2017
07:17:38
бизнесу про техчасть?

Dmitriy
07.04.2017
07:17:38
говно оно у всех разное и пахнет со временем тоже по-разному

Andrey
07.04.2017
07:17:40
серьезно?

я бы посмотрел

Dinar
07.04.2017
07:17:57
Ок. Пм приходит.

Не буквоедствуй

Dmitriy
07.04.2017
07:18:13
а почему не получится?

Andrey
07.04.2017
07:18:17
ПМ обычно понимает за техдолг

Dmitriy
07.04.2017
07:18:17
почему такой ответ?

Dinar
07.04.2017
07:18:33
Ну по словам Андрея.

У него идеальный мир книжный в программировании.

Страница 171 из 1418