
Sergey
22.06.2018
10:34:41

Vitaly
22.06.2018
10:34:46

Sergey
22.06.2018
10:35:35
Нет, они тоненькие
ну то есть даже если бы они наследовались там от чего-то то в целом не велика беда

Google

Sergey
22.06.2018
10:36:49
я понимаю желание не завязываться на какого-либо клауд провайдера, понимаю когда скрепя зубами не хотят завязываться на кубер, но я не понимаю когда начинают лепить абстракции поверх базы, очередей и отказываться от специфических вещей определенной базы, только для того чтобы "вдруг мы захотим ее поменять"

Sergey
22.06.2018
10:36:57
ну то есть пойми простую мысль - symfony это http фреймворк. Контроллеры - http адаптер.... они на одном уровне. То есть нет особо смысла запариваться и там чето изолировать. Юнит тесты всеравно на них писать глупо

Sergey
22.06.2018
10:37:11
но блин, не завязываться на код фреймворка, это даже звучит стремно) что вы там собрались менять? и главное зачем?

Sergey
22.06.2018
10:37:30

Sergey
22.06.2018
10:37:41

Maksim
22.06.2018
10:39:10
за всю карьеру ни разу не видел ни полноценной смены субд, ни смены фреймворка(

Dmitriy
22.06.2018
10:39:16

ivan
22.06.2018
10:39:29
@Enleur symfony response гуд или не гуд ? :)

Vitaly
22.06.2018
10:40:14

Sergey
22.06.2018
10:40:20

Maksim
22.06.2018
10:41:16
ну с точки зрения переноса того же zend 1 -> zend2 там framework agnostic поможет, примерно, никак)
symfony -> spring следом)

Google

Maksim
22.06.2018
10:41:56
и вообще второй зенд фу-фу-бяка)

Sergey
22.06.2018
10:42:00
абсолютно никак

Sergey
22.06.2018
10:42:00
так что не уверен что это считается)

Sergey
22.06.2018
10:42:12

ivan
22.06.2018
10:42:33

Maksim
22.06.2018
10:42:35

Sergey
22.06.2018
10:42:38

Sergey
22.06.2018
10:42:44

Sergey
22.06.2018
10:42:57
и $this->json

Sergey
22.06.2018
10:43:26
я тож не люблю вообще делать new Something особенно если надо это делать много где. Например я люблю $this->json()

ivan
22.06.2018
10:44:30
у нас свои урл UrlInterface
with symfony standart response:
new RedirectResponse($url->assemble())
with our custom implementation
new AppRedirectResponse($url)

Vitaly
22.06.2018
10:44:40

F01134H
22.06.2018
10:44:42
в чем проблема абстрагироваться от фреймворка?

Sergey
22.06.2018
10:45:01

Sergey
22.06.2018
10:45:03

Vitaly
22.06.2018
10:45:21

Google

Sergey
22.06.2018
10:45:21
но если бы я писал сайтики на твиге скорее всего бы юзал, они неплохи если уметь их готовить

Sergey
22.06.2018
10:45:26

Sergey
22.06.2018
10:45:37
любая абстракция несет в себе стоимость
и когда ты вводишь новый слой абстракций - ты должен оооочень хорошо понимать зачем ты это делаешь и что это тебе дает, а так же риски
и мы конкретно тут обсуждаем "смену фреймворка" как самую тупую мотивацию это делать

Maksim
22.06.2018
10:46:55
если я сейчас подойду к директору, и скажу, что хочу захерачить надцать слоёв для того, что бы отвязаться от симфони, он меня в отпуск отправит...

Vitaly
22.06.2018
10:47:09
Я лично обсуждаю тут вот это. https://github.com/symfony/symfony/blob/master/src/Symfony/Bundle/FrameworkBundle/Controller/ControllerTrait.php#L219

Sergey
22.06.2018
10:47:27

Artem
22.06.2018
10:47:27

Sergey
22.06.2018
10:47:50

Tadeus
22.06.2018
10:47:58

Sergey
22.06.2018
10:48:08
а, как-то раз пришлось оч быстро с postgres на oracle переезжать....
сообщение то не мое - не могу его отредактировать

Tadeus
22.06.2018
10:48:40

Maksim
22.06.2018
10:48:46

ivan
22.06.2018
10:48:47
Я начал показывать недостатки кода в плане архитектуры. И основная идея это не изменение фреймворка или компонента а в плане плохого расширения.

Tadeus
22.06.2018
10:48:50
я написал и понял потом

Vitaly
22.06.2018
10:48:51
и что не так с "этим"?
Всё ок. Просто погорячился и назвал говном, то чем сам не пользуюсь в силу некоторых обостренных убеждений и предрассудков, основанных на опыте)

Google

Sergey
22.06.2018
10:49:18
типа все что выглядит как трейт должно и пахнуть как трейт?)

Bohdan
22.06.2018
10:49:43

Vitaly
22.06.2018
10:49:52

Sergey
22.06.2018
10:50:14
всеравно скорее всего говно будет где-то.

Artem
22.06.2018
10:52:10

Admin
ERROR: S client not available

Sergey
22.06.2018
10:52:32
просто так скорее всего)

ivan
22.06.2018
10:53:17
ммм..... сложна
Стандартный путь: у тебя есть интерфейс, ты его реализует когда нужно расширить базовую либу
Путь симфони: или наследуй класс и пиши затычки в коде (как в StreamResponse) или добавляй свои методы в базовый контроллер.

Vitaly
22.06.2018
10:53:22

Artem
22.06.2018
10:54:52
тут не смена субд а переписать проект
на самом деле не знаю, в общем это аргументировалось более высоким быстродействием и тем, что можно безболезненно добавлять поля (насколько я понимаю в mysql таблица на время добавления поля блокируется). Но я честно говоря не знаю, т.к. я дно-джуниор, то меня просто поставили перед фактом. Сделал бы я так сам? Фиг знает

Sergey
22.06.2018
10:55:39
и вообще все сервисы приватные, их даже не получится при желании так достать
и это как раз таки symfony way

Vitaly
22.06.2018
10:56:23

Sergey
22.06.2018
10:57:36

Sergey
22.06.2018
10:57:40
в ТВОЕМ коде container->get нет и это то что важно. остальное - детали реализации которые тебе не должны быть сильно интересны

Google

ivan
22.06.2018
10:58:26
https://github.com/symfony/symfony/blob/9dd89e014b0f0866a205e470c8d35dd1bd1129d2/src/Symfony/Bundle/FrameworkBundle/Controller/ControllerTrait.php#L222

Sergey
22.06.2018
10:59:23
учи матчасть

Sergey
22.06.2018
10:59:40
только хотел скинуть

ivan
22.06.2018
11:01:26

Sergey
22.06.2018
11:01:46
но самое важное опять же что напрямую ты им не пользуешься
ну то есть какая разница что происходит внутри если ты о зависимостях не знаешь - у тебя фасад есть над всем этим

ivan
22.06.2018
11:02:06
да понял) нужно затестить.

Sergey
22.06.2018
11:02:16
посмотри на реализацию того же метода json
он не просто в JsonResponse заворачивает

ivan
22.06.2018
11:04:04
?

Artem
22.06.2018
11:13:04
почитал про primitive obsession, возник вопрос - в какой момент нужно остановиться в оборачивании примитивов объектами? Насколько я понял - нет смысла оборачивать примитив в объект только тогда, когда не нужно ограничивать (с точки зрения логики домена) диапазон значений примитива. И даже когда не нужно ограничивать диапазон, но у примитива есть поведение, то всё равно стоит его обернуть в объект.

Sergey
22.06.2018
11:22:50
type ProviderID = string
ну то есть один из плюсов VO - большая выразительность кода. Этого можно достич частично комбинацией VO и type alise-ов

Artem
22.06.2018
11:26:34

Bohdan
22.06.2018
11:26:37

Sergey
22.06.2018
11:26:49
ну у меня тайпскрипт)

Bohdan
22.06.2018
11:27:17
ну разницы минимум ведь, убрал "=" и уже гошечка :D

Sergey
22.06.2018
11:27:23