@symfony_ru

Страница 66 из 138
Sergey
29.01.2017
15:22:09
сейчас 504 ошибка, Gateway Timeout

Алексей
29.01.2017
15:22:23
Логи?

Sergey
29.01.2017
15:25:05
походу sql

Nick
29.01.2017
15:38:37
Парни, это ненормально ведь держать в контроллере функцию, которая достает последний добавленный сайт в базу (Имеется сущность Site)? Подозреваю, что в файл Repository/SiteRepository.php ? Направьте меня, пожалуйста

Google
Nick
29.01.2017
15:39:33
метод*

Sergey
29.01.2017
15:41:41
а для чего используется?

просто для UI?

короч простое правило - все методы репозитория должны либо ничего не возвращать (add, remove например) либо возвращать не null и не массив)

в целом это только те штуки которые используются в бизнес логике

"поиск" что бы отобращить список чего-нибудь - это UI логика

Nick
29.01.2017
15:43:25
У меня контроллер для генерации сайдбара, в который достаются из разных таблиц данные. В контроллере реализована пара методов типа getLastSite(), которые достают нужную инфу из БД

Sergey
29.01.2017
15:43:41
ну вынеси в отдельные сервисы

но не в репозиторий

и покури про Single Reponsibility

Nick
29.01.2017
15:44:39
Спасибо?

Sergey
29.01.2017
15:44:48
оно может и занудство но если проект разрастается и ты хочешь контролировать что происходит - полезно соблюдать все SOLID принципы

(и нарушать их там где лень уже)

Google
Nick
29.01.2017
15:47:05
То есть в SiteRepository.php стоит реализовать метод для удаления записи по id, но никак не для получения списка последних 10 сайтов?

Sergey
29.01.2017
15:47:37
ну как.... зависит от уровня лени и как много у тебя выборок

в целом вся соль в сегрегации интерфейсов и обязанностей. Например если ты запихнешь все это в репозиторий и даш кому-то попользоваться что бы тот мог взять 10 последних сайтов, то он как бы получает возможность сайты и добавлять и удалять

слишком много власти для одного объекта

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

но настолько загоняться частенько бывает лениво

Salavat
29.01.2017
15:49:28
Это ж сколько сервисов должно быть

Sergey
29.01.2017
15:49:35
много много много

есть еще хитрости

например - нотификации

у тебя в системе например есть 20 нотификаций различных

пилить 20 сервисов как-то не прикольно, учитывая что они будут копией друг дружки

так?

Salavat
29.01.2017
15:50:14
Угу

Sergey
29.01.2017
15:50:57
что можно сделать - один сервис нотификатор, который имеет метод public function send(Notification $notification) { $swiftMailerNotification = $notification->prepare($this->twig, $this->someOtherStuff); $this->mailer->send($swiftMailerNotification); }

теперь у нас по объекту на каждую нотификацию и они прекрасно знают как себя "отрендрить".

и только один сервис который уже будет отправлять нотификации

точно так же можно делать и с выборками

еще можно поскрипеть головой и придумать что-то типа композиции выборок но это уже сложнова-то

у нас по итогу тогда будут очень маленькие объекты и их будет много, но сервисов будет не так много как объектов

Google
Sergey
29.01.2017
15:53:33
и пока у тебя вся система состоит из маленьких самодостаточных объектов и ты следишь за зависимостями - все будет красиво и удобно

Salavat
29.01.2017
15:58:53
Но придёт момент и ты сойдёшь с ума?

Sergey
29.01.2017
15:59:12
да нет, ты скорее сойдешь с ума если у тебя система будет состоять из классов по 1000 строк

с наследованием, статикой и кучей ифов

когда непонятно что кто юзает и зачем

вопрос масштабов

unix way

Salavat
29.01.2017
16:01:37
Нет... мы пока не такие большие

Но логика ясна

Осталось заставать себя следовать ей

Не лениться то есть

Sergey
29.01.2017
16:02:17
я помниться тоже не верил что такой подход ускоряет дела

Sergey
29.01.2017
16:02:31
а потом настроил нормально шаблоны в шторме и да, действительно норм живется

главное что бы тупой бойлерплейт за тебя IDE генерила

Dmitriy
29.01.2017
16:03:24
Такой подход хоть и задерживает разработку в начале, но потом ускоряет ее, когда нужны новые фитчи

Sergey
29.01.2017
16:04:04
Такой подход хоть и задерживает разработку в начале, но потом ускоряет ее, когда нужны новые фитчи
да если руку набить недельку то как бы и в начале не сильно задерживает

Dmitriy
29.01.2017
16:04:47
Я просто люблю подход. хуяк в продакшен, а если взлетит, все по умному =)

ModerBot
29.01.2017
16:04:48
Sergey
29.01.2017
16:04:58
Я не знаю что это)
ну тип... ты создаешь класс как? Создаешь пустой файл и фигачишь руками или просишь IDE все создать и оно само правильный нэймспейс сделает и все такое?

Google
Sergey
29.01.2017
16:05:21
Dmitriy
29.01.2017
16:05:33
Да, все так

Sergey
29.01.2017
16:05:37
нормальный подход особенно когда ты не знаешь что делаешь

или заказчик не знает чего хочет

но как бы... в этом случае разделение на маленькие объектики только профит дает

ибо.... выкатывать прототипы тебе надо будет и сильно после продакшена если ты работаешь над каким-то более-менее непонятным приложением

Dmitriy
29.01.2017
16:07:09
Но я делаю для себя. или для компании своей. Я просто взвешиваю время, если нужно срочно. быстро прототип фигачим. Стиль кода сильно зависит от времени когда нужно выкатить первую версию

Admin
ERROR: S client not available

Dmitriy
29.01.2017
16:08:40
но как бы... в этом случае разделение на маленькие объектики только профит дает
это делаю. Но тут тоже все зависит от времени, к каждой задачи нужно подходить отдельно. И уже потом думать говнокодить или нет.

Dmitriy
29.01.2017
16:09:42
Dmitriy, Нельзя ругаться! [Предупреждений 3/5]
Да блин. это не плохое слово. это же IT чат.

Sergey
29.01.2017
16:10:30
это делаю. Но тут тоже все зависит от времени, к каждой задачи нужно подходить отдельно. И уже потом думать говнокодить или нет.
потому повторюсь, если у тебя нормально настроена IDE и ты ей пользуешься не как блокнотом, то как бы время особо не бернится

более того, даже если ты пишешь прототип, хотя бы 5 минут линших потратить на именование вещей сэкономит тебе потом минут 15 на чтение кода.

Dmitriy
29.01.2017
16:13:21
Именование то не проблема. Про г*окод я имею ввиду. Какую-ту фигню в модель засунуть(хотя она там не нужна). Конечно IDE помогает здорого с шаблонами.

Sergey
29.01.2017
16:13:47
> Какую-ту фигню в модель засунуть(хотя она там не нужна). не ну у меня например в текущем проекте безумные сроки

и потому говнишка тоже хватает

но в целом тупо за счет того что есть дробление введение человека в проект занимает не так много времени

буквально недели две назад сажал нового чувака, он вкурил что где за 2 дня

Dmitriy
29.01.2017
16:15:12
Напимер была задача отправлять данные в 3х местах на сервер. Сделать нужно было прям сейчас. Я тупо копипастом вставил и не парился. Но я не чисто разрабатываю продукт, у меня еще много административной работы. Мне проще было копипастнуть 3 раза, а уже дома спокойно вынести это в норм классы.

Google
Sergey
29.01.2017
16:17:41
не норм

например есть такая проблема среди разработчиков которые не хотят писать говнокод как преждевременная оптимизация

ModerBot
29.01.2017
16:18:01
Sergey был заблокирован за мат [5/5]…не хотят писать [говно]код как преждевременая оптимизация

Aleksandr
29.01.2017
16:21:19
Жестковатый бот )

Почистите регекспы

Алексей
29.01.2017
16:54:52
Пойду-ка лучше в конфу типа @symfony_php, где нет упоротого бота. Пользы от него никакой, один вред. Всем успехов.

ModerBot
29.01.2017
16:58:07
Привет, Yet Another Stats! Пожалуйста соблюдай правила и не ругайся /help@AngryModerBot

Salavat
29.01.2017
18:42:55
Ну вот и кому я ответил.

Dmitriy
29.01.2017
18:46:06
Мы тебя слушаем, не переживай

Salavat
29.01.2017
19:19:17
Да я к тому, что бот банит не тех

ModerBot
29.01.2017
19:19:40
Да я к тому, что бот банит не тех
Dmitriy Начал голосование за бан Salavat Причина: Да я к тому, что бот банит не тех Чтобы выгнать нужно больше 70%, сейчас 67

Salavat
29.01.2017
19:20:05
))) я увидел твое сообщение )

Dmitriy
29.01.2017
19:20:14
ну вот =(

ModerBot
29.01.2017
19:27:48
Хэльго проголосовал Да

Nick проголосовал Нет

f4rt~ проголосовал Да

Привет, f4rt~! Пожалуйста соблюдай правила и не ругайся /help@AngryModerBot

f4rt~
29.01.2017
19:38:04
говнокод

ModerBot
29.01.2017
19:38:04
говнокод
f4rt~, Нельзя ругаться! [Предупреждений 1/5]

Страница 66 из 138