212 похожих чатов

Гайз, а в паттерне цепочки обязанностей мы описываем только последовательность

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

22 ответов

13 просмотров

Если это оправданно и в этом есть необходимость

Shpapin-Krans Автор вопроса

К примеру, есть разные вариации отправки письма, нужно ли их делать через абстрактную фабрику, а само поведение через цепочку (если одна отправка не удалась, пробуем следующую) ?

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

Люди начинаються гоф и что-то схожее и начинают везде где можно паттерны ебошить в коде, ну да паттерны ничего не усложняют =)

Ну сделать херово можно и так и эдак.

1. Паттерны можно комбинировать. 2. Паттерны достаточно условны, например ту же цепочку ответственности можно по всякому реализовать. Но смысла оно не потеряет. 3. Паттерны полезны как идеи, тебе надо разбираться какие проблемы какая идея призвана решить. 4. Как "обоснование" почему паттерны выходят такими есть книжка лармана applying uml and patterns где он вводит grasp - тип набор более общих идей соблюдение которых будет приводить к появлению паттернов гоф-ских

Shpapin-Krans Автор вопроса

Спасибо

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

Добавлю, паттерны какбе нормально подходят в кейсах когда их можно наложить на реально то, что делает код по смыслу. Просто запихуное по книжечке это как сказали выше «сделать херово можно в любом случае» Тут челлендж смапить существующие паттерны на твой юзкейс без глупого оверинжиниринга.

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

по паттернам книг действительно много, а есть ли литература по улучшению кода на более низком уровне? ну те. где предпочесть ранний return, где отказаться от for цикла в пользу while с установкой флагов и тд? самое близкое что читал это совершенный код

Это из разряда микрооптимизаций и зависит от конкретного языка и рантайма

ага, я бы с удовольствием почитал аналог совершенного кода под ts или хотя бы java/c#

Совершенный код как раз вроде и не прибит к языкам / рантаймам

Чистый код из той же темы - можно почитать. Ещё про фп можно

странно, про эту от чего-то не слышал, спасибо

Это дядя Боб, у него есть ещё чистая архитектура

её читал, да, возможно потому и пропустил, так как названия похожи

Для того чтобы понимать как писать код лучше, на низком уровне - рефакторинг и может быть чистый код/чистая архитектура, имхо совершенный код намного дальше от того как принимать решения. Причем я бы рекомендовал именно рефакторинг на java, а не издание на js если в переводе. И не сайт рефакторинг гуру, потому что он не про путь, а про результат.

А какая цель этих улучшений - оптимизации, или повышение читаемости? Если оптимизации, то тут надо глубоко погружаться в низкие уровни, вплоть до изучения механизмов сброса/наполнения кешей. Не знаю даже есть ли такая литература А если улучшение читаемости кода, то советы уже дали

читаемость, я люблю глазами и то как выглядит и насколько читабелен код это важный аспект для меня

Фаулер рефакторинг

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта