
Sergey
10.10.2017
07:46:06

Andrey
10.10.2017
07:46:33
какой прирост дадут -10 строк?)
сомневаюсь что все взлетит))
Борис, любой кто имеет доступ к коду может хакнуть оч просто: удалить public=false))) но у нас была цель чтоб человек задумался нафига это там стоит и спросил у кого-нибудь почему так и что делать с этим

Google

Roman
10.10.2017
07:48:25
а tags: [] - обезательно писать для сервисов, или ето как альтернатива доступа (загрузки) сервиса?

Виктор
10.10.2017
07:48:42
не обязательно
Если не завязана какая то логика tags

Andrey
10.10.2017
07:50:46
По поводу пабликов еще вспомнил: у доктрины некоторые сервисы сделаны непубличными специально чтоб никто их не дергал напрямую, мимо всяких экранизаторов и очищаторов входных данных, тем самым отстрелив себе колено
В тех сервисах, где так сделать не удалось, стоит док @internal , что по назначению - то же самое: предостеречь

Roman
10.10.2017
07:52:04
конешно, в етом есть смимл
а у кого то есть пример, где можно посмотреть на проект где будет 5-10 страниц с бест-практиксами Symfony
на Laravel я встречал такие...

Andrey
10.10.2017
07:53:16
есть мини-книжечка

Sergey
10.10.2017
07:54:03

Andrey
10.10.2017
07:54:03
"1 год с Symfony"
аа, такой пример))

Roman
10.10.2017
07:54:27
спасибо за все)

Google

Andrey
10.10.2017
07:55:15
лучше и то и другое посмотри, могут появиться вопросы почему в демке именно так, лучше разобраться чем просто по шаблону фигачить

Roman
10.10.2017
07:55:18
на 4 symfony еще опасно писать?

Andrey
10.10.2017
07:55:29
у меня 4, код в презервативе))

Roman
10.10.2017
07:55:35
нет я читаю доку само-собой
))

Andrey
10.10.2017
07:55:45
полет норм
правда они там чет зафорсили свои прибамбасы всякие вроде авто-вайринга, автогенерации роутов и прочего, я зассал и выпилил все это, тк не знаю как оно работает

Aleh
10.10.2017
07:57:32
Выпилил autowire? O.o

Andrey
10.10.2017
07:58:16
отключил)

Aleh
10.10.2017
07:58:29
Зачем?

Andrey
10.10.2017
07:58:43
у меня есть 2 сервиса одного класса с разными аргументами
мне нужно точно знать какой он запихнет
и эта ситуация повсеместно

Sergey
10.10.2017
07:59:40
какой прирост дадут -10 строк?)
если у меня в приложении на части сервисов включить публичность, то это сразу +10тыс строк к контейнеру и дополнительно 2 тыс методов

Andrey
10.10.2017
08:00:31
где я пытаюсь тебе рассказать о том как работает контейнер в симфони?)

Sergey
10.10.2017
08:00:45
какой прирост дадут -10 строк?)
сомневаюсь что все взлетит))

Aleh
10.10.2017
08:00:52

Andrey
10.10.2017
08:00:55
и? где тут про симфони?

Google

Andrey
10.10.2017
08:01:03
и про контейнер?
ты замерял производительность?

Sergey
10.10.2017
08:01:19
и да, быстрее от этого сборка контейнера не станет, будет наоборот медленнее ибо добавлятся сложность в компиляции
т.е ты тут рассуждаешь ни о чем?
о оптимизации
если у меня в приложении на части сервисов включить публичность, то это сразу +10тыс строк к контейнеру и дополнительно 2 тыс методов

Andrey
10.10.2017
08:02:22
не, я рассуждал о том что количество строк в классе оказывают не первостепенное влияние на производительность

Sergey
10.10.2017
08:02:53
ок, что быстрее, 1 вызов или 15?
пардон, 150

Andrey
10.10.2017
08:03:12
быстрее 1
на сколько?)
очевидно что примерно в 150раз
сколько занимает 1 вызов?

Алексей
10.10.2017
08:03:44
ну смотря какие вызовы

Andrey
10.10.2017
08:03:48
Скорее всего почти ничего
это при том, что одна ошибка, например, в работе с базой, один кривой индекс, и ты эту свою оптимизацию убьешь с трехкратным запасом
и стоит ли оно того - большой вопрос
не, конечно если сервис реально не должен быть публичным, то делать его публичным смысла нет, но я тебе говорю о том что это сомнительный способ именно оптимизации
а ты начинаешь пальцы гнуть как ты круто шаришь в автовайринге
руководствуясь твоей логикой, можно весь код пихать в одну функцию, зачем нам лишние вызовы

Google

Sergey
10.10.2017
08:10:12
если для тебя на старте приложения потерять около 20мс это нормальное дело, то можно дальше не говорить ничего

Andrey
10.10.2017
08:10:53
ты проверял или 20мс с потолка взято?
очень слабо верится что твои плюс 10к вызовов дают такой оверхед
ну серьезно, прям 20мс?

Sergey
10.10.2017
08:15:31
в нашем приложении было примерно так, около 18мс
500к строк кода только наших исходников, чтобы ты понимал размер контейнера

Jan
10.10.2017
08:17:26
Вопрос по архитектуре. Будем считать, что на проекте полноценного ORM типа Doctrine нету.
Вот есть, например, сущность Resume (резюме) и доменное событие ResumeCreated.
Можно ли считать адекватным решение записывать данные в БД по возникновению этого события? А не используя конструкции типа $db->create(new Resume), $repository->create(new Resume) и т.п.

Andrey
10.10.2017
08:19:49
Сергей, понятно, жесткач

Sergey
10.10.2017
08:21:35
даже если это 5мс, то это уже приятно, учитывая что по факту нужно прописать private: false в дефолтах сервисов

Andrey
10.10.2017
08:22:16
Ну если 5мс считай за даром можно получить то конечно, меня просто сначала удивил такой оверхед
Ян, а чем не устраивают указанные тобой конструкции?
@franzose

Jan
10.10.2017
08:27:14
@andrey_slashman, да они не то что бы не устраивают. Просто на проекте нет нормального маппера (и не прицепишь), вот думаю, как красиво всё это дело можно обставить. Чтобы и контроллеры были чистые, и сервисы, а самая грязь была поближе к БД.

Andrey
10.10.2017
08:27:42
так сделай какой-нибудь репозиторий

Aleh
10.10.2017
08:28:06

Andrey
10.10.2017
08:28:15
я бы так сделал, он пусть рулит
Ага, согласен, обычно эти затеи плохо кончаются))
но чувак говорит что не прицепишь, не знаю почему, тут уже надо понять что будет больнее для жопы, писать свой маппер или все таки прицепить существующий

Jan
10.10.2017
08:30:07
А вы точно хотите изобретать свой маппер?
Нет конечно. Но из-за того, что на проектах есть общее «ядро», в котором есть обертка для работы с БД, я не думаю, что дополнительно цеплять Доктрину и потом делать бридж, — это хорошая затея))

Aleh
10.10.2017
08:32:00
Вам просто может не стоит делать "сущности"? Вопрос в том, зачем там "ядро", зачем вам орм?

Google

Jan
10.10.2017
08:34:33
Да можно, конечно, и простыми структурками обойтись. Хотелось-то попробовать бизнес-логику в одном месте держать, чтобы она не растаскивалась по всему проекту.

Alexander
10.10.2017
09:19:42
А кто знает почему в битриксе вот такие сравнения?
if ($arParams["SEND"] == "Y")
Почему значения строкой "Y" или "N" вместо true и false ?

F01134H
10.10.2017
09:20:43
потому что это битрикс
)

Alexander
10.10.2017
09:20:56

F01134H
10.10.2017
09:21:08
Лучше просто пиши и не думай ни о чем

Valeriy
10.10.2017
09:21:29
ага и еще == вместо === со строками

Alexander
10.10.2017
09:22:47
У них даже в базе значения хранятся как строки Y и N.

Gaiaz Iusipov
10.10.2017
09:22:55
потому что
1 так короче
2 мастабируемость, помимо скрепных Д и Н можно добавить ХЗ
3 уникальный подход

F01134H
10.10.2017
09:22:57
мол и так сойдет

Valeriy
10.10.2017
09:23:44
https://i.imgur.com/rikvccU.png

$iD
10.10.2017
09:24:07
внезапно то)))
в пхп мире бы удивляться еще

F01134H
10.10.2017
09:24:56
@fes0r вот что по твоему надо юзать, == или ===?

Alexey
10.10.2017
09:27:41
=== и тайпхинтинг везде где можно

Vitalii
10.10.2017
09:28:40

Gaiaz Iusipov
10.10.2017
09:32:06
вы тут на полном серьезе == и === обсуждаете ?

Valeriy
10.10.2017
09:32:52
нет конечно мы же в шутку

F01134H
10.10.2017
09:33:29

Gaiaz Iusipov
10.10.2017
09:34:29
вопрос насущный так то
какой нафиг насущный, я долбаебов которые пишут неправильно конкретно этот кейс не встречал 100 лет уже, их в нормальные места просто не берут