
Ilya
27.11.2016
12:59:24
точку входа интерфейса D в M2 в можно сократить до одной*

Sergey
27.11.2016
12:59:31
чта?

Ilya
27.11.2016
12:59:33
а класс D в конфиг

Sergey
27.11.2016
12:59:46
чта?

Google

Ilya
27.11.2016
13:00:34
например, как тут https://github.com/videlalvaro/RabbitMqBundle#usage
consumers:
upload_picture:
connection: default
exchange_options: {name: 'upload-picture', type: direct}
queue_options: {name: 'upload-picture'}
callback: upload_picture_service
class UploadPictureConsumer implements ConsumerInterface

Sergey
27.11.2016
13:01:23
....
ты не понял проблему
судя по всему

Ilya
27.11.2016
13:02:31
>с ним идет общение через фасадный класс A
это чтоли?
это вообще надо выкинуть
меньше абстрации - меньше проблем

Serghei
27.11.2016
13:03:36
привет ребята

Sergey
27.11.2016
13:10:10
All hail SOLID!
т.е предлагаешь завести интерфейс, его заюзать и проблема ушла? так получается к модулю будет 2 точки входа при том что на разных уровнях модуля
и к примеру, в этом модуле больше не нужен вообще этот класс. но его нужно поддерживать, ибо его юзают соседи

Ilya
27.11.2016
13:12:28
версионирование

Google

Ilya
27.11.2016
13:12:53
это все надуманные проблемы

Sergey
27.11.2016
13:12:59
возможно

Ilya
27.11.2016
13:16:20
это все от переизбытка свободного времени
бизнесу-то все равно сколько точек входа в модуль
работает и не ломается - главное


Sergey
27.11.2016
13:18:32
более реальный пример, доктрина
у тебя есть EntityManger, который умеет делать и commit, и transactions, и запросы дает тебе делать. раздутый немного, но не в том вопрос. штука в том что тебе не нужно знать о коннекшенах, о UoW, о метадате, фабриках репозиториев, как он работает с конфигами, кешем и тд. у тебя есть один простой интерфейс
а вот если ты надумаешь что-то юзать в обход, окажется что этот метод стал депрекейтед и тд, или вообще поменялся
был случай с кроликом. из ядра взяли класс, унаследовали и переопределили, впихнули свои костыли для реконнектов и в один прекрасный момент у нас все сломалось. всего то обновили минорчики в либах, в ченжлогах везде было пусто т.к это интерналы. а проблема была в том что они просто захотели поменять реализацию у себя
бизнесу-то все равно сколько точек входа в модуль
если бизнесу пофиг в процедурках ты пишешь или нет, соблюдаешь ли ты SOLID, используется ли DDD и тд - зачем тогда это все?) много времени у людей и решение проблем которых нет или наверное зачем-то это все нужно?


Ilya
27.11.2016
13:22:02
чтобы не скучно совсем было
в каком-нибудь софте для станка на заводе нет же DDD
или есть?

Sergey
27.11.2016
13:23:52
в станке не факт что вообще есть какой-то софт

Ilya
27.11.2016
13:24:12
ну всякие лазерные чпу
или типа того

Sergey
27.11.2016
13:25:05
я не владею информацией что в них есть)
в ядре линухов тоже нет DDD, но они придерживаются своих принципов
ну и вопрос не в DDD, а в дизайне кода

Eight
27.11.2016
13:26:26

Sergey
27.11.2016
13:32:04
> в ядре линухов тоже нет DDD
почему ты так считаешь?) если инфраструктура и есть твой домен
хотя я честно хз)

Google

Sergey
27.11.2016
13:33:34
это все от переизбытка свободного времени
бизнесу все равно как ты делаешь дела, если только то как ты делаешь дела не вызывает убытки. Я уже приводил пример. Сделал так, пришли запланированные изменения о которых разработчик не знал, вылелось в рефакторинг + тестирование, всего командой было потрачено лишних 36 часов, по рейту $100/h для бизнеса это обошлось в лишние $3600
и это была довольно простая ситуация
а так "связанность" это пожалуй самая большая проблема... этому не учат и это понимают только после знатных факапов

Ilya
27.11.2016
13:35:23
народ на 5.3 сидит в основном

Sergey
27.11.2016
13:36:27
как сказать, если думать только о "здесть и сейчас", то далеко на проекте не уедешь дальше прототипа
лично я видел как умирали проекты из-за этого
которые приносили прибыль

Ilya
27.11.2016
13:36:51
ну так пока думаешь как сделать правильно, деньги не зарабатываешь

Sergey
27.11.2016
13:36:53
и были не в состоянии быстро внедрять что-то

Ilya
27.11.2016
13:37:20
вкрутил как есть, а дальше уже можно думать

Sergey
27.11.2016
13:38:39
>а дальше уже можно думать
когда дальше?) когда все превратилось в спагетти и распутывать все очень тяжело?

Sergey
27.11.2016
13:38:54

Ilya
27.11.2016
13:40:30
https://seld.be/notes/php-versions-stats-2016-1-edition
оказалось все лучше
5.6
May 2016
PHP 5.6 39.67%
PHP 5.5 29.56%
PHP 7.0 20.24%

Sergey
27.11.2016
13:42:02
даже если у руля сидят люди, которые были разрабами и знают что такое рефакторинг и важность технического долга, то все равно всегда важнее будет запилить побольше новых фичей, чем как ты говоришь
>а дальше уже можно думать

Ilya
27.11.2016
13:42:35
так я о полезности кода и говорю
полезности в плане денег

Google

Ilya
27.11.2016
13:43:23
stack overflow вон как убого сделан
у них там монолит

Sergey
27.11.2016
13:43:41
я не знаю как кроме как стабильностью и скоростью внедрения кода можно сделать соотношения - полезность/деньги

Ilya
27.11.2016
13:45:19
монолит быстрее сделать

Sergey
27.11.2016
13:45:29
> Ilya Gusev, [Nov 27, 2016, 16:43]:
stack overflow вон как убого сделан
> у них там монолит
но со воей задачей он справляется целиком и полностью

Sergey
27.11.2016
13:45:49
а кто говорит что монолиты это плохо?)

Sergey
27.11.2016
13:45:56
монолиты - это хорошо

Admin
ERROR: S client not available

Sergey
27.11.2016
13:46:01
ты всегда должен стараться делать монолиты

Sergey
27.11.2016
13:46:11
плохо - это спагетти, это простыня кода, нечитаемый код

Sergey
27.11.2016
13:46:18
лазанья еще хуже

Ilya
27.11.2016
13:46:19
@fes0r выше говорил
про CoreBundle
у меня много где однобандловая структура

Sergey
27.11.2016
13:46:42
ну так это best practices

Sergey
27.11.2016
13:46:42
ну это значит что ты хреново дробишь систему)

Ilya
27.11.2016
13:46:43
только я AppBundle называю

Sergey
27.11.2016
13:46:45
я тоже так делал)

Google

Sergey
27.11.2016
13:46:58
не, когда у тебя AppBundle и больше других бандлов нет - это хороший такой монолит
а когда у тебя AppBundle, userBundle, NewsBundle, ShitBundle
и все юзает что-то друг у дружки

Sergey
27.11.2016
13:47:23
спагетти, не?

Sergey
27.11.2016
13:47:23
то на самом деле это просто папки и никакого разделения там нет

Ilya
27.11.2016
13:47:32
так
погоди
а куда, например, Utils пихать
всякие микроштуки

Sergey
27.11.2016
13:48:04
> а куда, например, Utils пихать
никуда?) их не должно быть)
ну или это инфраструктура
тогда опять же должно быть конкретное название
аля
Queue
для очередей
причем обработка задач из очередей это уже другая штука
ну вот например

Sergey
27.11.2016
13:49:12
ты реально бандлы юзаешь?

Sergey
27.11.2016
13:49:13
расскажи что у тебя будет лежать в UserBundle?
ты реально бандлы юзаешь?
у меня чувак в команде есть, он тоже бандлы любит. Но у него нет CoreBundle и потому ему одному в моей команде так можно)

Sergey
27.11.2016
13:50:21
а неймсмпейсы чем не годны?

Ilya
27.11.2016
13:50:25