Search
Write a publication
Pull to refresh

Comments 8

ого, да это же двойной удар - не только телеграм, но еще и ютуб. контента, правда, на трубе, маловато. жаль.

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

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

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

Там есть второй более важный принцип, про который, похоже, и Вы забыли...

Принцип этот делает этот вопрос и всю статью далее просто бессмысленной: "Но вопрос в другом - можно ли с ним работать? Понять, поправить, развить, не впадая в экзистенциальный кризис."

Принцип называется Open/Closed и сводится он к тому, что ранее написанное уже никогда не должно "правиться" и даже "пониматься". Если следовать этому принципу, то необходимость в этом пропадает, можно, не изменяя ни буквы в старом коде, расширять его под новое поведение. А если это невозможно (чего в реальности не бывает), то писать рядом новый код, если написание нового будет дешевле расширения старого... Таким образом достигается развитие без "экзистенциального кризиса".

Вот если бы новичкам об этом написали...

Вы так пишете про этот второй важный принцип, как будто он важнее думанья головой.

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

Вообще, бездумное применение любых паттернов неотличимо от легаси со срагетти.

Первый пункт противоречит девятому. Или глаголы в именах функций, или функциональное программирование. Функциональное программирование не требует императивной семантики.

А в чем противоречие? В фп кто-то мешает нормально именовать сущности? Не требует != противоречит же.

Функция в ФП не должна представлять собой действие, поэтому может быть неоткуда возникнуть глаголу.

Изменения ради изменений - идеология мутирующей клетки. А там и до рака недалеко.

Sign up to leave a comment.

Articles