Абьюзивные отношения с ООП

ООП было доминирующей парадигмой в программировании последние 30 лет. Для большого количества программистов ООП - это и есть Программирование, будто бы когда-то древние люди программировали в императивном стиле, а потом случился прогресс и пришло спасение, и все поняли “как надо”.

[Read More]

GNOME и вы

GNOME - один из двух “главных” десктопов (DE) на Linux, вместе с KDE. Для многих дистрибутивов он же “дефолтный” рабочий стол (Ubunty, Fedora) хотя опять-таки, многие из них не вносят определенные изменнения (Ubuntu яркий пример), поэтому это не совсем тот GNOME, каким он задуман разработчиками. После долгих лет скитаний по Linux десктопам сейчас он стал моим основным - начал с GNOME, на нем и закончил (на текущий момент :)).

[Read More]

Вайб-кодинг на Cursor

Vibe coding это новая ужасная/потрясающая тенденция в разработке. По сути люди без опыта в разработке собирают при помощи ИИ помощников полноценные коммерческие приложения и продают их пользователям за реальные деньги.

[Read More]

Проблемы с вставкой в Clickhouse

Clickhouse одна из самых крутых вещёй, с которыми я сталкивался в IT. Невероятно быстрая OLAP база данных, которая отлично работает как в облаке (есть решения через AWS), так и локально в составе одного единственного бинарника, который можно легко запустить из CLI.

[Read More]

Свободные Монады

Несмотря на то, что я в основном разрабатывают программы на языке Python, некоторые понятия из функционального программирования всё равно на слуху - одно из них это монады. Монады фундаментальны для функциональных ЯП, особенно для языков вроде Haskell, для которых не допускают “не чистых” функций, поэтому монада - это единственный способ выражения и работы с состоянием.

[Read More]

Ещё один взгляд на TDD

Недавно в небольшом посте про TDD я жаловался на то, что этот подход к написанию программ сводит на нет креативностью в подходе к “исследованию” проблемы.

Но при этом меня не покидало ощущение, что я недопонимаю что-то важное в подходе TDD. Мой предыдующий опыт знакомства с TDD был связан с “Python: Разработка на основе тестирования” Гарри Персиваля, а также нескольких други отдельных постов о TDD.

[Read More]

Мини-обзор на Cursor - редактор кода с AI

В силу некоторых причин, я недавно отказался от подписки на OpenAI. И освободившиеся средства было решено потратить на Cursor - клон VSCode с тесной интеграцией с AI “из коробки”. До этого в основном использование AI ограничивалось обычным чатом с ChatGPT или подгрузкой небольших файлов в GhatGTP проекты.

[Read More]

Я не понимаю TDD

Test Driven Development (TDD) это один из очень уважаемых подходов к разработке и считается признаком высокой культуры подхода к разработке. Кроме того это одна из первых “больших” идей в программировании, с которой я познакомился через книгу Гарри Персиваля “Python. Разработка на основе тестирования”. Но недавно для себя я решил пока полностью отказаться от этой идеи, по крайней мере в собственных проектах, и вот почему.

[Read More]

Функциональное программирование и Roc

Использованием приёмов из функционального репертуара уже давно никого не удивишь - использование различных map, reduce и filter очень распространено. А писать как можно больше “чистых функций” рекомендуется повсеместно. И всё же даже используются такие вот функциональные паттерны опыт написания программ на привычном JavaScript или Python заметно отличается от “чистых” языков программирования - я практически могу гарантировать, что “функциональный код” на Python скорее всего будет по большей части императивным.

[Read More]

Небесполезный Caps Lock

Всех с Новым годом!

Стараюсь вернуться к регулярному постингу после праздников, и начнём мы с простого. Никогда не замечали эту клавишу Caps Lock. С ней связаны любопытные особенности:

  • Она расположена как раз под левым мизинцем, с нашими пальцами, расположенными на F и J. Это делает её чрезвычайно удобной для нажатия. При этом полезные для любых продвинутых пользователей клавиатуры клавиши (Ctrl, Alt, Esc) не так легко доступны для наших пальцев, что весьма неудобно (погуглите Emacs pinky finger).

    [Read More]