Организованное программирование

Кирилл Мокевнин

Пишем код, за который не стыдно. Разбираем базу, даем рекомендации и встречаемся с умными людьми

  1. #75 Haskell для начинающих: разбираем IO, Maybe и do-нотацию | Александр Вершилов

    6D AGO

    #75 Haskell для начинающих: разбираем IO, Maybe и do-нотацию | Александр Вершилов

    Сегодня  у нас в гостях вновь Александр Вершилов, который уже  15 лет пишет на Haskell. Мы продолжаем разговор про Haskell и переходим к той теме, на которой у многих разработчиков всё обычно ломается — IO, побочные эффекты и монады. Haskell регулярно называют «слишком сложным» языком. Чаще всего это происходит ровно в момент, когда разговор доходит до работы с внешним миром. До этого — чистые функции, композиция, красивая типизация. А дальше — «реальный мир», контексты вычислений и ощущение, что ты внезапно оказался в другой вселенной. В выпуске мы разобраели, почему в чистом языке вообще возникает проблема IO, что такое referential transparency и почему чтение файла её нарушает. Обсудили, зачем Haskell протаскивает через типы «токен реального мира», как устроен IO изнутри и почему это не встроенная магия компилятора, а обычная структура данных с чёткими правилами. Пошагово прошли через Maybe и Either, связывание вычислений, do-нотацию и законы монад, а затем сравнили этот подход с Result в Rust, async/await в JavaScript и обработкой ошибок в Go. Полезные ссылки:Twitter - https://x.com/qnikst Подписывайтесь на канал «Организованное программирование» в Telegram: https://ttttt.me/orgprog– Список подкаст-платформ (Apple Podcast, Google Podcast, Spotify, Яндекс.Музыка и другие): https://podcast.ru/1734325321– Смотреть в ВК Видео: https://vkvideo.ru/video-224967259_456239224 🔹 Telegram-канал Организованного Программирования: https://t.me/orgprog🔹Хекслет Клуб в Telegram https://t.me/HexletClubBot #функциональноепрограммирование #haskell #fp #программирование  #языкипрограммирования #itподкаст #typeclasses #архитектура Haskell для начинающих: разбираем IO, Maybe и do-нотацию | Александр Вершилов #75 (00:00) - — Монады без боли: почему их боятся и зря (00:59) - — Переходим к практике: готовим среду и код (02:32) - — Где в Haskell начинается «та самая сложность» (05:22) - — Два пути работы с эффектами: хаос или контроль (13:56) - — Кто реально выполняет ваш код? Роль интерпретатора (29:14) - — Порядок вычислений: скрытая проблема ленивости (36:52) - — Можно ли повторить Haskell в JavaScript? (48:14) - — Самый простой пример работы с IO (59:15) - — Пишем свою монаду и разбираем механику (01:11:03) - — Где монады реально спасают: транзакции и сеть (01:21:30) - — Maybe: убийца Null Pointer Exception (01:43:18) - — Монада простыми словами: структура + связывание (01:54:05) - — Promise — это монада или нет? (02:03:14) - — Заключение: монады меняют мышление ★ Support this podcast ★

    2h 4m
  2. #74 Как работает Search Engine под капотом: ранжирование и релевантность | Рауф Алиев

    FEB 15

    #74 Как работает Search Engine под капотом: ранжирование и релевантность | Рауф Алиев

    Сегодня у меня в гостях Рауф Алиев — человек, который варится в поиске уже четверть века. Он начинал с самописного inverted index в начале 2000-х, когда всё приходилось изобретать руками, и дошёл до современных гибридных систем — с векторным поиском, трансформерами и рекомендациями поверх всего этого. Мы обсудили, как вообще устроен полнотекстовый поиск: что такое inverted index на практике, зачем нужен BM25, почему важно учитывать длину документа, что дают proximity и exact match. Отдельно разобрали, почему фасеты — это не совсем «поиск», как работают стемминг и лемматизация, зачем иногда хранить и нормализованный, и оригинальный текст, и почему работа с разными языками — это отдельная инженерная боль. Потом ушли в гибридные модели: как смешиваются ключевые слова, query expansion, синонимы и векторные представления. Поговорили о том, почему векторный поиск лучше понимает смысл, но хуже объясняет свои решения, и как LLM можно использовать не для болтовни в чате, а как инструмент, который превращает человеческий запрос в понятные системе фильтры. Ну и, конечно, обсудили качество. Что такое precision, recall, NDCG на практике, как собрать свой ground truth и как сравнивать конфигурации поиска без мучительных A/B-экспериментов на пользователях. И почему почти всегда, улучшая одну метрику, ты неизбежно просаживаешь другую — и с этим просто приходится жить. Полезные ссылки:https://testmysearch.com/my-books.html Подписывайтесь на канал «Организованное программирование» в Telegram: https://ttttt.me/orgprog– Список подкаст-платформ (Apple Podcast, Google Podcast, Spotify, Яндекс.Музыка и другие): https://podcast.ru/1734325321 🔹 Telegram-канал Организованного Программирования: https://t.me/orgprog🔹Хекслет Клуб в Telegram https://t.me/HexletClubBot🔹Курсы по программированию — начни учиться уже сегодня: https://ru.hexlet.io/courses #программирование #разработка  #кириллмокевнин  #подкаст  #организованноепрограммирование #поисковыесистемы #invertedindex #векторныйпоиск Как работает Search Engine под капотом: ранжирование и релевантность (00:00) - Введение. Поиск сложнее, чем вы думаете - 25 лет опыта за 2 часа (01:07) - От Сфинкса до Elastic: как менялся рынок поисковых систем (06:00) - Теория или практика? Как правильно входить в сложные системы (14:42) - Как SEO и маркетплейсы ломают алгоритмы (19:55) - SEO началось с манипуляций: как PageRank всё изменил (31:12) - Архив за 100 лет и гибридный поиск на практике (44:05) - Гибридный поиск — будущее индустрии (01:01:04) - Транслитерация и языковые ловушки (01:13:53) - Как искать Go или C и не сломать поиск (01:21:54) - LLM как ревизор поисковой системы (01:28:19) - Локальные поисковики против Google (01:32:21) - Китайский без пробелов и другие языковые боли (01:36:45) - Заключение. Поиск — это компромисс между математикой и бизнесом ★ Support this podcast ★

    1h 37m
  3. #5 Проектирование классов и SRP | Разбор книги Роберта Мартина

    FEB 8

    #5 Проектирование классов и SRP | Разбор книги Роберта Мартина

    В этом выпуске я заканчиваю цикл разборов книги "Чистый код" Роберта Мартина. Сегодня подробно обсудим одну из самых противоречивых глав,  посвящённую классам, а также найдем ответ на вопрос - "Почему многие привычные критерии «хорошего ООП» плохо работают в реальной разработке"?  В этом выпуске я последовательно разбираю, почему ориентация на размеры классов и количество «ответственностей» — это вторичный и часто вводящий в заблуждение критерий, где принцип единой ответственности действительно помогает, а где начинает мешать и подменять мышление, и почему попытки тестировать код через раскрытие внутренних деталей классов почти всегда сигналят о проблемах в дизайне. На конкретных примерах, включая Prime Generator, показываю, как формальные преобразования «по принципам» легко раздувают код, не добавляя ясности, и почему классы сами по себе редко совпадают с реальными границами абстракций, архитектуры и bounded contexts.  Отдельно уделил внимание конфликту между ООП-мышлением через классы и подходом через сообщения, состояния и домены, а также объясняю, почему многие аналогии и учебные примеры из Clean Code плохо масштабируются на практику. В конце вас ждут итоги всего цикла: что из книги действительно стоит сохранить, а к чему полезно относиться критически, даже если это давно считается «каноном». Первая часть разбора: https://youtu.be/-tp2bfP36HgВторая часть разбора: https://youtu.be/KK9XK6BtqBMТретья часть разбора: https://youtu.be/bfhUhim0V1YЧетвертая часть разбора: https://youtu.be/DqgAqCpYsbs Подписывайтесь на канал «Организованное программирование» в Telegram: https://ttttt.me/orgprog– Список подкаст-платформ (Apple Podcast, Google Podcast, Spotify, Яндекс.Музыка и другие): https://podcast.ru/1734325321– Смотреть в ВК Видео: https://vkvideo.ru/video-224967259_456239231 🔹 Telegram-канал Организованного Программирования: https://t.me/orgprog🔹Хекслет Клуб в Telegram https://t.me/HexletClubBot🔹Курсы по программированию — начни учиться уже сегодня: https://ru.hexlet.io/courses #чистыйкод #программирование #разработка  #чистаяархитектура #кириллмокевнин  Упоминания Разбор второй части чистого кода - https://bugzmanov.github.io/cleancode-critique/clean_code_second_edition_review.html Проектирование классов и SRP | Разбор книги Роберта Мартина #5 (00:00) - — Введение. Последний выпуск по "Чистому коду" (01:00) - — Что не так с последней главой? Мнение опытного разработчика (06:36) - — Почему “идеальный программист” — это не миф (13:04) - — Как из одной ответственности вырастает оверинжиниринг (23:49) - — Как SRP сбивает с толку, если применять его вслепую (31:12) - — Миф о сложности: почему “много классов” пугает разработчиков (38:44) - — Объекты против классов: главное заблуждение Java-подхода (47:20) - — Как на опыте рождаются архитектурные решения (55:02) - — Анализ циклов и переменных (01:03:49) - — “Чистый код” как манифест устаревшего ООП (01:10:09) - — Увеличение кода ≠ улучшение архитектуры (01:16:16) - — SRP vs. реальность: почему теория не работает (01:22:30) - — Принципы проектирования не работают без контекста (01:27:00) - — Заключение. Что мы поняли о “Чистом коде”? ★ Support this podcast ★

    1h 28m
  4. #73 Антон Назаров: как вести дебаты, в которых "поплывет" любой

    FEB 1

    #73 Антон Назаров: как вести дебаты, в которых "поплывет" любой

    В этом выпуске  мы поговорили с Антоном Назаровым, создателем сообщества «Осознанная меркантильность», про дебаты как навык и как практику. Разобрали реальные кейсы: удачные, неудачные и спорные.Мы говорили о том, зачем вообще идти в публичные дебаты и какую задачу они решают на самом деле, почему в них важно не переубедить оппонента, а выстроить работу с восприятием аудитории, и как подготовка — или её отсутствие — напрямую влияет на то, «плывёт» человек в разговоре или удерживает позицию. Обсудили, как уточнение терминов и задание рамки разговора меняют динамику дискуссии, какие аргументы чаще всего вызывают агрессию и переходы на личности, где проходит граница между жёсткой позицией и токсичностью, и почему стратегия «всё сложно и все правы» плохо работает в публичном поле.  Отдельно обсудили подготовку к дебатам: работу с тезисами, контраргументами, провокациями и собственными ограничениями, а также почему иногда лучший исход — не идти в дебаты вовсе. Полезные ссылки:Анонсы и эксклюзивы от Антона: https://t.me/m0rtymerr_channelЮтуб Антона:  https://www.youtube.com/@om_nazarov  Подписывайтесь на канал «Организованное программирование» в Telegram: https://ttttt.me/orgprog– Список подкаст-платформ (Apple Podcast, Google Podcast, Spotify, Яндекс.Музыка и другие): https://podcast.ru/1734325321– Смотреть в ВК Видео: https://vkvideo.ru/video-224967259_456239229 #дебаты #айти #АнтонНазаров #хейт #психология #подкаст #мотивация #саморазвитие #лидерство #критика #мнение #организованноепрограммирование (00:00) - — Введение. Что делает скандальный дебатёр в айтишном подкасте? (01:20) - — Как пережить хейт и не сломаться? Личный опыт Назарова (09:33) - — Коммент, который пробил броню. Бывает ли Назаров уязвим? (17:29) - — «Вами управляет тот, кто вас злит» — правда или мем? (24:01) - — «Все правы» — самый бесполезный подход к контенту (33:55) - — Дебаты с Климовым: снисходительность как стратегия (41:11) - — Как работает манипуляция авторитетом и опытом (50:14) - — Статистика, метафоры, переходы на личности — оружие дебатов (57:05) - — Комбо-приёмы в дискуссии: как выносить без мата (01:01:27) - — IT-Блогеры, разоблачения и мир в баньке. Где граница шоу? (01:09:30) - — Заключение. Как спорить, чтобы вас слушали, а не хейтили ★ Support this podcast ★

    1h 10m
  5. #72 Нужны ли шаблоны проектирования в эпоху ИИ?  Михаил Флёнов

    JAN 19

    #72 Нужны ли шаблоны проектирования в эпоху ИИ? Михаил Флёнов

    У меня в гостях Михаил Флёнов — разработчик, автор канала «Програмысли» и автор книг "глазами хакера". Мы поговорили о паттернах программирования без культа GoF  — как о способе мышления, а не наборе UML-картинок из книжек двадцатилетней давности. Обсудили, почему паттерны рождаются из боли и рефакторинга, а не из желания «сделать правильно», где проходит граница между простотой и оверинжинирингом, и почему пять if иногда честнее, чем пять микросервисов. Разобрали Dependency Injection как базовую инфраструктуру, Singleton как паттерн и антипаттерн одновременно, роль MVC в современных фреймворках и то, почему большинство разработчиков применяют паттерны, даже не осознавая этого. Затронули тему о влиянии LLM и ИИ: какие знания уже обесценились, почему алгоритмы стали расходником, и почему архитектурное мышление и понимание паттернов становятся важнее, а не наоборот. Полезные ссылки:https://www.youtube.com/@programislihttps://t.me/mflenovhttps://www.flenov.ru Подписывайтесь на канал «Организованное программирование» в Telegram: https://ttttt.me/orgprog– Список подкаст-платформ (Apple Podcast, Google Podcast, Spotify, Яндекс.Музыка и другие): https://podcast.ru/1734325321– Смотреть в ВК Видео: https://vkvideo.ru/video-224967259_456239229 🔹 Telegram-канал Организованного Программирования: https://t.me/orgprog🔹Хекслет Клуб в Telegram https://t.me/HexletClubBot #паттерны #программирование #designpatterns #шаблоныпроектирования #кодревью #интервьюразработчика #архитектуракода Нужны ли шаблоны проектирования в эпоху ИИ?  Михаил Флёнов #72 (00:00) - — Введение: Зачем вообще говорить о паттернах? (02:10) - — Банда четырёх и культ паттернов: за и против (10:43) - — Dependency Injection: зачем он вам нужен прямо сейчас (15:29) - — Боль, рефакторинг и личный путь к хорошему коду (22:11) - — SQL прямо в компоненте? Да, это Next.js в 2020-х (31:33) - — Лучшая книга по паттернам для старта: Head First Design Patterns (39:07) - — Визитор в реальной жизни: рендерим Markdown по-взрослому (46:37) - — Алгоритмы vs. паттерны: что действительно нужно знать? (56:20) - — Почему ИИ не заменит ваше понимание архитектуры (01:02:24) - — Заключение: паттерны живы — и ещё как! ★ Support this podcast ★

    1h 5m
  6. #71 Event Storming на практике: как моделировать сложные системы

    JAN 11

    #71 Event Storming на практике: как моделировать сложные системы

    В этом выпуске мы пошли дальше разговоров о DDD и сделали то, чего обычно не хватает большинству обсуждений — взяли реальную идею и начали моделировать её руками. Вместе с Евгением Лукьяновым, архитектором и практиком DDD, мы в прямом эфире провели сессию Event Storming и разобрали живую предметку: сервис для контент-креаторов в Telegram — от регистрации пользователя до рекомендаций, трендов и сложных границ ответственности системы. Мы не готовились заранее, не полировали пример и не знали «правильного ответа». По ходу дела всплывают реальные вопросы: где заканчивается MVP и начинается переусложнение, какие события действительно важны, что считать инвариантами, где система должна быть «тупой», а где — умной, и почему изменение состояния — главный источник боли в любой системе. Разговор постепенно уходит глубже: от бизнес-ценности и воронки активации — к агрегатам, событиям, автоматическим правилам, внешним системам и границам контекстов. Мы обсуждаем серые зоны вроде парсинга Telegram, влияние ограничений платформы на модель домена, роль ИИ в рекомендациях и почему «сначала написать код» почти всегда приводит к иллюзии понимания предметки. Полезные ссылки:https://t.me/stringconcathttps://www.youtube.com/@UCJ2Tig1kywPjqjNh0mb54Ug  Подписывайтесь на канал «Организованное программирование» в Telegram: https://ttttt.me/orgprog– Список подкаст-платформ (Apple Podcast, Google Podcast, Spotify, Яндекс.Музыка и другие): https://podcast.ru/1734325321– Смотреть в ВК Видео: https://vkvideo.ru/video-224967259_456239228 🔹 Telegram-канал Организованного Программирования: https://t.me/orgprog🔹Хекслет Клуб в Telegram https://t.me/HexletClubBot (00:00) - Введение. Почему 90% проектов ломаются ещё до кода? (02:22) - Event Storming простыми словами: что это и зачем он нужен разработчику (09:07) - Стартап vs Enterprise: почему подход к проектированию радикально отличается (18:10) - Почему для Telegram до сих пор нет нормального VidIQ (30:07) - Почему рекомендации — самая сложная часть проекта (41:27) - Как понять, о чём писать: спрос, тренды и иллюзии (49:21) - Чему можно научиться у YouTube и VidIQ (01:03:40) - Разбор интерфейса VidIQ: что действительно даёт ценность (01:11:55) - Как формируются тренды и рекомендации на практике (01:25:17) - Агрегаты, события и инварианты без академической боли (01:39:38) - Владение каналами, безопасность и переход прав (01:48:00) - Подписки, планы и ограничения: где появляется бизнес (01:53:42) - Парсинг Telegram: реальность, серые зоны и ограничения (02:02:02) - Почему изменение состояния — главный источник сложности (02:08:00) - Event Storming как карта всей системы целиком (02:13:51) - Заключение: стоит ли использовать Event Storming на практике ★ Support this podcast ★

    2h 14m
  7. #70 Дебаты: юнит тесты против интеграционных с Александром Макаровым

    12/28/2025

    #70 Дебаты: юнит тесты против интеграционных с Александром Макаровым

    Юниты против интеграционных тестов — вечный спор, который кажется простым только до первого реального проекта. В этом выпуске у нас в гостях Александр Макаровов — core-разработчик PHP-фреймворка Yii. Мы разобрали, почему формальные определения тестов почти не работают в живых системах и где на практике проходит граница между «юнитом», «модулем» и «интеграцией». Мы поговорили о тестировании прикладных веб-приложений и библиотек, сравнили Active Record и Data Mapper, разобрали, когда тесты обязаны ходить в базу, а когда моки — вынужденное зло. Посмотрели реальные репозитории активно развивающихся проектов написанных на Laravel и Rails, фреймворки и коммерческие проекты, и увидели, как на самом деле пишутся тесты в продакшене, а не в книжках. Обсудили фикстуры, транзакции, rollback’и, SQLite in-memory, UUID, миграции, тесты контроллеров, сервисов и джобов. Полезные ссылки:https://t.me/samdark_blog Подписывайтесь на канал «Организованное программирование» в Telegram: https://ttttt.me/orgprog– Список подкаст-платформ (Apple Podcast, Google Podcast, Spotify, Яндекс.Музыка и другие): https://podcast.ru/1734325321– Смотреть в ВК Видео: https://vkvideo.ru/video-224967259_456239227 🔹 Telegram-канал Организованного Программирования: https://t.me/orgprog🔹Хекслет Клуб в Telegram https://t.me/HexletClubBot #кириллмокевнин #александрмакаров #интеграционныетесты #программирование #php #backend #разработка #it #подкаст Дебаты: юнит тесты против интеграционных с Александром Макаровым (00:00) - этом видео: (00:00) - — Добро пожаловать в подкаст: почему третий релиз фреймворка ждали годами — и при чём тут тесты? (02:13) - — О чём сегодня будет спор: юнит-тесты против интеграционных — кто победит? (07:37) - — Юнит-тесты на практике: функция, класс или публичный API (11:14) - — Почему формального определения не существует: юнит-тесты, которые не юнит-тесты (15:05) - — Внутренний интерфейс — трогать или нет: почему тесты не должны лезть в кишки системы (26:18) - — Архитектура vs гигиена: что действительно важно в прикладных проектах (37:15) - — Рефакторинг без боли: какие тесты действительно помогают менять код (47:53) - — Работа с базой данных: транзакции, откаты и скорость тестов (59:49) - — Плюсы и минусы высокоуровневых тестов (01:08:11) - — Open-source vs коммерция: почему одинаковые подходы не работают (01:25:45) - — Все типы тестов в реальном проекте (01:42:55) - — Docker и файловая система: неочевидные проблемы масштабирования (01:54:10) - — Сила декларативного подхода: почему CI/CD — идеальная среда для AI (02:01:20) - — Заключение: почему истина всегда где-то посередине ★ Support this podcast ★

    2h 2m
  8. #69 Как менялся IT за 20 лет: софтскилы, бигтехи, забытый хайп

    12/21/2025

    #69 Как менялся IT за 20 лет: софтскилы, бигтехи, забытый хайп

    В этом выпуске — экспериментальный формат и разговор без сценария. В гостях сразу двое инженеров с более, чем двадцатилетним опытом -  Пётр Зайцев и Алексей Рыбак. Мы вспоминаем, как выглядел вход в IT в 2000-х: первые работы «по знакомству», собеседования в квартирах и ресторанах, задачи про шнуры, найм по мотивации и жизнь без курсов, грейдов и HR-пайплайнов. Большой блок посвящён найму и софтскилам. Обсуждаем, действительно ли раньше на них «не смотрели», где проходит граница между прямотой и токсичностью, как меняются ожидания в больших и мультикультурных командах, почему интервью часто проверяют не знания, а этику и способность работать с конфликтами, и как размер компании меняет правила игры. Во второй части говорим о технологиях и хайпах, которые мы пережили: паттерны, ORM, MongoDB, микросервисы, serverless и TypeScript. Отдельно разбираем, почему именно nginx и memcache стали настоящими сдвигами и реально изменили индустрию, а большая часть «революций» оказалась просто модой. В конце — трезвый разговор про AI: где он ускоряет инженеров, а где создаёт больше шума, чем ценности. Если откликнулось — поставьте лайк, напишите в комментариях свой опыт и скажите, стоит ли делать такие разговоры регулярными. Полезные ссылки:https://youtube.com/@AlexeyRybak Подписывайтесь на канал «Организованное программирование» в Telegram: https://ttttt.me/orgprog– Список подкаст-платформ (Apple Podcast, Google Podcast, Spotify, Яндекс.Музыка и другие): https://podcast.ru/1734325321– Смотреть в ВК Видео: https://vkvideo.ru/video-224967259_456239225 🔹 Telegram-канал Организованного Программирования: https://t.me/orgprog🔹Хекслет Клуб в Telegram https://t.me/HexletClubBot (00:00) - — Зачем этот выпуск нельзя пропустить? (00:55) - — С чего всё началось: первый шаг в айти без опыта (05:59) - — Админ из подвала и письмо основателю MySQL: путь Пети Зайцева (12:22) - — Почему я проваливал все собесы первые годы (18:28) - — 40 вопросов на листочке и 25 зачётов: ад собеседований (26:53) - — Американская вежливость vs русская прямота (32:41) - — Кого не прощают: границы допустимого в командах (34:05) - — Пассивная агрессия: приём или угроза? (35:22) - — Виноват ли разработчик, если уволили по этике? (48:28) - — Почему русские в США остаются «деревянными» (58:21) - — Что действительно изменило индустрию? (01:12:09) - — Один язык для всего? Опасная иллюзия (01:30:39) - — Технологические прорывы и их последствия (01:43:49) - — Эффективность использования ИИ в командах (01:49:02) - — Заключение и подведение итогов ★ Support this podcast ★

    1h 50m

Ratings & Reviews

4.8
out of 5
6 Ratings

About

Пишем код, за который не стыдно. Разбираем базу, даем рекомендации и встречаемся с умными людьми

You Might Also Like