@oop_ru

Страница 567 из 785
Roman
22.03.2018
11:26:01
очень даже может быть

Sergey
22.03.2018
11:26:48
Мне понравилась твоя мысль на докладе по SOLID у нас о том что к пилить SOLID, GRASP или еще какие умные большие буквы сходу бесмысленно. Надо к ним приходить итерационно.
я сейчас пытаюсь выстроить последовательность.... пока понимаю что вопрос связанности нужно рассматривать на самых ранних этапах.... примерно тогда же когда ты объясняешь в чем неудобство глобальных переменных

Uiiuviiw
22.03.2018
11:28:37
чтобы учить по новому нужно забыть все старое и сформулировать это самое новое. иначе выглядет как навязывание.одни кричат фп, другие ооп и спорить бесполезно

Maksim
22.03.2018
11:28:44
Глобальные переменные - это ок?)

Google
Arthur
22.03.2018
11:29:13
програмирование - это алхимия, пока что все ищут философский камень

Anton
22.03.2018
11:29:15
Глобальные переменные - это ок?)
Шикарная тема. Чтобы я без них в вордпрессе делал, даже не знаю...

Roman
22.03.2018
11:30:56
Не существует вещей которые ок или не ок, просто есть вещи использование которых оправдано лишь в очень узкой сфере =)

Dmitry
22.03.2018
11:33:51
http://bxapi.ru/src/?module_id=iblock&name=CIBlockElement::PrepareGetList

да, сейчас 2018 год, это работает до сих пор

капитализация 97 лямов у.е.

Maksim
22.03.2018
11:34:47
мои глаза...

Dmitry
22.03.2018
11:35:40
а вы тут ооп, фп... ))

Dmitriy
22.03.2018
11:35:56
зарефактори )

Bohdan
22.03.2018
11:36:02
бп, фигли

Maksim
22.03.2018
11:36:12
скок лет я венгерки не видел - не сосчитать)

Google
Bohdan
22.03.2018
11:36:23
битрикс-ориентированное программирование

Maksim
22.03.2018
11:36:42
битрикс головного мозга)

Dmitriy
22.03.2018
11:37:14
да чо вы

простая функция )

комментарии по коду ваще помогают

например //***********************GROUP BY PART**************************

и все стало ясно

Bohdan
22.03.2018
11:45:08
в линкеде вакансия пришла со строчкой "legacy code development and support"

что-то мне не нравится такое...

(лучше такой оффтоп, чем битрикс)

Maksim
22.03.2018
11:45:23
соглашайся)

Bohdan
22.03.2018
11:45:35
буду legacy web developer

Dmitriy
22.03.2018
11:46:28
Maksim
22.03.2018
11:46:44
senior legacy web developer

Bohdan
22.03.2018
11:46:58
А щас нет? )
ну не настолько же)

Sergey
22.03.2018
11:47:45
Зато честно)

Alan
22.03.2018
12:09:06
в линкеде вакансия пришла со строчкой "legacy code development and support"
разработать легаси с нуля и поддерживать ?

Ivan
22.03.2018
12:34:57
ну как бы. что написал за то и отвечай

новые проекты им подавай

Bohdan
22.03.2018
13:25:44
@fes0r ты там переводить/переделывать статью про наследование хотел? тебя опередили :D

Google
Bohdan
22.03.2018
13:25:46
https://habrahabr.ru/post/351730/

tl;dr: дословный перевод, можно время не тратить

Anton
22.03.2018
13:46:54
если честно перевод довольно сумбурный

как по мне оригинал проще в восприятии

Bohdan
22.03.2018
13:48:28
шо то шо то фигня

Mykola
22.03.2018
13:53:48
шо то шо то фигня
угу, статья плохая

Enterpise
22.03.2018
16:32:39
доктор, у меня DI-головного мозга

в тяжелой стадии

как лечить ?

Ivan
22.03.2018
16:36:30
выпить пять таблеток композиции

Mykola
22.03.2018
16:45:17
KISS - это то, что надо принимать вместе с DI, иначе печень можно посадить

Sergey
22.03.2018
16:58:21
доктор, у меня DI-головного мозга
DI головоного мозга это когда не знаешь как можно жить без него?

Sergey
22.03.2018
16:59:47
DI головоного мозга это когда не знаешь как можно жить без него?
у него там своя наркомания, юнит тесты для процедур в СУБД, "мокирование через sqlite" и прочее.

KISS - это то, что надо принимать вместе с DI, иначе печень можно посадить
главное при приеме KISS не подменить его на "делаем тупо"

Mykola
22.03.2018
17:05:55
:)

иногда "делаем тупо" - это самое умное, что можно сделать

Sergey
22.03.2018
17:06:39
иногда, но в большинстве случаев это означает лишь "делаем тупо"

Mykola
22.03.2018
17:07:40
хз, по разному... я встречал много гениальных "делаем тупо", особенно когда это "делаем тупо в лоб"

потому что оно как раз внедряет KISS

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

Google
Sergey
22.03.2018
17:09:17
потому что оно как раз внедряет KISS
я к тому что есть огромная разница между "делаем влоб" и "делаем просто", у каждого свое "влоб" и сам понимаешь что агитировать бездумно следовать принципу который не понимают не стоит

точно так же - бездумное следование бэст практисам и т.д

Mykola
22.03.2018
17:10:07
и тогда ты плюёшь на все бест-практики, и запиливаешь тупо кусок кода, который работает в обход системы, работает как часы

и вроде это тупо, но просто и работает

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

правда это пока разработчики системы не подсунуть тебе свинью)

Sergey
22.03.2018
17:11:45
https://gobraithwaite.com/the-story-behind-the-kiss-principle/

Roman
22.03.2018
17:49:11
Нужна помощь. Поидее VO иммутабельны. Как реализовать изменение данных в VO?

BioBodya
22.03.2018
17:49:39
Ты же сам себе противоречишь

Sergey
22.03.2018
17:49:46
bar = foo.withSomething(something) foo != bar

Roman
22.03.2018
18:01:14
bar = foo.withSomething(something) foo != bar
То бишь при изменении чего-то внутри VO - возвращать новый VO?

Sergey
22.03.2018
18:01:58
да, в этом и заключается суть имутабельности

ну то есть чисто с точки зрения семантики

Roman
22.03.2018
18:02:17
Ну возьмём типичный пример - ФИО. Вот зочу я их в VO вытащить.

Sergey
22.03.2018
18:02:19
если у тебя есть VO и какое-то значение у этого VO изменилось - то это уже новый VO

и нелогично что у тебя по референсу эти VO будут равны

(хотя сравнивать VO по референсу не ок))

Roman
22.03.2018
18:03:16
Но есть типа правила определённые, согласно которым я должен проверить - а нормальное ли мне значение туда передали. Ну то бишь провалидировать. Где лучше валидацию такую сделать? Внутри самого VO?

Google
Sergey
22.03.2018
18:03:38
внутри VO

Roman
22.03.2018
18:04:02
да
А если валидация не прошла - что делать? С эксепшоном упасть или какой-то результат вернуть?

Sergey
22.03.2018
18:05:04
эксепшен по идее...

Alan
22.03.2018
18:05:05
там то и вариантов навверное нет, потому что это будет в конструкторе? чтоб VO если создан - значит валиден

Roman
22.03.2018
18:05:14
Типа OperationResult<T>, где T - тип моего VO, ну и какой-то флаг булеановский Success и сообщение Message, плюс сам VO в свойстве T Result

Ну и либо оно выполнилось и в T Result лежит мой новый VO, либо что-то пошло не так, и Success=false плюс что-то в Message

Или лучше эксепшон кидать и где-то наверху его ловить?

Mykola
22.03.2018
18:08:02
эксепшен по идее...
если уж иммутабеьность и все дела, то надо монады всякий вместо try-catch)

Roman
22.03.2018
18:08:35
если уж иммутабеьность и все дела, то надо монады всякий вместо try-catch)
Ну иммутабельны только VO, а сущности мутабельны. Плюс у меня C#, а не Haskell)

Mykola
22.03.2018
18:09:39
монады - это такой хитрожопый контейнер для последовательности операций, а не прямо хаскель

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