amarao: (Default)
[personal profile] amarao
Главная боль с ними - это отсутствие нормальной документации.

Я только что хотел показать человеку "adapter". Казалось бы, пять строчек. Всё, что я нашёл - это какая-то бездна, и мой мозг стекает ещё до того, как я заканчиваю читать. Я понимаю паттерн, я не понимаю, что эти авторы хотят сказать.

Или, фабрика. Тривиальная же вещь: верни функцию с замыканием вместо значения. Но нет, всё, что идёт в статьях со словом "pattern", кажется, написано людьми, которые *любят* xml, писают кипятком от синтаксиса java и хочень бы хотели xlst вот ту вот очаровательную soap.

... Отсюда, вопрос, а есть ли кто-то, кто этим вопросом занимался и кто бы написал вменяемый обзор? Я понимаю, что у разных языков программирования разный уровень бойлерплейта (builder pattern для Rust/Java - это база и так и надо, в питоне можно, но будет выглядеть странно, потому что в аргументах можно много и выразительно варьироваться), но всё-таки, самый базовый простой обзор? Желательно, без махрового ООП.

Date: 2022-07-06 09:24 am (UTC)
From: [personal profile] ex0_planet
Ну, тут два момента.

Первый — это то, что GoF'овские крокозяблы продиктованы структурой языка (Java/C++) в значительной степени; сами паттерны (как типовые проблемы и типовые решения) от этого никуда не деваются и статья по ссылке как раз показывает как их выразить проще, вплоть до тривиальности.

Второй — Банда действительно много чего интересного обошла вниманием, но этого по-моему в связном виде очень и очень мало.

PS. И вдогонку:

The need for patterns results from using computer languages or techniques with insufficient abstraction ability. Under ideal factoring, a concept should not be copied, but merely referenced. But if something is referenced instead of copied, then there is no "pattern" to label and catalog.

Отсюда: https://sourcemaking.com/design_patterns/

Выделенное по-моему вполне объясняет почему "паттернами" никто не занимается за пределами OOA/OOD тусовки — за отсутствием предмета занятий.
Edited Date: 2022-07-06 10:14 am (UTC)

Date: 2022-07-06 12:27 pm (UTC)
From: [personal profile] ex0_planet
Идеального факторинга добиться невозможно, да скорее всего и не нужно. Поэтому да, какие-то концепции будут влезать с трудом, какие-то проще.

> приложению не передали имя файла как аргумент, надо читать с stdin.
Как фича application framework'а например.

> разделять приложение foo на libfoo и само foo, которое использует libfoo.
Как фича системы сборки, которая определяет, например, собираемся ли мы под условный дебиан и включает это разделение. Вопрос лишь в том, нужны ли нам настолько умные фреймворки.

Date: 2022-07-06 01:10 pm (UTC)
From: [personal profile] ex0_planet
Мы о разных паттернах по ходу. Паттерны в GoF смысле это таки артефакты "не такого" факторинга, а ты говоришь о _принципах_. Вот gigo — это типичный принцип, некая эвристика о которой мало что можно сказать, кроме констатации её существования.

Profile

amarao: (Default)
amarao

February 2026

S M T W T F S
123456 7
8910111213 14
15161718192021
22232425262728

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 25th, 2026 02:21 pm
Powered by Dreamwidth Studios