@oop_ru

Страница 603 из 785
Sergey
12.04.2018
10:40:18
extends RsPage
@yegor256 выступает против имиплементационного наследования. Я здесь с ним не совсем согласен с точки зрения SOLID, но это долгая история.

Functor
12.04.2018
10:41:11
Объясню почему ооп в 2к18 нинужно по одному тут @hcdev

Like
12.04.2018
10:41:48
Adel
12.04.2018
10:42:31
@yegor256 выступает против имиплементационного наследования. Я здесь с ним не совсем согласен с точки зрения SOLID, но это долгая история.
я не хочу гуглить "имимплементационного" :) это означает что наследовать только абстрактные классы?

Google
Sergey
12.04.2018
10:44:07
Объясню почему ооп в 2к18 нинужно по одному тут @hcdev
Иногда думается что в 2к18 не только ООП не нужно, но и ФП, математика, паттерны, SOLID, здравый смысл и голова на плечах. о_О

Like
12.04.2018
10:46:42
достаточно
Ща бы в 2018ом не уметь в сарказм ?

F01134H
12.04.2018
10:47:15
какой нах сарказм?

зная тебя, я бы предположил, что ты таким образом себя на админку выдвигаешь

)

Sergey
12.04.2018
10:54:53
Если тебе нужно открыть класс, чтоб что-то понять, значит ты наговнокодил. Понимание должно идти сверху вниз, а не наоборот.
Ну и че это за словоблудство? У класса всегда будут зависимости, которые придется открыть чтобы понять. Хоть тресни но от каплинга на другие модули полностью не уйдешь. И если мы имеем иерархию классов по LSP, то в качестве зависимостей использовать конкретику не выгодно никогда. А значит типами полей и аргументов методов всегда будут интерфейсы, у которых имя как правило вменяемо. Единственное исключение - т.н. Егоровы матрешки. Но там и так конкретика, от которой не уйдешь.

Mykola
12.04.2018
10:57:51
Дело не в зависимостях, а в семантике. Если у тебя код правильный, но буквы в нём кривые, то понять его сложнее. Дер

Sergey
12.04.2018
11:00:36
Дело не в зависимостях, а в семантике. Если у тебя код правильный, но буквы в нём кривые, то понять его сложнее. Дер
Так ок. Кто говорит что в коде будут все эти RsPage? Есть у вас допустим класс который работает с респонзом, по DIP следует юзать в нем тип Response, а не RsPage.

code4aman
12.04.2018
11:01:14
https://habrahabr.ru/post/353292/
Хм, новая книга дяди Боба тоже этот момент осветила: фп и =. Совпадение?

Google
code4aman
12.04.2018
11:09:08
Что за новая книга?
Чистая архитектура

Mykola
12.04.2018
11:09:44
Надо почитать

Sergey
12.04.2018
11:12:01
А так же оно будет в сетапе di
Сетап di/Егоровы пирамидки - это конкретика. Там по определению никуда от них не денешься. И камон - о чем мы спорим? Ну не нравится Rs, можно сделать PageResponse, вопрос конвеншенов. Че такого то

Mykola
12.04.2018
11:12:52
Об этом и спорим. Здравый смысл против конвеншнов

Sergey
12.04.2018
11:13:35
Об этом и спорим. Здравый смысл против конвеншнов
Нука-нука? И в чем тогда здравый смысл?

Mykola
12.04.2018
11:14:15
Закладывать оптимально информацию в сигнатуры, а не ссылаться на конвеншны

Sergey
12.04.2018
11:16:04
Закладывать оптимально информацию в сигнатуры, а не ссылаться на конвеншны
Еще раз - в сигнатурах все нормально будет. Там будут интерфейсы и базовые типы. А если под сигнатурами вы подразумеваете di конфиг, то... хм... серьезно? о_О

Mykola
12.04.2018
11:19:48
Сигнатура - это имя в первую очередь. Сигнатура класса. Она будет так или иначе где-то использована.

И лучше бы она несла какую-то информацию, а не заставляла копать код

Sergey
12.04.2018
11:22:01
Ну да. В di конфигах и будет. Либо в композиционных пирамидках если по EO. И один хрен увидев эти имена первый раз, хочешь-нехочешь а придется туда заглянуть хотя бы разок. А это значит что мы спорим исключительно о вкусовщине. Предлагаю закончить.

Я практиковал эту схему с префиксами, она не несла таких уж прям неудобств. Субъективно

Когда количество абстракций в одном джарнике вменяемо, эти префиксы быстро запоминаются. Но опять же - ничто не мешает юзать альтернативный нейминг.

Sergey
12.04.2018
11:49:21
я именно поэтому и пытался спросить. class WhoCaresAboutNamesForImplementationClasses extends Response - это нормально для тебя?
Это вполне вменяемое имя для бессмысленного класса, че? Так часто и поступают когда пишут внутри какую нибудь лабудень. О чем мы спорим опять же? Я не говорил что имя класса не имеет смысла вообще, я всего лишь сказал что с префиксами жить можно.

Adel
12.04.2018
11:50:29
Это вполне вменяемое имя для бессмысленного класса, че? Так часто и поступают когда пишут внутри какую нибудь лабудень. О чем мы спорим опять же? Я не говорил что имя класса не имеет смысла вообще, я всего лишь сказал что с префиксами жить можно.
ну ты мечешься между двумя мнениями гдето посередине и видимо считаешь это золотой серединой. Либо имя имеет значение и мы делаем правильные имена без префиксов непонятных, либо имя не имеет значения вообще, и мы называем как хотим

Adel
12.04.2018
11:51:22
Просто заменить сокращение смыслом

Google
Adel
12.04.2018
11:51:27
Rs => Response

Sergey
12.04.2018
11:51:33
PageResponse?

Adel
12.04.2018
11:51:47
or ReponsePage I don't remember

Sergey
12.04.2018
11:52:21
А если имя абстракции длинное из-за предметной области?

Adel
12.04.2018
11:52:30
просто пользы от сокращения ноль. а писать имя класса всего в двух местах

Sergey
12.04.2018
11:55:29
ну ты мечешься между двумя мнениями гдето посередине и видимо считаешь это золотой серединой. Либо имя имеет значение и мы делаем правильные имена без префиксов непонятных, либо имя не имеет значения вообще, и мы называем как хотим
Вообще не совсем корректное умозаключение имхо. Если имя имеет значение, это еще не означает что правильные имена это имена без префиксов. Это как раз и есть вкусовщина, на холивар о которой вы пытаетесь меня вывести.

Adel
12.04.2018
11:56:35
Вообще не совсем корректное умозаключение имхо. Если имя имеет значение, это еще не означает что правильные имена это имена без префиксов. Это как раз и есть вкусовщина, на холивар о которой вы пытаетесь меня вывести.
да не холивар. Rs - это абсолютно не сразу понятное слово. над которым надо думать. Заменить его Response - дело даже не 10 секунд а просто привычки правильно писать имена классов

Sergey
12.04.2018
11:59:57
да не холивар. Rs - это абсолютно не сразу понятное слово. над которым надо думать. Заменить его Response - дело даже не 10 секунд а просто привычки правильно писать имена классов
В теории все так. На практике я встречал ситуации когда отказ от префиксов приводил к длинным именам, которые муторно читать в той же EO композиции, где таких имен много. Проще сокращение запомнить.

Егор
12.04.2018
12:00:19
Согласен c @Adelf32 . Замечу, что в проекте помимо Rs есть много других неочевидных сокращений:



Like
12.04.2018
12:00:58
Rq - Request Ps - Post?

Adel
12.04.2018
12:02:00
а мне кажется это просто стиль. Человек просто любит все сокращать. писать как можно короче. с этим же связан совет удалить все пустые строки :)) я вот кстати наоборот люблю свободный стиль. с полными именами классов и везде отделяю пустыми строками логические вещи в методах.

Like
12.04.2018
12:02:28
@Adelf32 мне кажется, пхпшнику было бы проще работать с мапом, чем понять сокращения Егора ?

Like
12.04.2018
12:03:05
каким мапом?)
Вам, задротам, со всем будет просто )

А так, мы в гиксах обсуждали по этой теме с ним

Adel
12.04.2018
12:04:58
самое обидное что я не могу вспомнить :) но вроде мы говорили про явовские мапы.. и я ругался что пхпшники страшно любят массивы везде совать :)

Егор
12.04.2018
12:07:21
Rq - Request Ps - Post?
Не угадал, Ps - это pass



Google
Like
12.04.2018
12:08:00
Adel
12.04.2018
12:09:12
Квиз - угадай назначение класса Егора по его имени

Adel
12.04.2018
12:13:47
eXtended Edition

Like
12.04.2018
12:14:04
Ох блин, сильно

Ilia
12.04.2018
12:14:55
Ребят, там сокращения идут от сокращения интерфейса. На самамо деле вы должны интерфесом думать, а не классом. В классе, есть отсылка к интерфесу в виде сокращения, и пояснение для непосредственного понимания что делает этот класс.

Sergey
12.04.2018
12:31:20
Нужно в любом случае открывать файл и смотреть что там
Один раз открыв RqPage и поняв что такое Rq, второй раз открывать RqЧтототам для того чтобы понять что это реквест не придется.

Adel
12.04.2018
12:35:00
Один раз открыв RqPage и поняв что такое Rq, второй раз открывать RqЧтототам для того чтобы понять что это реквест не придется.
другой такой же товарищ решит сократить Requirement => Rq. И через некоторое время мы решим, что нужно гдето вести реестр сокращений!

Art
12.04.2018
12:37:48
зачем промисы если есть события?

andretshurotshka?❄️кде
12.04.2018
12:38:23
события не first-class значения

Sergey
12.04.2018
12:38:50
а потом придет новый человек, посмотрит на глоссарий сокращений и абстракций на трех листах, и застрелится
О да. Зашибись аргумент. Конечно проще искать эти абстракции размазанными в тонне говнокода. Это определенно менее провоцирует сюицид, чем список в какой нить HLD доке.

Art
12.04.2018
12:38:58
а стрелочные функции не делают код трудночитаемым? Это ведь приходиться обращаться к памяти и каждый раз расшифровывать закорючки

Google
Like
12.04.2018
12:40:45
Я против таких сокращений

Bohdan
12.04.2018
12:40:49
О да. Зашибись аргумент. Конечно проще искать эти абстракции размазанными в тонне говнокода. Это определенно менее провоцирует сюицид, чем список в какой нить HLD доке.
ну, укатывать аргументацию не стоит вернемся к глоссарию для сокращений проблема в том, что эти самые сокращения менее интуитивно (взглядом) понятны, чем стандартные имена (говоря про request и прочее) вести глоссарий именования - возможно, хорошая идея но сокращать все настолько - не вижу смысла лучше разделять такие штуки на уровне неймспейсов

Bohdan
12.04.2018
12:41:00
что?
я так понял, он имеет ввиду, что событие нельзя передать как аргумент, а промис можно

Like
12.04.2018
12:42:01
Я не особо понимаю какое событие

Bohdan
12.04.2018
12:42:35
Событие - then, error на запрос?
я тоже не совсем понимаю @artnv поясни

Like
12.04.2018
12:42:50
И промисы я видел только в джсе, хз что это ?

F01134H
12.04.2018
12:43:19
Like
12.04.2018
12:44:26
reactphp еще
Я на дарте

F01134H
12.04.2018
12:44:29
reactphp еще
а еще guzzle)

Bohdan
12.04.2018
12:44:59
а еще guzzle)
он ведь под капотом что-то из стека reactphp/amphp гоняет? или ошибаюсь?

Art
12.04.2018
12:44:59
я так понял, он имеет ввиду, что событие нельзя передать как аргумент, а промис можно
а куда его передавать и зачем? Вот есть центральный объект Pub/Sub через него все общаются. Удобно ведь, а там коллбек в коллбеке, тот же коллбекхелл но я так понял что ради ассинхронности. Так событиями на оборот еще лучше с ассинхронностью работать и нет лапшекода, т.к. по файлам можно разбить код

Like
12.04.2018
12:45:14
Это выше уже обсуждалось. Здесь "понятность" vs "громоздкость" - полные имена абстракций больше места занимают. И это вкусовщина.
Вкусовщина только если проект ведешь ты один А если постоянно будут новые разработчики - жусть. Имхо

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