Привет!
Чётэта неделька опять выдалась сложная я прокрастинирую пост о грязных функциях и сайд эффектах, потому что там кой-чего не схоидтся.
Поэтому сёня пост в бок с хейтом мейнстримного "ООП" - почитывал тут на досуге код на кложуре, и меня опять малёха бомбануло.
#posts@ergonomic_code #oop@ergonomic_code #clojure@ergonomic_code
Чёт
Поэтому сёня пост в бок с хейтом мейнстримного "ООП" - почитывал тут на досуге код на кложуре, и меня опять малёха бомбануло.
#posts@ergonomic_code #oop@ergonomic_code #clojure@ergonomic_code
Telegraph
Красная или синяя?
Пост для канала "Эргономичный код" Меня тут осенило.Возьмём вот такой кусочек кода на кложуре (чисто функциональном языке):
Привет!
Сёня давно забытая рубриа хорошие книги:)
Прочитал тут Clojure Applied (чё думаете я про кложуру-то заговорил?:) ).
В целом хорошая книга, и ради 6ой главы (Creating Components) я бы порекомендовал её даже тем, кто кложурой не интересуется.
Там практически один в один расписаны компоненты ЭП. Даже называются так же:)
И казалось бы - я изобретаю велосипед и надо прекратить это делать. Но есть ряд причин, почему я продолжу изобретать свой велосипед:
1) все эти сходства говорят о том, что ЭП - это не записки сумашедшего идиалиста, а... как минимум записки толпы сумашедших идиалистов:) Ну либо вполне себе рабочая концепция:)
2) Я думаю у меня есть потенциал, придумать как минимум хорошую новую приблуду к этому велосипеду
3) это прикольно:)
Так что оставайтесь на нашей волне:) Вторничный пост пока не обещаю - неделька реально тяжёлая - но небольшой прогресс есть:)
#books@ergonomic_code #clojure@ergonomic_code #ergo_approach@ergonomic_code #ergo_arch@ergonomic_code #design
Сёня давно забытая рубриа хорошие книги:)
Прочитал тут Clojure Applied (чё думаете я про кложуру-то заговорил?:) ).
В целом хорошая книга, и ради 6ой главы (Creating Components) я бы порекомендовал её даже тем, кто кложурой не интересуется.
Там практически один в один расписаны компоненты ЭП. Даже называются так же:)
И казалось бы - я изобретаю велосипед и надо прекратить это делать. Но есть ряд причин, почему я продолжу изобретать свой велосипед:
1) все эти сходства говорят о том, что ЭП - это не записки сумашедшего идиалиста, а... как минимум записки толпы сумашедших идиалистов:) Ну либо вполне себе рабочая концепция:)
2) Я думаю у меня есть потенциал, придумать как минимум хорошую новую приблуду к этому велосипеду
3) это прикольно:)
Так что оставайтесь на нашей волне:) Вторничный пост пока не обещаю - неделька реально тяжёлая - но небольшой прогресс есть:)
#books@ergonomic_code #clojure@ergonomic_code #ergo_approach@ergonomic_code #ergo_arch@ergonomic_code #design
Pragprog
Clojure Applied
Take the next step in Clojure, with extended lessons on the best practices and most critical decisions you’ll need to make.
Ваш родной язык - русский
Родной язык всей команды - русский
Родной язык заказчика - русский Проект закрытый Продажа кода, выход в оперсор, привлечение иностранных контракторов не придвидится. На каком языке писать коммит мессаджы? И почему?
Родной язык всей команды - русский
Родной язык заказчика - русский Проект закрытый Продажа кода, выход в оперсор, привлечение иностранных контракторов не придвидится. На каком языке писать коммит мессаджы? И почему?
Anonymous Poll
41%
Русском
53%
Английском
6%
Без правил
Привет!
Тяжёлая неделька продолжается:(
Так что сёня опять побырому напишу об актуальном без редактуры.
Так вот актуальное - прочитал первую половину (про дизайн софта) этой книги.
У книги очень жирный посыл - если использовать "The Method", то софт можно гарантировать релизать в срок, бюджет и с нулём багов:) Прям как у меня с Эргономичным Подходом:)
И чёт этот посыл у меня вызывает определённый скепсис 🚎😂
Но есть там и пара интересных мыслей.
Декомпозиция по волатильности
Чувак пишет что, функциональная и доменная декомпозиция - надо декомпозировать по волатильности. Волатильность - это какой-то обособленный аспект системы, который может измениться в будущем и который надо изолировать в одном модуле.
Тут у меня сходу одно возражение - люди плохо предсказывают будущее. Но потом я малёха подумал и решил, что может не такая уж и плохая идея. Если подумать, что в софте может меняться? Алгоритм и формат данных хранящихся во внейшней системе (диск, бд, рест-сервис).
И в ЭП внешние системы уже инкапсулируются в модулях-компонентах, а про инкапсуляцию алгоритмов я думаю - как минимум она подразумевается принципом высокой связности/низкой связАнности, ну и я вообще думаю ввести второй тип компонент, которые собственно и инкапсулируют алгоритмы:)
В общем чувак поспешил и придумал переусложнённый ЭП:)
Архитектура должна НЕ соответствовать требованиям
Тут у меня сложности перевода: "should not be aligned with"
Мотивация - требования меняются, менять архитектуру дорого, если архитекутра будет отражать требования, то изменения требований будут дорогие.
Вот тут прям даж не могу поязвить - на первый взгляд дичь какая-то, но логика железобетонная.
#books@ergonomic_code #ergo_approach@ergonomic_code
Тяжёлая неделька продолжается:(
Так что сёня опять побырому напишу об актуальном без редактуры.
Так вот актуальное - прочитал первую половину (про дизайн софта) этой книги.
У книги очень жирный посыл - если использовать "The Method", то софт можно гарантировать релизать в срок, бюджет и с нулём багов:) Прям как у меня с Эргономичным Подходом:)
И чёт этот посыл у меня вызывает определённый скепсис 🚎😂
Но есть там и пара интересных мыслей.
Декомпозиция по волатильности
Чувак пишет что, функциональная и доменная декомпозиция - надо декомпозировать по волатильности. Волатильность - это какой-то обособленный аспект системы, который может измениться в будущем и который надо изолировать в одном модуле.
Тут у меня сходу одно возражение - люди плохо предсказывают будущее. Но потом я малёха подумал и решил, что может не такая уж и плохая идея. Если подумать, что в софте может меняться? Алгоритм и формат данных хранящихся во внейшней системе (диск, бд, рест-сервис).
И в ЭП внешние системы уже инкапсулируются в модулях-компонентах, а про инкапсуляцию алгоритмов я думаю - как минимум она подразумевается принципом высокой связности/низкой связАнности, ну и я вообще думаю ввести второй тип компонент, которые собственно и инкапсулируют алгоритмы:)
В общем чувак поспешил и придумал переусложнённый ЭП:)
Архитектура должна НЕ соответствовать требованиям
Тут у меня сложности перевода: "should not be aligned with"
Мотивация - требования меняются, менять архитектуру дорого, если архитекутра будет отражать требования, то изменения требований будут дорогие.
Вот тут прям даж не могу поязвить - на первый взгляд дичь какая-то, но логика железобетонная.
#books@ergonomic_code #ergo_approach@ergonomic_code
GitHub
developing-ergonomic-code/book-rus/developing-ergonomic-code.adoc at master · d-r-q/developing-ergonomic-code
Book about practices and techniques to develop code that is simple to comprehend and maintain - d-r-q/developing-ergonomic-code
Привет!
Сёня у нас рубрика хорошие люди:)
Этотяросный викинг 90-летний дедушка из Норвегии - автор того самого MVC.
Он ещё жив и лет 10 назад ещё точно был в здравом уме и пилил DCI - парадигма программирования, его "пенсионный проект [1]. Тоже хочу в 70-80 лет заводить свои пенсионные исследовательские проекты:)
https://en.wikipedia.org/wiki/Trygve_Reenskaug
#posts@ergonomic_code
Сёня у нас рубрика хорошие люди:)
Этот
Он ещё жив и лет 10 назад ещё точно был в здравом уме и пилил DCI - парадигма программирования, его "пенсионный проект [1]. Тоже хочу в 70-80 лет заводить свои пенсионные исследовательские проекты:)
https://en.wikipedia.org/wiki/Trygve_Reenskaug
#posts@ergonomic_code
Wikipedia
Model–view–controller
software architectural pattern for user interfaces which divides the related program logic into three interconnected elements to separate internal representations of information and how information is presented to and accepted from the user
Привет!
Очередной пост всё ещё в процессе.
Но кажись дело с сдвинулось с мёртвой точки и к следующей неделе я его допишу.
Придумал хорошую метафору к грязным функциям и функциям с побочками - функции-мошенники:)
По крайней мере я, когда меня очередная функция бьёт скрытым эффектом по хребтине, чувствую себя как раз обманутым и униженным:)
Очередной пост всё ещё в процессе.
Но кажись дело с сдвинулось с мёртвой точки и к следующей неделе я его допишу.
Придумал хорошую метафору к грязным функциям и функциям с побочками - функции-мошенники:)
По крайней мере я, когда меня очередная функция бьёт скрытым эффектом по хребтине, чувствую себя как раз обманутым и униженным:)
А вот что бывает, когда даришь право собственности на свои данных корпроациям добра: https://twitter.com/Demilogic/status/1358661841220730882
Twitter
Andrew Spinks
My phone has lost access to thousands of dollars of apps on @GooglePlay. I had just bought LOTR 4K and can't finish it. My @googledrive data is completely gone. I can't access my @YouTube channel. The worst of all is losing access to my @gmail address of…
Привет!
Сегодня пост в рубрику "Актуальное":)
О том как нарушение принципов эргономичного подхода повышает wtf/s :)
#posts@ergonomic_code #ergo_approach@ergonomic_code #fp@ergonomic_code
Сегодня пост в рубрику "Актуальное":)
О том как нарушение принципов эргономичного подхода повышает wtf/s :)
#posts@ergonomic_code #ergo_approach@ergonomic_code #fp@ergonomic_code
Telegraph
Неэргономичный Jackson
В последнее вермя несколько раз писал примерно такой код для сериализации объекта в json Jackson-ом:
Привет!
По времени опубликовал пост о функциях-мошенниках. Сейчас мне эта терминология уже совсем не нравится, но я сильно долго мурыжу этот пост так что пока пусть будет так. Ну и надеюсь суть мне удалось описать.
И в эрго-постах сейчас будет некоторый перерыв. Во-первых, что-то мне стало совсем стыдно за "лого" этого канала - попробую хотя бы в векторе его перерисовать, во-вторых мне надо руками переделывать форматирование в телеграфе - поищу блог-платформу поддерживающую asciidoc, в-третьих, следующий пост будет заключительный в этом цикле и там надо будет уже утрясти терминологию наконец
#posts@ergonomic_code #fp@ergonomic_code #why_no_side_effects@ergonomic_code
По времени опубликовал пост о функциях-мошенниках. Сейчас мне эта терминология уже совсем не нравится, но я сильно долго мурыжу этот пост так что пока пусть будет так. Ну и надеюсь суть мне удалось описать.
И в эрго-постах сейчас будет некоторый перерыв. Во-первых, что-то мне стало совсем стыдно за "лого" этого канала - попробую хотя бы в векторе его перерисовать, во-вторых мне надо руками переделывать форматирование в телеграфе - поищу блог-платформу поддерживающую asciidoc, в-третьих, следующий пост будет заключительный в этом цикле и там надо будет уже утрясти терминологию наконец
#posts@ergonomic_code #fp@ergonomic_code #why_no_side_effects@ergonomic_code
Telegraph
Типы функций: функции-мошенники
Блог переехал на мой сайт Пост для канала "эргономичный код"Начало здесь, здесь и здесь.С второго взгляда терминология оказалась не такой уж чудесной, как показалась на первый взгляд, но я на этом посте засиделся, так что публикую как есть. В посте с итогами…
Привет!
Надеюсь вам не прилетали нотификации в процессе моих экспериментов с лого канала:)
Но да, сегодня у нас новое лого:) Надеюсь оно повысит узнаваемость канала в списке:)
Надеюсь вам не прилетали нотификации в процессе моих экспериментов с лого канала:)
Но да, сегодня у нас новое лого:) Надеюсь оно повысит узнаваемость канала в списке:)
Насколько формальный язык вы бы хотели видеть в постах канала? Где 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
Нового контента я не скреативил, так что сегодня ток тизер и линки:)
Во-первых, что-то я увлёкся новой блог-платформой и у меня 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. никогда не запускайте неизвестные бинарники скачанные из интернета:)
Если вкратце - одни маленький (200кб) исполняемый бинарник, который может выдавать ответы по хттп.
Сейчас детально в читываться некогда, поэтому отправил на кладбище ссылок. Но имхо штука прикольная, так что решил написать:)
P.S. никогда не запускайте неизвестные бинарники скачанные из интернета:)
Чуваки, которые придумал CRDT запилили платформу для local-first приложений: https://concordant.io/
Да ещё и на Kotlin MPP - кажись они стырили идею моего кубита:)
#tools@ergonomic_code
Да ещё и на Kotlin MPP - кажись они стырили идею моего кубита:)
#tools@ergonomic_code
Привет!
Занят тушинем пожара, в виде смены требований в последний момент, так что пока ток линко-посты. И на этот раз даже боян скорее всего, но меня заинтерсовало:)
Джетбрейнс запили тул для локального дева: https://blog.jetbrains.com/blog/2021/03/11/projector-is-out/
Надо потестить, и если реально не сильно тормозит, то можно не менять ноут на 15шку:) Надо ток решить вопрос, кто будет включать комп, после выключения электричества, если я при этом буду где-нить за бугром:)
#tools@ergonomic_code
Занят тушинем пожара, в виде смены требований в последний момент, так что пока ток линко-посты. И на этот раз даже боян скорее всего, но меня заинтерсовало:)
Джетбрейнс запили тул для локального дева: https://blog.jetbrains.com/blog/2021/03/11/projector-is-out/
Надо потестить, и если реально не сильно тормозит, то можно не менять ноут на 15шку:) Надо ток решить вопрос, кто будет включать комп, после выключения электричества, если я при этом буду где-нить за бугром:)
#tools@ergonomic_code
The JetBrains Blog
Access Your IDE Remotely With Projector | The JetBrains Blog
Today we're announcing the initial release of Projector – a tool and framework for running JetBrains IDEs and Swing apps remotely over your network. As you may know, Swing is a graphical widget too
Привет!
Тихой сапой осилил эту книгу: 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.
