Size: a a a

Software Design/Architecture/Zen

2021 January 09

I

Igor Kot in Software Design/Architecture/Zen
Руслан
Главное не подраться, когда таких поэтов-переименовывателей в компании окажется больше одного
Удалённо в щи не урвешь
источник

ЗД

Златослав Десятников... in Software Design/Architecture/Zen
Sergey Protko
AbstractProductFactoryFactory
Неплохо.
источник

Р

Руслан in Software Design/Architecture/Zen
Igor Kot
Удалённо в щи не урвешь
Зато смешно наблюдать за этими баталиями в пулл реквестах, когда рождаются BasicRequestBuyerChannelSelectFetcher, как пример правильного нейминга
источник

I

Igor Kot in Software Design/Architecture/Zen
Руслан
Зато смешно наблюдать за этими баталиями в пулл реквестах, когда рождаются BasicRequestBuyerChannelSelectFetcher, как пример правильного нейминга
В случае таких разногласий формируется список аргументов, проявляются обоснования для каждой позиции или формальные критерии выбора. Далее можно просто проголосовать всей командой или отдать на суд техническому начальству.
Потом это можно сжать в парочку конкретных правил, выложить их во внутреннюю доку и обновить вокабуляр.
По мне так это хорошо, что происходят такие священные войны. Это лучше, чем когда все тихо и всем пох.
источник

РН

Роман Нагаев... in Software Design/Architecture/Zen
Igor Kot
Что-то здесь есть. Классика просто приятно читать.
спасибо, схоронил проектирование)
источник

СК

Сергей Клевакин... in Software Design/Architecture/Zen
Igor Kot
Сейчас зумеры разработчики не читают книг, они смотрят обучающие видео, и у них тупо не формируется словарный запас, чтобы описывать решение красивым языком, приближенным к доменной модели. Здесь же много нюансов, на которые стоит обращать внимание. Тебе нужен не просто единый язык, но им каждый должен проникнуться. Каждый должен понимать детали различий выбранных абстракций. Как реализовывать эту описательную технологию лаконично, ясно, в то же время не переусложнять терминологию.
Это все требует скрупулёзного  обучения. Неблагодарное занятие.
Физик не хочет быть лириком.
В итоге тебе самому будет проще брать чужой код и переименовывать неудачный нейминг. Будет быстрее и по нервам вин.
Ну я конечно не знаю, как застраховаться от AbstractProductFactoryFactory))

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

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

I

Igor Kot in Software Design/Architecture/Zen
Сергей Клевакин
Ну я конечно не знаю, как застраховаться от AbstractProductFactoryFactory))

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

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

Так чтобы тестировать ничего кроме изолированности модулей не надо.
Как же быть со всеми остальными принципами для сокращения сложности?
источник

СК

Сергей Клевакин... in Software Design/Architecture/Zen
Igor Kot
Какие-то эксперименты с естественными языками как способом программировать проводились когда-то в счастливых восьмидесятых.

Так чтобы тестировать ничего кроме изолированности модулей не надо.
Как же быть со всеми остальными принципами для сокращения сложности?
Про какие принципы сокращения сложности речь?

Можно кратко
источник

СК

Сергей Клевакин... in Software Design/Architecture/Zen
Igor Kot
Какие-то эксперименты с естественными языками как способом программировать проводились когда-то в счастливых восьмидесятых.

Так чтобы тестировать ничего кроме изолированности модулей не надо.
Как же быть со всеми остальными принципами для сокращения сложности?
Естественный язык как способ программирования... Не, не, не... Я к этому не призываю) Я говорю о приближении кода к выражениям на естественном языке. Но это прям разные вещи) вот пример: machine.onDisabled.do(water source.close)
источник

I

Igor Kot in Software Design/Architecture/Zen
Чтобы писать изолированные модули, в общем то не обязательно запарываться о всяких srp, dry, yagni. Не нужна документация и коменты. Не нужно разделение на слои особо, отделил сервисы доступа к внешним ресурсам и вызываешь их из своих изолированных юнитов поведения.
источник

I

Igor Kot in Software Design/Architecture/Zen
Система может все ещё оставаться большим комком сплетённых макарон и быть тестируемой юнит тестами.
источник

СК

Сергей Клевакин... in Software Design/Architecture/Zen
Igor Kot
Система может все ещё оставаться большим комком сплетённых макарон и быть тестируемой юнит тестами.
Но все же, это уже сильно менее вероятно, чем без тестирования
источник

I

Igor Kot in Software Design/Architecture/Zen
Безусловно, юнит тестирование направляет дизайн в правильную сторону. Ведь тебе хочется чтобы тесты были лёгкие для восприятия и простые.
источник

I

Igor Kot in Software Design/Architecture/Zen
Если тебе надо выбрать какой-то один базовый критерий качества системы из всех этих принципов, методик, то да, я бы выбрал покрываемость юнит тестами.
Потому что в первую очередь это осязаемо в отличии от споров у кого srp короче
источник

I

Igor Kot in Software Design/Architecture/Zen
источник

I

Igor Kot in Software Design/Architecture/Zen
Про уменьшение сложности. Читалась по кайфу. Несколько глав скопировал во внутреннюю доку (про исключения и комментарии к коду)
источник

АГ

Алексей Гевондян... in Software Design/Architecture/Zen
📓 Функциональное программирование на C++ (2020)
Автор: Чукич И.

Описание: хорошо написанный код легче тестировать и использовать повторно, его проще распараллелить, и он меньше подвержен ошибкам. Владение приемами функционального программирования поможет вам писать код, соответствующий требованиям к современным приложениям, проще выражать сложную логику программ, изящно обрабатывать ошибки и элегантно оформлять параллельные алгоритмы. Язык C++ поддерживает функциональное программирование с использованием шаблонов, лямбда-выражений и других своих базовых возможностей, а также алгоритмов из библиотеки STL.

#книги
источник

АГ

Алексей Гевондян... in Software Design/Architecture/Zen
вон вам пожалуйста книжка, фп на плюсах)
источник
2021 January 10

С

Семён in Software Design/Architecture/Zen
Sergey Protko
первое что приходит в голову - секьюрники. Второе - какой-нибудь легаси
Под легаси вы что подразумеваете?
источник

ch

central hardware in Software Design/Architecture/Zen
источник