@oop_ru

Страница 724 из 785
Denis
26.08.2018
17:26:05
Что вам ещё надо

Я хз кто такой науменко но обычно всегда приводят пример с деньгами, типо купюра при оплате и купюра как улика
Да бросьте вы эти примеры из реального мира, они не работают. Примеры из реального мира диктуют что надо квадрат от прямоугольника наследовать. VO иммутабельны и следовательно не имеют своей жизни, это всё что о них надо помнить. А так они могут иметь самые разные интересные свойства, даже быть моноидом, никто не запрещает

Alex
26.08.2018
22:42:52
Почитал и чёт вспомнил как в dbGeeks пару дней назад чувак задавал умные вопросы, а потом оказалось, что он не догадывался что тип string в мускуле может хранить не только буквы но и другие знаки в том числе и цифры ? Доброй всем ночи! Иммутабельной и стэйтлесс ?

Art
27.08.2018
01:05:05
Почему человеческий мозг способен анализировать изображение(знание и дедукция о предметах в этом мире и их физика и поведение, все это заложенно внутри) в fullHd999K в больших объемах, принимать решения и реагировать по разному самостоятельно, быстрее компа, но при этом сложение простых чисел может происходить долго, либо какие-то другие операции по типу продумывание на перед и сохранение предыдущих решений, как в шахматах. Разный кеш используется в мозгу или че?)

Google
Art
27.08.2018
01:08:13
При этом быстрая часть это неосознанная часть над которой даже задумываться не приходится просто данные о предметах уже есть. Или та же интуиция когда что то само решается и ответ в голове

О, правое и левое полушарие же есть. Но все равно не понятно почему такой мощный аппарат мы не можем использовать на всю мощность. Хотя мб левое полушарие это тупо быстрая база данных со всеми знаниями. А правое процессор

Denis
27.08.2018
01:37:57
Мы используем на всю мощность его :) Просто логическое мышление у нас медленное

Префронтальная кора отвечает за анализирование и восприятие

Она из абсолютно новой на первый взгляд картинки делает общий случай, а какие действия надо предпринять на общий случай у нас сохранены, врождённые и приобретённые инстинкты так сказать

То что у тебя fullhd9999k так это просто потому что ты это не через зрение получаешь

Когда кудахтер выводит картинку на монитор то он рисует её из некого своего двоичного представления(иными словами перегоняет одно представление в другое руководствуясь правилами), как ты бы рисовал рукой задуманное на холсте, и ты бы не нарисовал её так четко и так быстро как это делает машина

При этом быстрая часть это неосознанная часть над которой даже задумываться не приходится просто данные о предметах уже есть. Или та же интуиция когда что то само решается и ответ в голове
На самом деле просто мозг эволюционно очень хреново устроен. У него есть гипоталамус-гипофизная система, которая регулирует сердце, дыхание, половое, пищевое поведение, поддерживает гомеостаз, она очень очень древняя, это первая ЦНС, была ещё у динозавров. Потом были млекопитающие, которые добавили поверх этого всего лимбическую систему, как раз таки эмоции, социальное поведение, у млекопитающих уже можно начать замечать признаки того что всё вместе не всегда хорошо работает, те же депрессии у них бывают. Ну а человек имеет ещё огромный кусок нейронов сверху, в основном состоящий из префронтальной коры, которая как раз есть наше сознание, наше логическое мышление(включая арифметику). Ну и вот это всё дело пытается вместе жить являясь очень разными сущностями. Наша логика борется или оправдывает эмоции, тем самым порождая новые(одни сайд эффекты, да) , а эмоции уже сильно способны повлиять на ядро. Если ты испытываешь страх, то гипоталамус это отлавливает, даёт сигнал гипофизу делать гормоны(АКТГ), гормоны долетают до надпочечников, надпочечники начинают делать кортизол с адреналином, физиологически ты становишься быстрее, а префронтальная кора отвечающая за логику переходит в режим быстрого принятия решений либо всё вообще пускается на инстинкты(тут такой огромный круг сайд эффектов что знали бы мы досконально как че куда у людей бы не было проблем)

Так что пацаны, то что у нас в коде костыли это не костыли по сути, костыли это наши с вами мозги

Aleh
27.08.2018
06:58:14
#ооппознавательный

Muchacho
27.08.2018
08:28:24
На самом деле просто мозг эволюционно очень хреново устроен. У него есть гипоталамус-гипофизная система, которая регулирует сердце, дыхание, половое, пищевое поведение, поддерживает гомеостаз, она очень очень древняя, это первая ЦНС, была ещё у динозавров. Потом были млекопитающие, которые добавили поверх этого всего лимбическую систему, как раз таки эмоции, социальное поведение, у млекопитающих уже можно начать замечать признаки того что всё вместе не всегда хорошо работает, те же депрессии у них бывают. Ну а человек имеет ещё огромный кусок нейронов сверху, в основном состоящий из префронтальной коры, которая как раз есть наше сознание, наше логическое мышление(включая арифметику). Ну и вот это всё дело пытается вместе жить являясь очень разными сущностями. Наша логика борется или оправдывает эмоции, тем самым порождая новые(одни сайд эффекты, да) , а эмоции уже сильно способны повлиять на ядро. Если ты испытываешь страх, то гипоталамус это отлавливает, даёт сигнал гипофизу делать гормоны(АКТГ), гормоны долетают до надпочечников, надпочечники начинают делать кортизол с адреналином, физиологически ты становишься быстрее, а префронтальная кора отвечающая за логику переходит в режим быстрого принятия решений либо всё вообще пускается на инстинкты(тут такой огромный круг сайд эффектов что знали бы мы досконально как че куда у людей бы не было проблем)
откуда такие познания?)

Google
Alex
27.08.2018
10:16:12
откуда такие познания?)
это известная палеоантрапология вроде как. все из открытых источников можно узнать.

Arky
27.08.2018
10:49:41
На самом деле просто мозг эволюционно очень хреново устроен. У него есть гипоталамус-гипофизная система, которая регулирует сердце, дыхание, половое, пищевое поведение, поддерживает гомеостаз, она очень очень древняя, это первая ЦНС, была ещё у динозавров. Потом были млекопитающие, которые добавили поверх этого всего лимбическую систему, как раз таки эмоции, социальное поведение, у млекопитающих уже можно начать замечать признаки того что всё вместе не всегда хорошо работает, те же депрессии у них бывают. Ну а человек имеет ещё огромный кусок нейронов сверху, в основном состоящий из префронтальной коры, которая как раз есть наше сознание, наше логическое мышление(включая арифметику). Ну и вот это всё дело пытается вместе жить являясь очень разными сущностями. Наша логика борется или оправдывает эмоции, тем самым порождая новые(одни сайд эффекты, да) , а эмоции уже сильно способны повлиять на ядро. Если ты испытываешь страх, то гипоталамус это отлавливает, даёт сигнал гипофизу делать гормоны(АКТГ), гормоны долетают до надпочечников, надпочечники начинают делать кортизол с адреналином, физиологически ты становишься быстрее, а префронтальная кора отвечающая за логику переходит в режим быстрого принятия решений либо всё вообще пускается на инстинкты(тут такой огромный круг сайд эффектов что знали бы мы досконально как че куда у людей бы не было проблем)
кортизол всегда делается?

Dmitry
27.08.2018
12:35:24
ну и он инвестирует в это сильно больше времени чем мы)) p.s. Я не согласен с большей частью того о чем говорит Егор но по своим причинам, но я считаю что бесполезные префиксы ненужны
Не понятно с первого взгляда, что есть что: obj.name() obj.ban() obj.active() obj.draft() А так понятнее с первого взгляда: obj.getName() obj.hasBan() obj.isActive() obj.draft() И логично применять по назначению: print obj.getName(); if (obj.hasBan()) { ... } if (obj.isActive()) { ... } obj.draft(); Проблема возникает когда вместо: if (obj.isActive()) { ... } пишут: if (obj.getStatus() == Obj.STATUS_BAN) { ... } Но даже без префиксов: if (obj.status() == Obj.STATUS_BAN) { ... } этот код с такой же проблемой инкапсуляции и останется. Так что не в префиксах дело.

illiatshurotshka❄️
27.08.2018
12:46:32
obj.name obj.banned obj.active obj.draft() или obj.banned? и obj.active? если язык разрешает

Sergey
27.08.2018
12:47:10
простой способ ограничить количество аргументов в сообщении на чтение)

Dmitry
27.08.2018
13:04:18
первый пример некорректный. Суть не в том что бы имена метода стали существительными а втом, что бы они выражали то что делают. name() вполне себе норм, а вот ban() это скорее действие нежели hasBan()
Тогда пример покорректней со специально одинаковым словом: obj.draft() obj.draft() obj.draft() obj.draft() vs obj.getDraft(): Draft obj.hasDraft(): bool obj.isDraft(): bool obj.draft(): void

Sergey
27.08.2018
13:07:39
Тогда пример покорректней со специально одинаковым словом: obj.draft() obj.draft() obj.draft() obj.draft() vs obj.getDraft(): Draft obj.hasDraft(): bool obj.isDraft(): bool obj.draft(): void
ты же понимаешь что пример притянут зауши, ну и префикс get не запрещен законом) главное что бы небыло конкеншенов типа "называй метод с get". Если с точки зрения имени get там к месту - почему бы нет. Но getDraft() - я сходу не могу предложить зачем мне такое

Sergey
27.08.2018
13:16:13
и зачем нужен isDraft и как он юзается?)

и кто такой obj

Dmitry
27.08.2018
13:19:36
ты же понимаешь что пример притянут зауши, ну и префикс get не запрещен законом) главное что бы небыло конкеншенов типа "называй метод с get". Если с точки зрения имени get там к месту - почему бы нет. Но getDraft() - я сходу не могу предложить зачем мне такое
Так что по мне если это просто DTO, где абсолютно все методы являются геттерами, то префиксы лишние. Если же это богатая сущность, где может быть геттер isDraft() и модификатор draft(), то удобнее с префиксами.

Sergey
27.08.2018
13:20:54
Так что по мне если это просто DTO, где абсолютно все методы являются геттерами, то префиксы лишние. Если же это богатая сущность, где может быть геттер isDraft() и модификатор draft(), то удобнее с префиксами.
и мы начинаем входить в зону комромисов ибо геттеров (в отличии от DTO, хотя там можно просто публичные поля) в сущностях быть в целом не должно, могут быть какие-то query методы которые могут чето посчитать и вернуть и т.д. Но это не get${SomeProp}

но! поскольку жесткое разделение модели на чтение и запись обычно не практикуется и все пихают свои сущности в UI - то да появляются геттеры

и да, речь и hasSomething или isSomething небыло, хотя тоже еще вопрос как эти методы используются и нельзя ли от них избавиться за счет полиморфизма

в конкретном примере который привел Егор вариант метода content вполне норм и не требует дополнительных префиксов

ivan
27.08.2018
13:25:20
Вопрос: зачем мне здесь get ?

Google
Sergey
27.08.2018
13:27:55
Вопрос: зачем мне здесь get ?
а зачем тебе authorized в UserInterface?)

Denis
27.08.2018
13:27:55
А is это уже запашок частенько, ага

F01134H
27.08.2018
13:28:40
цель названия метода - что бы он был понятным

а не что бы он был как можно короче

ivan
27.08.2018
13:29:33
а зачем тебе authorized в UserInterface?)
Authorization is the process of verifying that you have access to something $user->authorized(Ruless::DELETE_IMAGE)

Sergey
27.08.2018
13:29:37
а еще единый язык можно вспомнить) но это уже совсем другая история

Authorization is the process of verifying that you have access to something $user->authorized(Ruless::DELETE_IMAGE)
понял, но я бы это у сессии проверял а не у юзера. Иногда юзер один а сессии могут быть разными

Sergey
27.08.2018
13:31:21
нихуя непонятно
ну ты типа скоуп или имя пермишена туда передаешь а он тебе говорит можно или нет

F01134H
27.08.2018
13:32:31
но ведь authorized() это уже совершенное действие

ivan
27.08.2018
13:32:33
нихуя непонятно
а как лучше? $user->isAuthorizedToAccess(RuleIds::DELETE_IMAGE) ?

F01134H
27.08.2018
13:32:56
т.е. аргументы по логике английского языка оно не должно включать

Sergey
27.08.2018
13:33:15
ну меня конкретно то что это юзер решает а не его сессия

F01134H
27.08.2018
13:33:18
Bohdan
27.08.2018
13:34:50
$user->isGranted(...)
$user->can(...)

Sergey
27.08.2018
13:35:38
мне тоже can нравится больше

ivan
27.08.2018
13:35:39
Ок. А из uid зачем здесь get ?

Google
ivan
27.08.2018
13:35:46
Sergey
27.08.2018
13:36:01
Ок. А из uid зачем здесь get ?
не нужен, мне еще нравится вариант Марко - asId()

illiatshurotshka❄️
27.08.2018
13:37:06
Вот вполне реальный, а не притянутый: obj.draft() obj.draft() vs obj.isDraft(): bool obj.draft(): void
obj.drafted: Bool obj.draft(): () obj.asDraft(): Draft // иммутабельный ”draft()”

Admin
ERROR: S client not available

Bohdan
27.08.2018
13:37:11
мне тоже can нравится больше
классика - писать код так ,чтобы его можно было читать просто как английский

ivan
27.08.2018
13:37:33
ну меня конкретно то что это юзер решает а не его сессия
Пользователи например хранятся в базе. И именно в них выставлены галочки - что они могут делать. Почему это должно быть в сессии. Мы обращаемся к пользователя и говорим - у тебя есть такая галочка? :) (пользователя получаем на основе сессии)

ivan
27.08.2018
13:40:11
ну это уже фичи. мне не надо таких фишек)

Sergey
27.08.2018
13:40:23
а мне не хочется переделывать)

я уже нахлебался с этими $user->isAdmin())))

твой вариант хотя бы не будет таким болезненным

ivan
27.08.2018
13:44:16
я уже нахлебался с этими $user->isAdmin())))
меня беспокоит количество методов которые появляются в ключевых объектах. isAdmin, isDiabled, isFraudster + еще 10 )

Sergey
27.08.2018
13:44:29
правильно беспокоит

а еще это тестировать нереально

нелюблю суффиксы Interface и Exception

Dmitry
27.08.2018
13:46:19
но! поскольку жесткое разделение модели на чтение и запись обычно не практикуется и все пихают свои сущности в UI - то да появляются геттеры
Да, в этом кейсе со смешанным UI проблемы с геттерами и связями и проявляется. А чистой доменной сущности вообще публичные геттеры get* и is* не нужны.

ivan
27.08.2018
13:46:20
что скажешь на счет этого интерфейса?

F01134H
27.08.2018
13:46:47
как всегда, в реальности все немного иначе чем в фантазиях

Google
Adel
27.08.2018
13:47:07
что скажешь на счет этого интерфейса?
скажу, что тебе стоит начать пользоваться пастебином

Артур Евгеньевич
27.08.2018
13:47:26
к сожалению некоторые пакеты обязывают юзать get и set, например в той же симфе
Можно захуяривать адаптеры или фасады перед пакетами которые не нравятся

F01134H
27.08.2018
13:48:00
ivan
27.08.2018
13:48:02
скажу, что тебе стоит начать пользоваться пастебином
https://github.com/funivan/gallery/blob/master/src/Framework/Auth/AuthComponentInterface.php )) сейчас меня здесь растерзают)

Sergey
27.08.2018
13:48:26
к сожалению некоторые пакеты обязывают юзать get и set, например в той же симфе
единственное место где тебя обязывают юзают гет и сет - UserInterface который.... внезапно можно не юзать в домене

Артур Евгеньевич
27.08.2018
13:48:44
F01134H
27.08.2018
13:49:25
как раз framework independence достигнем))
на каждый пакет охуеешь пилить адаптеры

ivan
27.08.2018
13:49:30
Adel
27.08.2018
13:49:49
ну ок. Будет User and UserImpl )
это ненамного лучше

Страница 724 из 785