Пятничное чтивоНа этой неделе прошел стрим, делал реализацию the game of life.
-
Сайт с календарем стримов;
-
Youtube плейлист прошедших стримов;
Так же буду рад предложениям и вопросам, можно в личку,
можно в анонимную форму.
—————————————
Functional architecture is Ports and Adapters и
русский переводАвтор, используя f#, показывает как разделение приложения на чистые и грязные функции ложиться на концепцию портов и адаптеров из гексагональной архитектуры. Для проверки разделения на “правильность” используется Haskell. Вывод из статьи: чистые функции - кор приложения, а остальные функции оказываются вокруг, как это сделано в портах и адаптерах.
Мне нравится эта идея, начинаю приходить к похожему подходу в проектах. В таком случае вызов логики становится линейным и легко тестируемым за счет изоляции сайд эффектов. Кажется, что в js мире приходят к чему-то такому с выносом синхронных функций в кор и асинхронных вокруг этого кора.
Ну а для тех, кто не слышал о гексогональной архитектре
ссылка на статью, в которой автор попробовал собрать эти концепции вместе. А так же,
русски перевод.
—————————————
Advanced Postgres Performance TipsUsing EXPLAIN ANALYZE to debug a slow SQL queryUnderstanding Window FunctionsСерия статей о постгресе и SQL благодаря которым можно разобраться с EXPLAIN ANALYZE, window functions и MATERIALIZED VIEW. Статья об EXPLAIN ANALYZE помогла разобраться в оптимизации кода. А если используете hanami/rom, то есть лайфхак, как вызывать analyze из репозитория:
Profiling your SQL queries in hanami (or ROM)Ну а так же
плагин для rom5, который позволяет использовать форматирование для explain.
—————————————
Rethinking Visual Programming with GoНедостаток программирования - сложно представить схему системы только с помощью текста. Поэтому разработчики любят диаграммы, вайтборды и другие вещи, помогающие изобразить мысли в виде рисунков. На этой почве появляются тулсеты (IDE рисующие зависимости классов, таблиц в бд и так далее), которые могут помочь упростить понимание абстракций. И о таком тулсете рассказывается в статье. Автор попробовал визуализировать код на го и теперь делиться опытом.
Кроме тулсетов создаются языки программирования построенные на визуальном программировании. Например
luna, который развивается до сих пор и позволяет манипулировать данными в визуальном стиле. Так же, обороты набирает программирование в VR:
Introducing LogiX - VR multiplayer visual programming system.
Так же, в dry-system появляются зачатки похожей системы. Уже есть граф зависимостей, скоро будет “среда” для полноценной работы над ним:
Generate dependency graph for all objects in application container——— одной строкой ———
-
What are your worst coding habits?;
-
Пропозал однострочного паттерн матчинга в руби;