
Arky
04.10.2018
07:54:46

da horsie
04.10.2018
07:54:59

Dmitry
04.10.2018
07:55:26

Google

Dmitry
04.10.2018
07:57:53
бизнес должно волновать, что взяли стажера в компанию, где лиды не знают и не умеют быстро довести стажера до уровня джуна… вот что должно его волновать

F01134H
04.10.2018
07:58:21
быстро - понятие растяжимое)

Roman
04.10.2018
07:59:42

F01134H
04.10.2018
07:59:47
как и джун

Roman
04.10.2018
07:59:54
альтернативы тоже не бесплатные

Dmitry
04.10.2018
08:00:15
быстро - понятие вполне переводимое в деньги, там в общем не сложная математика разницы зарплат, затрат на обучение (зарплаты лидов) повышенный рейт возврата задач

F01134H
04.10.2018
08:01:14

Bohdan
04.10.2018
08:06:52

Maksim
04.10.2018
08:08:30
а ещё они выветриваются, если не применяешь)

Dmitry
04.10.2018
08:09:08
а как это противоречит… когда ткнули “учи” оно и выветривается…. а когда сам - как раз пробуешь, ищешь, применяешь

Bohdan
04.10.2018
08:12:15

Google

Alexander
04.10.2018
08:14:04
всем привет, подскажите пожалуйста, есть некий файл настроек в котором прописано что-то типа
protected $classMap = [
'aggregateEvents' => 'Project\App\Console\AggregateEvents',
'closeEvents' => 'Project\App\Console\CloseEvents',
я хочу сделать так
protected $classMap = [
'aggregateEvents' => \Project\App\Console\AggregateEvents::class,
'closeEvents' => \Project\App\Console\CloseEvents::class,
у меня вопрос как это отразится на скорости, оптимально ли писать так как я хочу, когда происходит поиск имени класса, на стадии компиляции или когда, если можно дайте ссылку где про это почитать

Maksim
04.10.2018
08:19:17
херь какая-то) что вопрос, что код.
но да ладно: второй вариант "оптимален" на сколько это возможно в данном случае.
зачем $classMap защищённая переменная, а не приватная константа - тоже ниясна.


Dmitry
04.10.2018
08:21:01
а куда применяешь, когда сам?)
обычно когда сам учишь, то находишь примеры, практику
многие, думаю, вообще учатся по чужому коду и только потом по статьям и книжкам
всем привет, подскажите пожалуйста, есть некий файл настроек в котором прописано что-то типа
protected $classMap = [
'aggregateEvents' => 'Project\App\Console\AggregateEvents',
'closeEvents' => 'Project\App\Console\CloseEvents',
я хочу сделать так
protected $classMap = [
'aggregateEvents' => \Project\App\Console\AggregateEvents::class,
'closeEvents' => \Project\App\Console\CloseEvents::class,
у меня вопрос как это отразится на скорости, оптимально ли писать так как я хочу, когда происходит поиск имени класса, на стадии компиляции или когда, если можно дайте ссылку где про это почитать
> у меня вопрос как это отразится на скорости
на 26

Maksim
04.10.2018
08:21:56
ну и если докапываться до буковок AggregateEvents, то не понятно почему кто-то из-вне знает чё там у агрегата за эвенты

Bohdan
04.10.2018
08:23:06

dypa
04.10.2018
08:23:57

Alexander
04.10.2018
08:24:14

Dmitry
04.10.2018
08:24:48
и что… отделение зерен происходит со временем… и в итоге понимаешь, зачем вообще отделять нужно
а то наприходят всякие “нужно все переписать по принциам _имя_принципов_” - “зачем” - “ну так все делают, так правильно”

Maksim
04.10.2018
08:24:55
это не имеет ни разницы, ни влияния
и, да, тебе явно не нужен этот фреймворк)

Alexander
04.10.2018
08:26:02

Maksim
04.10.2018
08:26:16

Dmitry
04.10.2018
08:26:17

Shmaltorhbooks
04.10.2018
08:27:10

Bohdan
04.10.2018
08:27:13

Shmaltorhbooks
04.10.2018
08:27:23
версия с ::class более читабельная, как по мне

Alexander
04.10.2018
08:27:27

Shmaltorhbooks
04.10.2018
08:27:51
а разница во времени формирования двух строк длиной 30 символов?)

Google

Dmitry
04.10.2018
08:28:02

Maksim
04.10.2018
08:28:23
экономия на спичках
нет там никакой экономии) просто меньше буковок пишешь)
ну и инструменты рефакторинга работают)

Vitaliy
04.10.2018
08:28:30
обычно как бы пишут $entity->isSatisfiedBy($specification). а потому геттеры не нужны тут и это всецело обязанность сущности
Может кто-то пояснить как это работает или хотя бы пнуть в нужном направлении?
Все примеры спецификаций, которые смог нагуглить, используют обратный подход - сущность передается в спеку. Там все понятно, у спеки есть метод isSatisfiedBy(Entity $entity): bool и спека сама дергает через геттеры интересующие поля и принимает решение.
Но как в примере от @fes0r сущность взаимодействует со спекой, учитывая, что у спеки должен быть публичный интерфейс? Как сущность должна понять какие поля хочет чекнуть спека?

Dmitry
04.10.2018
08:28:31

Bohdan
04.10.2018
08:29:27

Dmitry
04.10.2018
08:30:05
достаточно умения задавать вопросы и желания самому провести ресерч предварительный, что бы... знать, что и как спрашивать ?

Maksim
04.10.2018
08:30:42

Dmitry
04.10.2018
08:30:56
все, кто стал сеньором ?

Maksim
04.10.2018
08:31:02
ой ли)

Dmitry
04.10.2018
08:31:19
ну по духу, а не по должности в компании “рога и копыта” ?

Alexander
04.10.2018
08:31:58
версия с ::class более читабельная, как по мне
я понимаю что читабельнее и красивее,
Максим, ну причем тут фреймворк, это просто пример, ну ладно пусть будет константа
вопрос в другом, есть массив классов, пусть их будет 100-200 штук, 1 случай они прописаны как строки, 2 как ::class
к примеру в одной операции я использую 5 классов из этого списка, как работает интерпретатор php, будет ли он сразу искать имена для всех 100-200 классов или только для 5 которые я конкретно использую

Dmitry
04.10.2018
08:32:30
Вот упорный…

Maksim
04.10.2018
08:32:47

Dmitry
04.10.2018
08:32:53
Менеджер наверное, пишет много, а сделать вывод не может ?

Maksim
04.10.2018
08:33:01
я понимаю что читабельнее и красивее,
Максим, ну причем тут фреймворк, это просто пример, ну ладно пусть будет константа
вопрос в другом, есть массив классов, пусть их будет 100-200 штук, 1 случай они прописаны как строки, 2 как ::class
к примеру в одной операции я использую 5 классов из этого списка, как работает интерпретатор php, будет ли он сразу искать имена для всех 100-200 классов или только для 5 которые я конкретно использую
пхп ничего не ищет. А count ничё не считает.
с count такой тонкий намёк...)


Dmitry
04.10.2018
08:34:44
я понимаю что читабельнее и красивее,
Максим, ну причем тут фреймворк, это просто пример, ну ладно пусть будет константа
вопрос в другом, есть массив классов, пусть их будет 100-200 штук, 1 случай они прописаны как строки, 2 как ::class
к примеру в одной операции я использую 5 классов из этого списка, как работает интерпретатор php, будет ли он сразу искать имена для всех 100-200 классов или только для 5 которые я конкретно использую
Команду, которую я тебе дал - выполнил?

Alexander
04.10.2018
08:34:53
пхп ничего не ищет. А count ничё не считает.
вот скажи мне для чего вы сидите в этом чате, я пришел с конкретным вопросом, хочу получить помощь в сообществе, а вы только сидите и язвите, отправляете в гугл, хотя я более уверен, что эта тема вам совершенно неизвестна!

Maksim
04.10.2018
08:35:24
к тому же, Дмитрий вполне показал тебе разницу наглядно :)

Google

Ivan
04.10.2018
08:37:04
Кажется, в этом чате сидят люди не для того, чтобы очевидное обсуждать... Для этого есть тостер

Evgeniy
04.10.2018
08:38:38
дай тут людям только про идемпотентность затереть или grasp, solid, event sourcing, ddd, хоть что лижбы не писать код

Alexander
04.10.2018
08:38:40
ну то есть вы считате что echo \sdfgds\fdsgds\sgdsfg::class; отработает НЕ медленнее чем echo 'sdfgds\fdsgds\sgdsfg';

Evgeniy
04.10.2018
08:39:03

Dmitry
04.10.2018
08:39:09
разница скорости света в вакуме или в оптоволокне для оценки погрешности в задачах расчета скорости улитки несомненно очень важна

Evgeniy
04.10.2018
08:39:13
если тебе важна скорость то нахера было выбирать пхп ?)

Alexander
04.10.2018
08:39:33

Dmitry
04.10.2018
08:39:43

Evgeniy
04.10.2018
08:39:46
оптимизируй то что создает проблемы, а так получается ''прежде временная оптимизация ...' (с.) Кнут

Ivan
04.10.2018
08:40:27

Evgeniy
04.10.2018
08:40:29
я бы вот не был уверен что отработает быстрей а что медленней
особенно учитывая что у разных версий пхп свои внутренности и свои нюансы

Maksim
04.10.2018
08:40:56
очередной гениальный оптимизатор, меняющий sizeof на count, а двойные ковычки на одинарные) мне казалось, это уже давно вышло из моды, но нет)

Ivan
04.10.2018
08:41:27
Не, я понимаю еще \ перед count ставить...

Shmaltorhbooks
04.10.2018
08:41:36

Evgeniy
04.10.2018
08:41:47
именно из-за этого я и задал этот вопрос
а люди тут пытаются сказать следующее:
что то преимущество скорости что ты получишь не сравниться с усложнением поддержки кода
и вопросы оптимизации начинают решать с поиска бутылочного горлышка а не просто чтобы было.
я надеюсь вполне вежливо и понятно объянсил

Maksim
04.10.2018
08:42:21

Ivan
04.10.2018
08:42:45

Alexander
04.10.2018
08:43:09
медленнее отработает
вот теперь продолжим далее развивать тему, есть массив из 1000 таких классов, в скрипте я вызвал имя только 1 класса,
Вопрос: будет ли PHP интепретатор искать имена для 1000 классов или только найдет для того который я использую, а остальные не затронет

Google

Shmaltorhbooks
04.10.2018
08:43:23
выполни его в консоли и поймешь, что при ::class пхп НЕ ищет никаких классов

Ivan
04.10.2018
08:43:41

Shmaltorhbooks
04.10.2018
08:43:44
он просто формирует строку

Maksim
04.10.2018
08:43:54
он никак понять не может, что пхп ничё не будет искать...

Evgeniy
04.10.2018
08:43:57

Dmitry
04.10.2018
08:44:13

Ivan
04.10.2018
08:44:46

Shmaltorhbooks
04.10.2018
08:44:56
скажи, в какой момент времени оно искало класс AlexanderGrigorev?
и где оно его нашло?
тупо строка лепится и всё

Dmitry
04.10.2018
08:45:54

Alexander
04.10.2018
08:46:50

Ivan
04.10.2018
08:47:18
А можно уж совсем просто?
http://php.net/manual/ru/language.oop5.basic.php
Замечание:
Разрешение имен класса с использованием ::class происходит на этапе компиляции. Это означает, что на момент создания строки с именем класса автозагрузки класса не происходит. Как следствие, имена классов раскрываются, даже если класс не существует. Ошибка в этом случае не выдается.
Я просто читал весь тред и не мог понять - автор вопроса доку нагло игнорирует?

Shmaltorhbooks
04.10.2018
08:48:00
пообмазываются строковыми оптимизациями на 10 букв, а потом запросы в базу циклом хуячат

Maksim
04.10.2018
08:48:05
ну и если ещё проще, то есть опкеш, который до нуля сведёт аще всё.

Dmitry
04.10.2018
08:48:06
прям по живому режешь, нелья же так ?

Evgeniy
04.10.2018
08:48:07