Эргономичный код
819 subscribers
81 photos
3 videos
20 files
401 links
Канал о разработке поддерживаемых бакэндов - про классическую школу TDD, прагматичное функциональное программирование и архитектуру и немного DDD.

Группа: https://t.me/+QJRqaHI8YD

https://azhidkov.pro
Download Telegram
Привет!

Чёт эта неделька опять выдалась сложная я прокрастинирую пост о грязных функциях и сайд эффектах, потому что там кой-чего не схоидтся.

Поэтому сёня пост в бок с хейтом мейнстримного "ООП" - почитывал тут на досуге код на кложуре, и меня опять малёха бомбануло.

#posts@ergonomic_code #oop@ergonomic_code #clojure@ergonomic_code
Привет!

Сёня давно забытая рубриа хорошие книги:)

Прочитал тут Clojure Applied (чё думаете я про кложуру-то заговорил?:) ).

В целом хорошая книга, и ради 6ой главы (Creating Components) я бы порекомендовал её даже тем, кто кложурой не интересуется.

Там практически один в один расписаны компоненты ЭП. Даже называются так же:)

И казалось бы - я изобретаю велосипед и надо прекратить это делать. Но есть ряд причин, почему я продолжу изобретать свой велосипед:
1) все эти сходства говорят о том, что ЭП - это не записки сумашедшего идиалиста, а... как минимум записки толпы сумашедших идиалистов:) Ну либо вполне себе рабочая концепция:)
2) Я думаю у меня есть потенциал, придумать как минимум хорошую новую приблуду к этому велосипеду
3) это прикольно:)

Так что оставайтесь на нашей волне:) Вторничный пост пока не обещаю - неделька реально тяжёлая - но небольшой прогресс есть:)

#books@ergonomic_code #clojure@ergonomic_code #ergo_approach@ergonomic_code #ergo_arch@ergonomic_code #design
Ваш родной язык - русский
Родной язык всей команды - русский
Родной язык заказчика - русский Проект закрытый Продажа кода, выход в оперсор, привлечение иностранных контракторов не придвидится. На каком языке писать коммит мессаджы? И почему?
Anonymous Poll
41%
Русском
53%
Английском
6%
Без правил
Привет!

Тяжёлая неделька продолжается:(

Так что сёня опять побырому напишу об актуальном без редактуры.

Так вот актуальное - прочитал первую половину (про дизайн софта) этой книги.

У книги очень жирный посыл - если использовать "The Method", то софт можно гарантировать релизать в срок, бюджет и с нулём багов:) Прям как у меня с Эргономичным Подходом:)

И чёт этот посыл у меня вызывает определённый скепсис 🚎😂

Но есть там и пара интересных мыслей.

Декомпозиция по волатильности
Чувак пишет что, функциональная и доменная декомпозиция - надо декомпозировать по волатильности. Волатильность - это какой-то обособленный аспект системы, который может измениться в будущем и который надо изолировать в одном модуле.

Тут у меня сходу одно возражение - люди плохо предсказывают будущее. Но потом я малёха подумал и решил, что может не такая уж и плохая идея. Если подумать, что в софте может меняться? Алгоритм и формат данных хранящихся во внейшней системе (диск, бд, рест-сервис).

И в ЭП внешние системы уже инкапсулируются в модулях-компонентах, а про инкапсуляцию алгоритмов я думаю - как минимум она подразумевается принципом высокой связности/низкой связАнности, ну и я вообще думаю ввести второй тип компонент, которые собственно и инкапсулируют алгоритмы:)

В общем чувак поспешил и придумал переусложнённый ЭП:)

Архитектура должна НЕ соответствовать требованиям
Тут у меня сложности перевода: "should not be aligned with"
Мотивация - требования меняются, менять архитектуру дорого, если архитекутра будет отражать требования, то изменения требований будут дорогие.

Вот тут прям даж не могу поязвить - на первый взгляд дичь какая-то, но логика железобетонная.

#books@ergonomic_code #ergo_approach@ergonomic_code
Привет!

Сёня у нас рубрика хорошие люди:)

Этот яросный викинг 90-летний дедушка из Норвегии - автор того самого MVC.

Он ещё жив и лет 10 назад ещё точно был в здравом уме и пилил DCI - парадигма программирования, его "пенсионный проект [1]. Тоже хочу в 70-80 лет заводить свои пенсионные исследовательские проекты:)

https://en.wikipedia.org/wiki/Trygve_Reenskaug

#posts@ergonomic_code
Привет!

Очередной пост всё ещё в процессе.

Но кажись дело с сдвинулось с мёртвой точки и к следующей неделе я его допишу.

Придумал хорошую метафору к грязным функциям и функциям с побочками - функции-мошенники:)

По крайней мере я, когда меня очередная функция бьёт скрытым эффектом по хребтине, чувствую себя как раз обманутым и униженным:)
Привет!

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

И в эрго-постах сейчас будет некоторый перерыв. Во-первых, что-то мне стало совсем стыдно за "лого" этого канала - попробую хотя бы в векторе его перерисовать, во-вторых мне надо руками переделывать форматирование в телеграфе - поищу блог-платформу поддерживающую asciidoc, в-третьих, следующий пост будет заключительный в этом цикле и там надо будет уже утрясти терминологию наконец

#posts@ergonomic_code #fp@ergonomic_code #why_no_side_effects@ergonomic_code
Channel photo updated
Привет!

Надеюсь вам не прилетали нотификации в процессе моих экспериментов с лого канала:)

Но да, сегодня у нас новое лого:) Надеюсь оно повысит узнаваемость канала в списке:)
Насколько формальный язык вы бы хотели видеть в постах канала? Где 1 - текущий стиль личного чата, 5 - формальный стиль, с которым можно в рецензируемый журнал идти
Anonymous Poll
33%
1 - оставить текущий вид
39%
2 - убрать сокращения типа щяс и сеня
17%
3 - добавить прогон через какую-нибудь тул
11%
4 - убрать англицизмы: тул -> инструмент
0%
5 - убрать шутки/сарказм/мысли в слух
0%
? - свой вариант, напишу в комментах
image_2021-02-26_09-27-44.png
28.7 KB
Привет!

Нового контента я не скреативил, так что сегодня ток тизер и линки:)

Во-первых, что-то я увлёкся новой блог-платформой и у меня 4 года спустя наконец появился персональный сайт:) Почти - надо туда ещё посты перетащить, параллельно подправив линки и содержание:) Ну и в целом тексты ещё раз проревьювить:)

Во-вторых, посмотрел пару хороших видосов о том почему слоёная архитектура плоха и что делать вместо неё.

https://www.youtube.com/watch?v=5OjqD-ow8GE - тут докладчик довольно известный мужик и я о нём как-нибудь напишу пост в рубрику "хорошие люди". Доклад более верхнеуровневый, о принципах дизайна.

https://www.youtube.com/watch?v=BOvxJaklcr0 - а вот тут как раз уже больше техник реализации модульных приложений. Докладчика я не знаю, но в целом доклад вполне достойный:)

#talks@ergonomic_code
Непроверенная линка - https://justine.lol/redbean/index.html
Если вкратце - одни маленький (200кб) исполняемый бинарник, который может выдавать ответы по хттп.

Сейчас детально в читываться некогда, поэтому отправил на кладбище ссылок. Но имхо штука прикольная, так что решил написать:)

P.S. никогда не запускайте неизвестные бинарники скачанные из интернета:)
Чуваки, которые придумал CRDT запилили платформу для local-first приложений: https://concordant.io/
Да ещё и на Kotlin MPP - кажись они стырили идею моего кубита:)

#tools@ergonomic_code
Привет!

Занят тушинем пожара, в виде смены требований в последний момент, так что пока ток линко-посты. И на этот раз даже боян скорее всего, но меня заинтерсовало:)

Джетбрейнс запили тул для локального дева: https://blog.jetbrains.com/blog/2021/03/11/projector-is-out/

Надо потестить, и если реально не сильно тормозит, то можно не менять ноут на 15шку:) Надо ток решить вопрос, кто будет включать комп, после выключения электричества, если я при этом буду где-нить за бугром:)

#tools@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
Привет!

Небольшая статейка о вреде временнОй связности и побочных эффектов: https://proandroiddev.com/stop-crafting-your-time-bomb-39f2d26987e0

Единственное что, я бы часть про Элегантные Объекты пропустил - уважаю Бугаенко за его продуктивность, принципиальность и масштабность, но работать с кодом в его стиле я бы не хотел:)

#posts@ergonomic_code #why_no_side_effects@ergonomic_code