Пятничное чтиво



На этой неделе прошел стрим, делал реализацию 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?;

- Пропозал однострочного паттерн матчинга в руби;