Пятничное чтиво
На этой неделе прошел стрим, делал реализацию the game of life.
- Сайт с календарем стримов;
- Youtube плейлист прошедших стримов;
Так же буду рад предложениям и вопросам, можно в личку, можно в анонимную форму.
—————————————
Functional architecture is Ports and Adapters и русский перевод
Автор, используя f#, показывает как разделение приложения на чистые и грязные функции ложиться на концепцию портов и адаптеров из гексагональной архитектуры. Для проверки разделения на “правильность” используется Haskell. Вывод из статьи: чистые функции - кор приложения, а остальные функции оказываются вокруг, как это сделано в портах и адаптерах.
Мне нравится эта идея, начинаю приходить к похожему подходу в проектах. В таком случае вызов логики становится линейным и легко тестируемым за счет изоляции сайд эффектов. Кажется, что в js мире приходят к чему-то такому с выносом синхронных функций в кор и асинхронных вокруг этого кора.
Ну а для тех, кто не слышал о гексогональной архитектре ссылка на статью, в которой автор попробовал собрать эти концепции вместе. А так же, русски перевод.
—————————————
Advanced Postgres Performance Tips
Using EXPLAIN ANALYZE to debug a slow SQL query
Understanding 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?;
- Пропозал однострочного паттерн матчинга в руби;
На этой неделе прошел стрим, делал реализацию the game of life.
- Сайт с календарем стримов;
- Youtube плейлист прошедших стримов;
Так же буду рад предложениям и вопросам, можно в личку, можно в анонимную форму.
—————————————
Functional architecture is Ports and Adapters и русский перевод
Автор, используя f#, показывает как разделение приложения на чистые и грязные функции ложиться на концепцию портов и адаптеров из гексагональной архитектуры. Для проверки разделения на “правильность” используется Haskell. Вывод из статьи: чистые функции - кор приложения, а остальные функции оказываются вокруг, как это сделано в портах и адаптерах.
Мне нравится эта идея, начинаю приходить к похожему подходу в проектах. В таком случае вызов логики становится линейным и легко тестируемым за счет изоляции сайд эффектов. Кажется, что в js мире приходят к чему-то такому с выносом синхронных функций в кор и асинхронных вокруг этого кора.
Ну а для тех, кто не слышал о гексогональной архитектре ссылка на статью, в которой автор попробовал собрать эти концепции вместе. А так же, русски перевод.
—————————————
Advanced Postgres Performance Tips
Using EXPLAIN ANALYZE to debug a slow SQL query
Understanding 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?;
- Пропозал однострочного паттерн матчинга в руби;