@prophp7

Страница 85 из 1387
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, а в дизайне кода

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
ну и вопрос не в DDD, а в дизайне кода
так никто не думает об этом, потому что профита меньше, чем затраченного времени

народ на 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
народ на 5.3 сидит в основном
сейчас не 2012й год вроде

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
я не знаю как кроме как стабильностью и скоростью внедрения кода можно сделать соотношения - полезность/деньги

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
расскажи что у тебя будет лежать в UserBundle?
объекты в которые маппятся данные о пользователях и сам сервис для их получения

Страница 85 из 1387