Привет!
Тихой сапой осилил эту книгу: https://www.amazon.com/Design-Programmer-Architect-Pragmatic-Programmers/dp/1680502093
Не то чтобы прям маст рид, но несколько интересных мыслей и техник там есть. И размер вполне гуманный - 300 страниц по сути:)
#books@ergonomic_code
Тихой сапой осилил эту книгу: https://www.amazon.com/Design-Programmer-Architect-Pragmatic-Programmers/dp/1680502093
Не то чтобы прям маст рид, но несколько интересных мыслей и техник там есть. И размер вполне гуманный - 300 страниц по сути:)
#books@ergonomic_code
Привет!
Вы не поверите №1: я в текущем этапе дважды облажался в аналитике и эта неделька снова была тяжёлой:)
Вы не поверитре №2: но я отдал этап на приёмку, так что следующая неделька будет лёгкой:) Откуда я знаю что на приёмке не будет проблем? Потому что...
... Вы не поверите №3: я написал пост, о том как я так организовал тестирование проекта, что за два месяца дева мне прилетел 1 (один) баг и 0 (ноль) регрессий:)
#case@ergonomic_code #project_l@ergonomic_code #ergo_testing
Вы не поверите №1: я в текущем этапе дважды облажался в аналитике и эта неделька снова была тяжёлой:)
Вы не поверитре №2: но я отдал этап на приёмку, так что следующая неделька будет лёгкой:) Откуда я знаю что на приёмке не будет проблем? Потому что...
... Вы не поверите №3: я написал пост, о том как я так организовал тестирование проекта, что за два месяца дева мне прилетел 1 (один) баг и 0 (ноль) регрессий:)
#case@ergonomic_code #project_l@ergonomic_code #ergo_testing
Telegraph
Тесты, которым можно доверять
Я сейчас делаю проект с чистого листа, в котором я основой и ведущий бакэндер. И, естественно, я его делаю в соответствии с Эргономичным Подходом. Главным условием для того, чтобы кодовая база была эргономичной является набор тестов, которым можно доверять.…
Привет!
И всё-таки неделька выдалась лёгкая и я накатал небольшой линкопост-заметку о том, как декомпозировать систему на компоненты.
#posts@ergonomic_code #ergo_approach@ergonomic_code #ergo_arch@ergonomic_code #design@ergonomic_code
И всё-таки неделька выдалась лёгкая и я накатал небольшой линкопост-заметку о том, как декомпозировать систему на компоненты.
#posts@ergonomic_code #ergo_approach@ergonomic_code #ergo_arch@ergonomic_code #design@ergonomic_code
Telegraph
О декомпозиции систем
Дисклаймер: это небольшой линко-пост на тему, достойную главы книги Наконец-то свершилась ваша мечта и вам досталось сделать проект с чистого листа. Наконец-то вы можете сделать всё правильно, а не воевать с легаси написанным сто лет назад людьми, которых…
Привет!
Небольшая статейка о вреде временнОй связности и побочных эффектов: https://proandroiddev.com/stop-crafting-your-time-bomb-39f2d26987e0
Единственное что, я бы часть про Элегантные Объекты пропустил - уважаю Бугаенко за его продуктивность, принципиальность и масштабность, но работать с кодом в его стиле я бы не хотел:)
#posts@ergonomic_code #why_no_side_effects@ergonomic_code
Небольшая статейка о вреде временнОй связности и побочных эффектов: https://proandroiddev.com/stop-crafting-your-time-bomb-39f2d26987e0
Единственное что, я бы часть про Элегантные Объекты пропустил - уважаю Бугаенко за его продуктивность, принципиальность и масштабность, но работать с кодом в его стиле я бы не хотел:)
#posts@ergonomic_code #why_no_side_effects@ergonomic_code
Medium
Stop Crafting Your “Time Bomb”
A horrible design pattern we should get rid of. Period.
Наконец-то, не за долго до четырёхлетия своего индивидуального предприятия, я запилил себе личный сайт:)
https://azhidkov.pro/
Теперь посты я буду выкладывать на 15 минут раньше, и вы можете легко запомнить где можно перечитать любимые:)
https://azhidkov.pro/
Теперь посты я буду выкладывать на 15 минут раньше, и вы можете легко запомнить где можно перечитать любимые:)
Привет!
Малёха солида вам в ленту с утра пораньше:)
Я уже как-то давал ссылку на критику SOLID-а.
А сегодня я подслушал в радиоте ссылку на более развёрнутый пост этого же мужика.
И там он даёт ссылку на критику своей критики:)
Когда-нибудь я обязательно накатаю собственный развёрнутый пост на эту тему:)
А пока у меня на подходе разгромный пост о JPA - уже отлёживается, завтра-после завтра опубликую:)
#posts@ergonomic_code #solid@ergonomic_code
Малёха солида вам в ленту с утра пораньше:)
Я уже как-то давал ссылку на критику SOLID-а.
А сегодня я подслушал в радиоте ссылку на более развёрнутый пост этого же мужика.
И там он даёт ссылку на критику своей критики:)
Когда-нибудь я обязательно накатаю собственный развёрнутый пост на эту тему:)
А пока у меня на подходе разгромный пост о JPA - уже отлёживается, завтра-после завтра опубликую:)
#posts@ergonomic_code #solid@ergonomic_code
Speaker Deck
Why Every Element of SOLID is Wrong
Five minute Ignite-style talk from PubConf London 2016
Молния!
В компилятор JetBrains Compose вмёржили поддержку JS-а: https://twitter.com/shikasd_/status/1379757917893722114
#tools@ergonomic_code #kotlin@ergonomic_code
В компилятор JetBrains Compose вмёржили поддержку JS-а: https://twitter.com/shikasd_/status/1379757917893722114
#tools@ergonomic_code #kotlin@ergonomic_code
JetBrains
Compose Multiplatform – Beautiful UIs Everywhere
Compose Multiplatform is a declarative framework for building beautiful shared UIs across Android, iOS, desktop, and web – powered by Kotlin Multiplatform.
Рад представить вам анонсированный разгромный пост о том почему JPA лучше не использовать в серьёзных проектах:)
Это новый рекордсмен моего блога по объёму - закрыл гештальт:)
Ну и если я вдруг налажал с технической точки зрения - пишите. Может я, наконец, 15 лет спустя открою страшную тайну как правильно готовить JPA:)
#posts@ergonomic_code #whynojpa@ergonomic_code #spring_data_jdbc@ergonomic_code
Это новый рекордсмен моего блога по объёму - закрыл гештальт:)
Ну и если я вдруг налажал с технической точки зрения - пишите. Может я, наконец, 15 лет спустя открою страшную тайну как правильно готовить JPA:)
#posts@ergonomic_code #whynojpa@ergonomic_code #spring_data_jdbc@ergonomic_code
Алексей Жидков
Почему следует избегать использования JPA/Hibernate в продакшене - Алексей Жидков
Как дизайн JPA/Hibernate ведёт к созданию медленных приложений с плохим дизайном
Думаю опубликовть пост о JPA на Хабре в "Я пиаюрсь". Как думаете какой будет исход?
Anonymous Poll
37%
Слава и +50 читателей
11%
Бан
53%
Линч
Привет!
Мне не хватает 9 единиц кармы, для публикации в "Я пиарюсь", а публиковать в хаб Java я боюсь - вдруг и правда забанят.
Накрутите мне пожалуйста кармы авансом: https://habr.com/ru/users/jdev/ :)
Мне не хватает 9 единиц кармы, для публикации в "Я пиарюсь", а публиковать в хаб Java я боюсь - вдруг и правда забанят.
Накрутите мне пожалуйста кармы авансом: https://habr.com/ru/users/jdev/ :)
Хабр
Алексей aka jdev
- Эксперт по эффективной разработке, Kotlin техлид
- Эксперт по эффективной разработке, Kotlin техлид
Алексей aka jdev. Опубликовал 18 статей на Хабр и оставил 116 комментариев.
Так, я покурил правила Хабра, выяснил, что карму так просто не накрутишь, а ссылаться на свой блог по правилам можно, так что... bomb has been planted :)
Хабр
Почему следует избегать использования JPA/Hibernate в продакшене
Этот материал является кросс-постом Следить за обновлениями блога можно в моём канале: Эргономичный код Дисклеймер - я люто ненавижу JPA/Hibernate Мои отношения с Hibernate (JPA тогда ещё не было) не...
Ох, знаете, что Лёша сейчас сделал?
Случайно забацал бесконечную рекурсию в функции инициализации контейнера для тестов. Как думаете, что было дальше?
Случайно забацал бесконечную рекурсию в функции инициализации контейнера для тестов. Как думаете, что было дальше?
Anonymous Poll
24%
Переполнился стек
4%
Кончилось место на корневом разделе
8%
Какая-то гномья приблуда для мониторинга разделов захавала весь процессор
64%
Всё выше перечисленное
Ну и раз уж я вас сегодня заспамил, то вот ещё немного:)
Запилил оператор terminateOn для Kotlin sequence&flow
Предполагаемый юзкейс - функциональное описание эффективной операции до получения терминального значения - считай ретрай
юзается примерно так:
#tools@ergonomic_code #kotlin@ergonomic_code
Запилил оператор terminateOn для Kotlin sequence&flow
Предполагаемый юзкейс - функциональное описание эффективной операции до получения терминального значения - считай ретрай
юзается примерно так:
val res = sequnceOf(1, 2, 3)
.map { delay(it) ; getEntityStatusOnServer() }
.take(15)
.terminateOn { it.isSuccess() || it.isFailed }
.last()
when (res.status) {
success -> println("success")
pending -> println("timeout")
failure-> println("process failed on server")
network_failure-> println("status fetch failed")
}
#tools@ergonomic_code #kotlin@ergonomic_code
Gist
(flow|sequence).termiateOn
(flow|sequence).termiateOn. GitHub Gist: instantly share code, notes, and snippets.
Привет!
Наткунлся на прикольную статью об объектах и абстрактных типах данных. Не особо практичная, именно прикольная - автор приходит к выводу, что функции высших порядков чаще используются в ОО, чем ФП программах, и что лямбда исчесления были "untyped λ-calculus was the first object-oriented language.":)
Более практично же обеъекты и АДТ рассмотрены в этой статье.
Если в кратце - объекты не должны быть единственным инструментом разработчка. Объекты надо применять, когда вероятность появления новых типов (наследников, реализаций интерфейсов), выше вероятности появления новых данных - в этом случае "данные" (Алгебраические типы данных), позволят добавить их не трогая старый код.
А иногда надо вообще запретить расширение клиентами, и в этом случае используются Абстрактные типы данных.
#papers@ergonomic_code #oop@ergonomic_code #fp@ergonomic_code
Наткунлся на прикольную статью об объектах и абстрактных типах данных. Не особо практичная, именно прикольная - автор приходит к выводу, что функции высших порядков чаще используются в ОО, чем ФП программах, и что лямбда исчесления были "untyped λ-calculus was the first object-oriented language.":)
Более практично же обеъекты и АДТ рассмотрены в этой статье.
Если в кратце - объекты не должны быть единственным инструментом разработчка. Объекты надо применять, когда вероятность появления новых типов (наследников, реализаций интерфейсов), выше вероятности появления новых данных - в этом случае "данные" (Алгебраические типы данных), позволят добавить их не трогая старый код.
А иногда надо вообще запретить расширение клиентами, и в этом случае используются Абстрактные типы данных.
#papers@ergonomic_code #oop@ergonomic_code #fp@ergonomic_code
Привет!
Пыль от поста на Хабре улеглась и пришло время подводить итоги:)
1) +4 к карме (+5 -1)
2) +13 рейтинг поста (+19 -6)
3) +1 предложение писать за деньги в один из топовых блогов на Хабре
4) 67 закладок
5) 0 конструктивной критики в комментах (по данным разведки)
6) +26 (+80%) подписчиков канала
Я считаю, что авантюра стала успешной.
Самым важным результатом для меня стали новые читатели - рад вас приветствовать в своём канале и спасибо за доверие.
Такой рост аудитории - хороший повод ещё раз написать, что я за движуху вообще здесь затеял.
Если коротко - то в последние несколько лет у меня стало получаться писать код, который поддерживать и развивать чуть менее больно, чем код, написанный в "стандартном" (для бэков на Java) стиле.
В книге, блоге и канале я пишу что я делаю по другому, почему я это делаю по другому и как я это делаю.
В итоге я хочу получить "методичку", следуя которой другие разработчики смогут без моего участия писать код, который им самим (и возможно мне) будет проще поддерживать.
Пыль от поста на Хабре улеглась и пришло время подводить итоги:)
1) +4 к карме (+5 -1)
2) +13 рейтинг поста (+19 -6)
3) +1 предложение писать за деньги в один из топовых блогов на Хабре
4) 67 закладок
5) 0 конструктивной критики в комментах (по данным разведки)
6) +26 (+80%) подписчиков канала
Я считаю, что авантюра стала успешной.
Самым важным результатом для меня стали новые читатели - рад вас приветствовать в своём канале и спасибо за доверие.
Такой рост аудитории - хороший повод ещё раз написать, что я за движуху вообще здесь затеял.
Если коротко - то в последние несколько лет у меня стало получаться писать код, который поддерживать и развивать чуть менее больно, чем код, написанный в "стандартном" (для бэков на Java) стиле.
В книге, блоге и канале я пишу что я делаю по другому, почему я это делаю по другому и как я это делаю.
В итоге я хочу получить "методичку", следуя которой другие разработчики смогут без моего участия писать код, который им самим (и возможно мне) будет проще поддерживать.
И вопрос куда пойдём дальше.
С одной стороны я несколько месяцев прокрастинирую финальный пост про виды функций. С другой стороны у меня сейчас критческий настрой и хочется покритиковать слоёную архитектуру. Что вам было бы интереснее в первую очередь?
С одной стороны я несколько месяцев прокрастинирую финальный пост про виды функций. С другой стороны у меня сейчас критческий настрой и хочется покритиковать слоёную архитектуру. Что вам было бы интереснее в первую очередь?
Anonymous Poll
15%
Виды функций
85%
Слоёная архитектура
0%
Написал в комментах свой вариант
Привет!
Дочитал Just Enough Software Architecture: A Risk-Driven Approach
Она прекрасна - пожалуй лучшая книга по архитектуре и роли архитектора, что я прочитал, рекомендую:)
#books@ergonomic_code #design@ergonomic_code
Дочитал Just Enough Software Architecture: A Risk-Driven Approach
Она прекрасна - пожалуй лучшая книга по архитектуре и роли архитектора, что я прочитал, рекомендую:)
#books@ergonomic_code #design@ergonomic_code
Привет!
Хотел написать небольшую заметку о SRP, OCP и дизайне типов и залип на 3 часа:)
Представляю вам пост ... <барабанная дробь>... Анкл Боб не всегда прав - критичное настроение всё ещё со мной:) В отпуск мне надо:)
#posts@ergonomic_code #solid@ergonomic_code
Хотел написать небольшую заметку о SRP, OCP и дизайне типов и залип на 3 часа:)
Представляю вам пост ... <барабанная дробь>... Анкл Боб не всегда прав - критичное настроение всё ещё со мной:) В отпуск мне надо:)
#posts@ergonomic_code #solid@ergonomic_code
Алексей Жидков
Анкл Боб не всегда прав - Алексей Жидков
Применение OCP в классическом виде может повлечь за собой нарушение SRP и повышенный риск регрессий.
хехей, нас 1000000b:)
а ещё 2 недели назад было на порядок меньше:)
экспоненциальный рост есть, можно идти к инвесторам:)
а ещё 2 недели назад было на порядок меньше:)
экспоненциальный рост есть, можно идти к инвесторам:)