Какой вариант вам было проще всего понять?
Final Results
13%
Вариант №1
28%
Вариант №2
0%
Вариант №3
11%
Вариант №4
30%
Вариант №5
2%
Вариант №6
2%
Вариант №7
4%
Вариант №8
2%
Вариант №9
7%
Вариант №10
Эргономичный код
Какой вариант вам было проще всего понять?
Привет!
Фух, вы видели эту гонку? Она была валидольной:)
Не в обиду автору второго варианта, но вчера вечером 5-ый вариант лидировал с перевесом в один (мой:)) голос. И сегодня с утра я с замиранием сердца открывал канал, потому что победа второго варианта поставила бы меня в неловкое положение.
Второй вариант соответствует всем критериям челленджа и объективно является самым понятным. Потому что львиную долю сложности спрятал в стандартной библиотеке. Но в целом он выглядит как хитрый солюшен под конкретные условия задачи и такой код в образовательном материале я бы не хотел приводить. Но, слава богу, обошлось без переобувки в воздухе.
Ну и да, 5ый вариант, очевидно, был одним из моих:) На самом деле первым вариантом, который я, подглядев у одного из участников, упростил заменив isNegative на sign :)
Ещё раз спасибо всем отозвавшимся - если хотите, напишете мне в личку - опубликую пост с именными благодарностями:)
Фух, вы видели эту гонку? Она была валидольной:)
Не в обиду автору второго варианта, но вчера вечером 5-ый вариант лидировал с перевесом в один (мой:)) голос. И сегодня с утра я с замиранием сердца открывал канал, потому что победа второго варианта поставила бы меня в неловкое положение.
Второй вариант соответствует всем критериям челленджа и объективно является самым понятным. Потому что львиную долю сложности спрятал в стандартной библиотеке. Но в целом он выглядит как хитрый солюшен под конкретные условия задачи и такой код в образовательном материале я бы не хотел приводить. Но, слава богу, обошлось без переобувки в воздухе.
Ну и да, 5ый вариант, очевидно, был одним из моих:) На самом деле первым вариантом, который я, подглядев у одного из участников, упростил заменив isNegative на sign :)
Ещё раз спасибо всем отозвавшимся - если хотите, напишете мне в личку - опубликую пост с именными благодарностями:)
👍9
А, ну и конечно спасибо всем проголосовавшим - вы помогли мне свериться с реальностью и выбрать объективно наилучший вариант для статьи:)
❤7
Привет!
У меня одна большая и несколько маленьких новостей:)
Большая новость
Я начал новый этап работы над Эргономичным подходом.
Изначально я хотел (и всё ещё хочу) написать книгу о том, как разрабатывать поддерживаемый код. И даже начал её писать , но полгода спустя понял, что с кондачка у меня это не выходит.
Поэтому я завёл сначала этот канал, а потом блог, предполагая, что книгу можно будет собрать из постов. Это помогло мне сильно продвинуться в проработке Эргономичного подхода и теперь я знаю, как систематически делать поддерживаемые проекты.
Но значительная доля этого знания всё ещё не описана.
Поэтому я решил перейти на формат структурированной вики и запустил отдельный сайт для Эргономичного подхода — https://ergowiki.azhidkov.pro 🎉🎉🎉
Пока что он больше похож на индексный указатель моего блога, но у него намного более наглядная структура и я планирую существенную часть 25-ого года посвятить тому, чтобы методично наполнять этот сайт.
Обращайте внимание на версии статей - если вторым числом стоит 0, то внутри либо набор ссылок, либо несколько тезисных предложений, либо неотредактированный черновик.
Однако кое-что интересненькое там уже есть:
1. свежак и с версией v1.1.0 — гайдлайн обработки ошибок, в котором я вернул в милость выброс исключений в коде приложения;
2. Несколько шаблонов работы со Spring Data JDBC;
3. Три черновых подхода к описанию модели неизменяемых реляционных данных. Они написаны в режиме потока сознания, но, на мой взгляд, содержат оригинальные и любопытные идеи.
Наконец, самое главное — по многочисленным просьбам подписчиков, там есть автоматическая поддержка тёмной темы:) Кроме подсветки синтаксиса. И картинок:)
Маленькие новости
Помимо запуска сайта для ЭП, я ещё и причесал личный сайт. Изменений там довольно много, подсвечу только те, что вам могут быть интересны на мой взгляд.
Во-первых, я собрал на основной странице блога все свои посты за всё время — всего там сейчас 62 поста.
Во-вторых, я протегал все эти 62 поста.
Избранные подборки:
- Кейсы
- Функциональная архитектура
- Эргономичный подход
- Эргономичное тестирование
В-третьих, я завёл страничку со списком своих публичных выступлений, где, кроме самих записей есть и ссылки на слайды.
У меня одна большая и несколько маленьких новостей:)
Большая новость
Я начал новый этап работы над Эргономичным подходом.
Изначально я хотел (и всё ещё хочу) написать книгу о том, как разрабатывать поддерживаемый код. И даже начал её писать , но полгода спустя понял, что с кондачка у меня это не выходит.
Поэтому я завёл сначала этот канал, а потом блог, предполагая, что книгу можно будет собрать из постов. Это помогло мне сильно продвинуться в проработке Эргономичного подхода и теперь я знаю, как систематически делать поддерживаемые проекты.
Но значительная доля этого знания всё ещё не описана.
Поэтому я решил перейти на формат структурированной вики и запустил отдельный сайт для Эргономичного подхода — https://ergowiki.azhidkov.pro 🎉🎉🎉
Пока что он больше похож на индексный указатель моего блога, но у него намного более наглядная структура и я планирую существенную часть 25-ого года посвятить тому, чтобы методично наполнять этот сайт.
Обращайте внимание на версии статей - если вторым числом стоит 0, то внутри либо набор ссылок, либо несколько тезисных предложений, либо неотредактированный черновик.
Однако кое-что интересненькое там уже есть:
1. свежак и с версией v1.1.0 — гайдлайн обработки ошибок, в котором я вернул в милость выброс исключений в коде приложения;
2. Несколько шаблонов работы со Spring Data JDBC;
3. Три черновых подхода к описанию модели неизменяемых реляционных данных. Они написаны в режиме потока сознания, но, на мой взгляд, содержат оригинальные и любопытные идеи.
Наконец, самое главное — по многочисленным просьбам подписчиков, там есть автоматическая поддержка тёмной темы:) Кроме подсветки синтаксиса. И картинок:)
Маленькие новости
Помимо запуска сайта для ЭП, я ещё и причесал личный сайт. Изменений там довольно много, подсвечу только те, что вам могут быть интересны на мой взгляд.
Во-первых, я собрал на основной странице блога все свои посты за всё время — всего там сейчас 62 поста.
Во-вторых, я протегал все эти 62 поста.
Избранные подборки:
- Кейсы
- Функциональная архитектура
- Эргономичный подход
- Эргономичное тестирование
В-третьих, я завёл страничку со списком своих публичных выступлений, где, кроме самих записей есть и ссылки на слайды.
Эргономичный подход
Способ быстро создавать кодовые базы, которые легко менять для поддержки новых требований
🔥14👍8❤5
Привет!
Мысли в слух.
Наткнулся на очередную свеженькую статью по чистой архитектуре.
В двух словах: чистая архитектура - это не про пакеты - не заводите пакеты domain, application, infrastructure, web, заводите пакеты по фичам.
В целом ничего супероригинального, но любопытный аргумент в пользу пакетирования по фичам там есть — по мере жизни приложения, у него появляются новые фичи, а новые слои — практически никогда.
И так как покой мне только снится, это меня натолкнуло на мысль о потенциальной эргономичной структуре программ в4. в3 выглядит так, напомню.
Сейчас она у меня в целом работает и серьёзных нареканий нет, но мне не нравится фактическое дублирование содержания пакетов app и core, в случае если app декомпозируется по фичам.
И вот глядя на этот пост, я подумал, что гипотетически, в в4 я мог бы вернуться к декомпозиции по домену/фичам на первом уровне, но для решения проблемы лишних зависимостей добавил бы компоненты без состояния.
#posts@ergonomic_code #clean_architecture@ergonomic_code #ergo_approach@ergonomic_code #ergo_arch@ergonomic_code
Мысли в слух.
Наткнулся на очередную свеженькую статью по чистой архитектуре.
В двух словах: чистая архитектура - это не про пакеты - не заводите пакеты domain, application, infrastructure, web, заводите пакеты по фичам.
В целом ничего супероригинального, но любопытный аргумент в пользу пакетирования по фичам там есть — по мере жизни приложения, у него появляются новые фичи, а новые слои — практически никогда.
И так как покой мне только снится, это меня натолкнуло на мысль о потенциальной эргономичной структуре программ в4. в3 выглядит так, напомню.
Сейчас она у меня в целом работает и серьёзных нареканий нет, но мне не нравится фактическое дублирование содержания пакетов app и core, в случае если app декомпозируется по фичам.
И вот глядя на этот пост, я подумал, что гипотетически, в в4 я мог бы вернуться к декомпозиции по домену/фичам на первом уровне, но для решения проблемы лишних зависимостей добавил бы компоненты без состояния.
#posts@ergonomic_code #clean_architecture@ergonomic_code #ergo_approach@ergonomic_code #ergo_arch@ergonomic_code
Medium
Clean Architecture is NOT a project structure.
Countless articles are written about Clean Architecture, and some of the basic stuff people get right. But there’s one common issue I see over and over again. They recommend a project structure that…
Привет!
Из своих планов на "до отпуска" я не осилил только записать и выложить запись лайтненинга про Spring Data JDBC.
Зато запустил вики, поэтому решил таки пойти в отпуск до 1 апреля.
Поэтому в канале будет некоторое затишье - писать что-то буду, скорее всего, но по мелочи, плюс, может быть, осилю в фоновом режиме написать пару статей на эрговики.
И чтобы вы не скучали эти три месяца - подготовил для вас карту канала - уверен, в ней вы сможете найти себе что-то интересненькое почитать/посмотреть как минимум на каникулы, а то и до 1 апреля.
PS>
А ну и лайтенинг тоже собираюсь таки дозаписать в отпуске. Ещё минут 20 к записанным 2 на текущий момент:)
Из своих планов на "до отпуска" я не осилил только записать и выложить запись лайтненинга про Spring Data JDBC.
Зато запустил вики, поэтому решил таки пойти в отпуск до 1 апреля.
Поэтому в канале будет некоторое затишье - писать что-то буду, скорее всего, но по мелочи, плюс, может быть, осилю в фоновом режиме написать пару статей на эрговики.
И чтобы вы не скучали эти три месяца - подготовил для вас карту канала - уверен, в ней вы сможете найти себе что-то интересненькое почитать/посмотреть как минимум на каникулы, а то и до 1 апреля.
PS>
А ну и лайтенинг тоже собираюсь таки дозаписать в отпуске. Ещё минут 20 к записанным 2 на текущий момент:)
Telegram
Эргономичный код
Привет!
Так, ну большая веха пройдена, расскажу про свои ближайшие планы.
И главный ближайший план - отдохнуть. До марта.
У меня с июля идёт жёсткий спринт, где я жонглирую домом с младенцем и старшим ребёнком, который за 3 месяца сходил в сад 7 дней, выступлением…
Так, ну большая веха пройдена, расскажу про свои ближайшие планы.
И главный ближайший план - отдохнуть. До марта.
У меня с июля идёт жёсткий спринт, где я жонглирую домом с младенцем и старшим ребёнком, который за 3 месяца сходил в сад 7 дней, выступлением…
Карта канала
Добро пожаловать на канал "Эргономичный код" — канал о разработке поддерживаемых кодовых баз в общем и моём подходе к этой задаче — Эргономичном подходе.
Что такое Эргономичный подход?
По большому счёту это небольшой набор принципов, взятых в основном из классической школы TDD, функциональной архитектуры и DDD, и большой набор рецептов — моделей, методик и шаблонов —, которые позволяют команде быстро создавать кодовые базы, соответствующие этим принципам и, как следствие, лёгкие в поддержке.
Подробности на сайте Эргономичного подхода
В Эргономичном подходе есть что-то уникальное?
Да. Идея представления системы как модели её эффектов в виде диаграммы эффектов и методика проектирования на базе этой модели.
"Слова дёшевы, покажи мне код!"
Trainer Advisor — некоммерческий, но реальный (~17K строк Котлин кода, 15 таблиц, 2 настоящих пользователя, горки костылей, "компромиссных решений" и исторических наслоений) проект с открытым исходным кодом, разрабатываемый по Эргономичному подходу. В этот проект можно поконтрибьютить и на своём опыте прочувствовать работу с эргономичной кодовой базой.
Project Mariotte — минимальный демонстрационный пример кодовой базы, написанной по Эргономичному подходу, на примере операции бронирования номера в отеле
Есть что посмотреть или послушать?
Да, все мои публичные выступления собраны на одной странице
А почитать, кроме канала?
Да, в блоге
В блоге и канале есть подборки:
- Кейсы (в блоге, в канале #case@ergonomic_code)
- Примеры кода (в блоге)
- Эргономичный подход (в блоге, в канале #ergo_approach@ergonomic_code)
- Эргономичное тестирование (в блоге, в канале #ergo_testing@ergonomic_code)
- Функциональная архитектура (в блоге, в канале #functional_architecture@ergonomic_code)
- Эргономиный персистанс (в блоге, в канале #ergo_persistance@ergonomic_code)
- Что ещё почитать (в блоге, в канале #books@ergonomic_code, #posts@ergonomic_code, #papers@ergonomic_code)
- Что ещё посмотреть (в блоге, в канале #talks@ergonomic_code)
А у меня вопрос!
Приходите в группу - там целому сообществу (более 100 крутых инженеров) можно задать любой вопрос по тематике канала - Эргономичный подход, классическая школа ТДД, ФА, ФП, в целом дизайн модели и системный дизайн
Добро пожаловать на канал "Эргономичный код" — канал о разработке поддерживаемых кодовых баз в общем и моём подходе к этой задаче — Эргономичном подходе.
Что такое Эргономичный подход?
По большому счёту это небольшой набор принципов, взятых в основном из классической школы TDD, функциональной архитектуры и DDD, и большой набор рецептов — моделей, методик и шаблонов —, которые позволяют команде быстро создавать кодовые базы, соответствующие этим принципам и, как следствие, лёгкие в поддержке.
Подробности на сайте Эргономичного подхода
В Эргономичном подходе есть что-то уникальное?
Да. Идея представления системы как модели её эффектов в виде диаграммы эффектов и методика проектирования на базе этой модели.
"Слова дёшевы, покажи мне код!"
Trainer Advisor — некоммерческий, но реальный (~17K строк Котлин кода, 15 таблиц, 2 настоящих пользователя, горки костылей, "компромиссных решений" и исторических наслоений) проект с открытым исходным кодом, разрабатываемый по Эргономичному подходу. В этот проект можно поконтрибьютить и на своём опыте прочувствовать работу с эргономичной кодовой базой.
Project Mariotte — минимальный демонстрационный пример кодовой базы, написанной по Эргономичному подходу, на примере операции бронирования номера в отеле
Есть что посмотреть или послушать?
Да, все мои публичные выступления собраны на одной странице
А почитать, кроме канала?
Да, в блоге
В блоге и канале есть подборки:
- Кейсы (в блоге, в канале #case@ergonomic_code)
- Примеры кода (в блоге)
- Эргономичный подход (в блоге, в канале #ergo_approach@ergonomic_code)
- Эргономичное тестирование (в блоге, в канале #ergo_testing@ergonomic_code)
- Функциональная архитектура (в блоге, в канале #functional_architecture@ergonomic_code)
- Эргономиный персистанс (в блоге, в канале #ergo_persistance@ergonomic_code)
- Что ещё почитать (в блоге, в канале #books@ergonomic_code, #posts@ergonomic_code, #papers@ergonomic_code)
- Что ещё посмотреть (в блоге, в канале #talks@ergonomic_code)
А у меня вопрос!
Приходите в группу - там целому сообществу (более 100 крутых инженеров) можно задать любой вопрос по тематике канала - Эргономичный подход, классическая школа ТДД, ФА, ФП, в целом дизайн модели и системный дизайн
Эргономичный подход
Способ быстро создавать кодовые базы, которые легко менять для поддержки новых требований
🔥6❤4👍3
Эргономичный код pinned «Карта канала Добро пожаловать на канал "Эргономичный код" — канал о разработке поддерживаемых кодовых баз в общем и моём подходе к этой задаче — Эргономичном подходе. Что такое Эргономичный подход? По большому счёту это небольшой набор принципов, взятых…»
Привет!
С наступившим новым годом!
Принципы программирования от разработчика HTMX - Prefer if statements to polymorpism
Особенно понравилось:
Сразу видно - человек давно в индустрии:)
#posts@ergonomic_code #design@ergonomic_code #htmx@ergonomic_code
С наступившим новым годом!
Принципы программирования от разработчика HTMX - Prefer if statements to polymorpism
Особенно понравилось:
It states that a high-level module can depend on a low-level module, because that’s how software works.
Сразу видно - человек давно в индустрии:)
#posts@ergonomic_code #design@ergonomic_code #htmx@ergonomic_code
htmx.org
</> htmx ~ Prefer If Statements To Polymorphism...
In this collection of tweets, Carson Gross explores unconventional programming principles, including favoring if statements over polymorphism, minimizing abstractions, and prioritizing practical, implementation-driven development. He challenges traditional…
👍4❤2
Привет!
Молния! Похоже, JPA-тусовка начала двигаться в сторону эргономичности.
Я про Jakarta Data слышу впервые и пост только по диагонали просканировал, но судя по фразе:
В одном проекте можно будет совместить JPA под прикрытием Jakarta Data и Эргономичный подход.
А для меня это означает, что порог входа в ЭП снижается.
Молния! Похоже, JPA-тусовка начала двигаться в сторону эргономичности.
Я про Jakarta Data слышу впервые и пост только по диагонали просканировал, но судя по фразе:
Заметьте, что update — это отдельная операция, а репозитории Jakarta Data всегда stateless
В одном проекте можно будет совместить JPA под прикрытием Jakarta Data и Эргономичный подход.
А для меня это означает, что порог входа в ЭП снижается.
Хабр
Jakarta Data и Persistence: Инструменты, которые меняют подход к работе с данными
Команда Spring АйО перевела и адаптировала доклад "Jakarta Data and Jakarta Persistence by Gavin King" Гевина Кинга с последнего Devoxx. В своем выступлении Гевин Кинг рассказал о преимуществах и...
❤4👍4