@oop_ru

Страница 611 из 785
Ivan
19.04.2018
05:54:54
У меня на работе эстонка вордпесит

Не, просто вп это сборник говнокода

Сочувствую

Bohdan
19.04.2018
06:19:38
а как это относится к данному чату?

Google
Bohdan
19.04.2018
06:19:57
тебе, скорее всего, в @phpGeeks

ну собственно че флуд разводить не по теме чата, да?) если кто и есть - там или @prophp7

Pavel
19.04.2018
08:47:16
https://www.youtube.com/playlist?list=PLmqFxxywkatStbd9hdzVOS1hZa9dc56k4
ООП невозможно рассмвтривать в отрыве от шаблонов?

Maksim
19.04.2018
08:49:22
Pavel
19.04.2018
08:51:09
Прочита статью старую, про то что геттеры/сеттеры есть плохо, что мол это все не правильно и не ОО. Хм, а можно подробнее, почему геттеры/сеттеры есть плохо?
http://info.javarush.ru/translation/2014/12/15/%D0%93%D0%B5%D1%82%D1%82%D0%B5%D1%80%D1%8B-%D0%A1%D0%B5%D1%82%D1%82%D0%B5%D1%80%D1%8B-%D0%97%D0%BB%D0%BE-%D0%98-%D1%82%D0%BE%D1%87%D0%BA%D0%B0-.html

Roman
19.04.2018
08:52:43
Вы бы доклады его посмотрели

Чтобы понимать почему он так говорит

Pavel
19.04.2018
08:52:56
Бля лол

Не увидил что это из его статьи

Светоч ООП

Roman
19.04.2018
08:54:38
Светоч ООП
Скорее фрик

Sergey
19.04.2018
08:55:06
Скорее фрик
фрик в корошем смысле. Ну просто он избрал такой стиль донесения информации и он работает

Bohdan
19.04.2018
08:55:20
просвещение через срачики

Google
Sergey
19.04.2018
08:55:23
как минимум в половины подгорит от его изречений и часть даже пойдет разбираться

Roman
19.04.2018
08:55:42
фрик в корошем смысле. Ну просто он избрал такой стиль донесения информации и он работает
Ну он предлагает декораторами и эктив рекордами обмазываться

Adel
19.04.2018
08:56:39
ну вот конкретно эта его статья вполне себе ничего.

даже хорошая

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

Roman
19.04.2018
08:58:43
Ну вот я по Эвансу делаю. C#. И что то нет нужды геттеры выбрасывать. Они не дают возможности как то состояние объекта сломать

А без сеттеров ORMка не сможет из базы сущности прочитать

Поэтому они тоже есть, хоть и приватные

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

Pavel
19.04.2018
09:02:19
а Elegant Objects таки перевели на русский понять не могу?

Roman
19.04.2018
09:03:06
а Elegant Objects таки перевели на русский понять не могу?
Кажется нет. Но один фиг всё это с упором на явку сделано

Roman
19.04.2018
09:11:50
а что за ORM
EF Core, он в приватные сеттеры умеет, и не только в них)

Даже в приватные поля)

Adel
19.04.2018
09:12:17
эх. хочу на сишарпе опять писать :)

Roman
19.04.2018
09:13:26
Или у тебя get-only IEnumerable, который ссылается на приватную ICollection, которая на самом деле List)) И при чтении из базы он в это поле запишет перечисление, а снаружи доступ только на чтение будет)

Правда можно руками скастить IEnumerable до листа и суеты туда насувать, но за такое на код ревью надо голову откручивать

Adel
19.04.2018
09:18:04
я хочу один проект начать. и с удовольствием бы его на сишарпе делал. но разумеется инфраструктура будет линуксовой. где лучше почитать что там и как? с этим .net core... где ориентироваться... в нугете по прежнему надо все зависимости зависимостей прописывать в главном файле? :)

Maksim
19.04.2018
09:31:34
http://info.javarush.ru/translation/2014/12/15/%D0%93%D0%B5%D1%82%D1%82%D0%B5%D1%80%D1%8B-%D0%A1%D0%B5%D1%82%D1%82%D0%B5%D1%80%D1%8B-%D0%97%D0%BB%D0%BE-%D0%98-%D1%82%D0%BE%D1%87%D0%BA%D0%B0-.html
Т.е. основной посыл в том, чтобы именновать акцессоры по другому, чтобы они отражали суть процесса?

Alan
19.04.2018
09:33:45
у того, кто сумеет пройти собеседование и дороже себя продать. что именно он до этого делал - дело десятое
ну почему десятое, продавать себя конечно надо уметь, но если придется делать это каждый месяц и писать по собственному то наверное стоит поработать над чем-нибудь еще кроме умения проходить собесы)

Google
Trk
19.04.2018
09:42:59
Alan
19.04.2018
09:43:56
и если он свою работу делает лучше то пусть найдет другое место где его оценят)

Trk
19.04.2018
09:45:59
У него мысли типа такие если он реално хороший тогда его дадут денги который он заслужить везде.Но на самом деле не так бывает.Хотя я так думаю.

Alan
19.04.2018
09:47:20
ну я думаю с маленьким опытом себя продать можно в компанию где тебя не расколят на собесе и потом не расколят в ходе работы, бежать оттуда надо))

Trk
19.04.2018
09:48:08
Правилно

Я могу сказать что русские компание немного не такие хитрие на основном.Я знаю миого компание в других странах типа начинаешь разработчик Android потом от тебя просят учиться swift и потом хотят ты написал для обоих платформах.А зарплата только немного повысят и все.

Alan
19.04.2018
09:53:53
другое дело что компании может не так важен опыт, сколько другие качества, мотивация, ответственность, умение работать в команде, да много чего)

Aleh
19.04.2018
09:56:56
Т.е. основной посыл в том, чтобы именновать акцессоры по другому, чтобы они отражали суть процесса?
да, первый и очень важный шаг - именовать вещи так, чтобы было понятно менеджеру, джуну, тестировщику. Единый язык и вот это все

Adel
19.04.2018
09:59:15
Второй шаг - геттеры действительно не нужны :) там в статье не надо giveBall(): Ball там надо giveBallTo(someone): void

Aleh
19.04.2018
10:06:08
потом уже дабл-диспатчи, ивенты

Maksim
19.04.2018
10:19:10
потом уже дабл-диспатчи, ивенты
Я зеленый, можно чуть подробнее? Пожалуйста :)

Adel
19.04.2018
10:19:54
someone.takeBall(this.ball); this.ball = nothing; ну както так...

Bohdan
19.04.2018
10:20:52
Adel
19.04.2018
10:21:16
так это ж действие. не геттер

Aleh
19.04.2018
10:22:14
Bohdan
19.04.2018
10:22:17
та то я так... обычно всем просто лень писать дто для вьюшек

Roman
19.04.2018
10:45:12
Второй шаг - геттеры действительно не нужны :) там в статье не надо giveBall(): Ball там надо giveBallTo(someone): void
Окей, надо на GET /api/orders отдать список заказов. И как его туда нарисовать без геттеров?)

Adel
19.04.2018
10:45:35
ну это мы разумеется про Write модели говорили.

Google
Roman
19.04.2018
10:46:32
ну это мы разумеется про Write модели говорили.
А, то бишь на рид модели геттеры норм?)

Adel
19.04.2018
10:46:48
ну а как ты себе представляешь рид модель без геттеров?

Roman
19.04.2018
10:47:21
И не рид модель тоже никак

Ну типа агрегат то надо прочитать чтобы поменять

Adel
19.04.2018
10:48:01
агрегат сам себя поменяет

Roman
19.04.2018
10:48:11
И в зависимости от какого то состояния надо чего то сделать

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

А чтобы это состояние получить..)) внезапно нужны геттеры)

Ну в шарпе по крайней мере

Можно конечно на приватных полях сделать и вообще без геттеров, но тогда при молейшем изменении полей - надо в конфиге ОРМки не забыть это поправить, и что то мне подсказывает что шансы выстрелить себе в ногу повышаются в разы и возводятся в степень, пропорциональную количеству агрегатов

И нахер так жить тогда

Лучше уж анемичные модели чем такое садомазо

Adel
19.04.2018
10:54:03
о ужас! ты изменил поля в базе данных и придется лезть в конфиг ORM? это кошмарно...

Roman
19.04.2018
10:54:54
Ну они ж приватные, соответственно снаружи их не видно, поэтому сидишь такой стропами описываешь, грустишь.

А когда геттеры есть - то во-первых ORM’ка сама их подхватит при наличии сеттера, ну либо можно через лямбду указать свойство и конфигу к нему. Ну и при рефакторинге, оно всё прекрасно переименовывается и не доставляет никаких проблем. Вывод: геттеры нужны.

Aleh
19.04.2018
10:57:51
Roman
19.04.2018
11:01:14
зачем это состояние получать?
Простейший кейс - изменение емэйла юзера. Есть свойство у User'а как bool EmailVerified, и при изменнии мыла на отличное от исходного нам надо: - Собственно поменять мыло - Установить EmailVerified в false

То бишь чтобы мыло поменять - его надо прочитать

Google
Adel
19.04.2018
11:02:22
ну так сделай changeEmail(newEmail)

и пусть агрегат все сделает

Roman
19.04.2018
11:03:30
ну так сделай changeEmail(newEmail)
Он и так это всё сделает и это будет его метод, но в теле метода мне нужно состояние, которое я получаю из свойств (через геттер).

Sergey
19.04.2018
11:03:44
геттеры это фу

+ доменный ивент сверху что бы было по чем отправлять email

Adel
19.04.2018
11:04:29
Он и так это всё сделает и это будет его метод, но в теле метода мне нужно состояние, которое я получаю из свойств (через геттер).
почему геттер то? ты в сишарпе страшно любишь свойства... сделай приватное автосвойство и будет тебе оно как приватное поле. и все ок

Sergey
19.04.2018
11:04:36
+ генерацию токена туда же можно запихнуть

или временного пинкода

или еще чего

Roman
19.04.2018
11:05:07
геттеры это фу
Геттеры в C# выглядят примерно так public class User { public long Id { get; private set; } public string Name { get; private set; } }

Adel
19.04.2018
11:05:19
да. сделай private get

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