Ayrat
здесь прекрасно всё
Ayrat
начиная от коментов над Dispose
Ayrat
заканчивая неймингом
Roman
КпссКонтроллер
Roman
Ayrat
нейминг в духе паскаля, с венгерской нотацией - сперва тип, потом имя
Фил Ранжин
Диана
Здесь рефакторинг не прокатит. Нужен осиновый кол.
Фил Ранжин
но какая разница
Ayrat
надеюсь, булеаны названы
private bool bIsTrue;
Ayrat
?
Ayrat
и глобальные переменные с g вначале
Фил Ранжин
Фил Ранжин
всегда нрваится вот такое
Фил Ранжин
человек недостаточно умен, что бы писать код
Фил Ранжин
но про сиалед знает
Фил Ранжин
и использует
Фил Ранжин
ну чтоб принцип подстановки работал. видимо
Ayrat
это рак.
Ayrat
оопшный рак
Фил Ранжин
не не не
Фил Ранжин
ооп не при чём
Фил Ранжин
вообще
Roman
Русский нейминг связан с ддд?
Ayrat
Фил Ранжин
думаешь, отними у них ооп, и заведётся чтоли
Фил Ранжин
?
Ayrat
Фил Ранжин
вот именно
Фил Ранжин
они мне ещё говорят, что я тупой
Фил Ранжин
что вторую неделю багу правлю
Фил Ранжин
а сука
Фил Ранжин
я не понимаю
Фил Ранжин
как эта ебанина работает
Фил Ранжин
и понимать не хочу
Ayrat
понимаю
Фил Ранжин
у меня на этой работе такое правило
Фил Ранжин
пока стакан виски не опрокинул
Фил Ранжин
работать не сажусь
Фил Ранжин
я смотрел на офер
Фил Ранжин
дети хуети
Фил Ранжин
кредиты хуиты
Диана
Заведи туда модуль написанный на F# по тихому, устрой истерику всей команде.
Roman
Ну шо тут сказаты
Фил Ранжин
потом они сказали, что код говно. и сказали. что разрешат исправлять
Фил Ранжин
типа за этим и брали
Фил Ранжин
а баги просят сейчас править. что бы я вник
Roman
Фил Ранжин
вроде, стажировка
Фил Ранжин
Фил Ранжин
ахахаха
Ayrat
ну да, их-то говно дико читаемо
Roman
Фил Ранжин
let сделатьРаботуНахуй параметер1 =
Диана
ахахаха
Фил Ранжин
type ДоменногоУровняСущностьЕбать = ДоменногоУровняСущностьЕбать
Фил Ранжин
читаемо, понятно
Yurii
Фил Ранжин
говрила мне мама, иди во фронт, ща бы хипстерил с кложей какой-нибудь
Фил Ранжин
как это ты блядь скомпозировал с мамоеблей?
Диана
Фил Ранжин
Roman
Фил Ранжин
рак мозга ничего не лечит, но тут вот какой поинт
Фил Ранжин
раковые не часто учат фшарп
Диана
Фил Ранжин
Eugene
Roman
Фил Ранжин
ахаха
Фил Ранжин
зато. Уволюсь, ебааать я их статьями разнесу
Фил Ранжин
сука, столько материала
Roman
Фил Ранжин
ну так я не чтобы им нагадить, а чтоб себе настроение поднять. Даже не буду их название приводить
Roman
Щас там Айрат что-то скажет. Либо на клаве лежит от твоих скринов
Фил Ранжин
приступ
Ayrat
я вот хотел бы вам скинуть пример ФП головного мозга, но там прям мякотка алгоритма. Поэтому общо и на словах без деталей
Есть продакт манагер, который оформил что он хочет в виде человекочитаемого псевдоязыка, типа
Если есть глобальный оверрайд - возьми его
Если есть наш офер из вайтлиста, возьми его
Если нет, то поищи вот тут и умножь на какие-то числа.
Ну и далее в таком же духе строк 30. Предельно понятный список шагов, который оформляется в ориентированный граф. В графе может быть более одного пути из точки А в точку Б и в точке Б есть разница куда пойти в зависимости от пути которым мы попали в эту точку.
Но в целом ничего сложного изобразить.
И вот короче ебанутый мудак это оформил в виде оЧеНь ФунКциОНалЬНоГо алгоритма.
Последовательность правил, которыые фолдятся с пустым результатом.
То есть если первое правило отработало (например про глобальный оверрайд) остальные будут скипнуты.
Но не всё так просто. Ведь представление графа в виде последовательности изоморфно обходу графа, способов тыщи. И вот тут встал вопрос. Наш-то ебанутый умеет только в ФунКциОНалЬНыЙ фОЛд. Поэтому чтобы изобразить сложные взаимосвязи, внедрил "нетерминирующее правило", которое позволяет не прекращаеть работу "фолда" и фолдить дальше, потому что правило может быть перетёрто другим правилом. Но не все правила могут перетирать другие правила, поэтому ебанутый сделал 30 разных типизированных результатов, а чтобы изобразить исключения, проверяет в последних правилах резульат работы предыдущих, и если тип результата ОСОБЕННЫЙ, то и результат будет ОСОБЕННЫЙ
И вот короче вот так 30 строк банальной бизнес логики превратились в 2000