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

Кирилл Мокевнин
Организованное программирование

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

  1. #51 ORM vs SQL — Дебаты: что побеждает в реальных проектах? Александр Вершилов

    4 DAYS AGO

    #51 ORM vs SQL — Дебаты: что побеждает в реальных проектах? Александр Вершилов

    В этом выпуске мы поговорили с Александром Вершиловым — разработчиком с 15-летним опытом и руководителем отдела разработки в Сириус.Курсах. Мы устроили дебаты про ORM. Обсудили чем ORM отличается от query-builder’а, разобрали типичные проблемы N+1 и ленивых связей, сравнили подходы Code-First и Data-First к миграциям, а также поделились приёмами, как обойтись без ORM и не потерять производительность. Вы узнаете, когда строгая типизация (на примере Haskell) спасает проект, какие настройки ORM могут «положить» продакшен и какие практики позволяют держать базу под контролем.  А так же решите для себя, брать ли ORM в следующий проект или сразу писать SQL. (00:00) - Введение. Почему мы всё ещё спорим про ORM? (02:18) - Что такое ORM на пальцах — быстро, чётко, по делу (04:32) - PHP и ORM: от древности до Laravel (07:01) - ORM глазами хаскелиста — определение через опыт (08:51) - Как типизация усложняет или упрощает маппинг (10:35) - Связи решают всё: зачем они важны в любой базе (13:45) - Фильтрация и динамика: где builder выигрывает у SQL (17:51) - Тестируем SQL: что делать с ошибками на проде (22:30) - Почему auto-инструментация — это роскошь не для всех (25:43) - Query builder — обязательный минимум для любого проекта? (29:23) - Когда ORM спасает время (и нервы) (34:08) - Сериализация "на автомате" — магия или хорошая инженерия? (36:51) - Промышленный стандарт = спокойствие в команде (39:39) - Магия рефлексии: когда модель = пустой класс (41:31) - Код first: почему он иногда опаснее, чем кажется (43:36) - Zero downtime и миграции: возможно ли идеальное развертывание? (49:36) - Как PHP прошёл путь к миграциям: взгляд в прошлое (54:08) - Когда SQL тормозит: ищем виновника (57:45) - Запросы: главная претензия к ORM (01:05:03) - Как распознать N+1 запрос и не страдать (01:08:13) - Пример Elixir: ORM без боли и магии (01:12:44) - Где заканчивается SQL и начинается здравый смысл (01:19:14) - Как удалять данные и при этом не терять их (01:22:25) - ORM и бизнес-логика: когда класс — не просто класс (01:28:50) - Декларативность vs. контроль: можно ли совместить? (01:32:26) - Генерация объектов: действительно ли тормозит? (01:36:22) - Оптимистичная блокировка спасает не только от конфликтов (01:41:14) - Транзакции, блокировки и реалии продакшена (01:44:58) - Нерешаемая проблема мутабельности (01:48:27) - Когда "умная" ORM становится врагом архитектуры (01:51:01) - Заключение. Как жить с ORM и не страдать? ★ Support this podcast ★

    1h 52m
  2. #50 Open Source без романтики: деньги, интриги, выгорание — и рост | Артем Малышев

    22 JUN

    #50 Open Source без романтики: деньги, интриги, выгорание — и рост | Артем Малышев

    В 2010 году я много собеседовал начинающих разработчиков, и одним из них был Артём Малышев. Он не прошёл испытательный срок, но само собеседование и несколько недель работы с нами оставили у него сильное впечатление и задали вектор всей его карьеры. С тех пор прошло больше десяти лет. Артём успел поработать на фрилансе, получил грант Mozilla, стал контрибьютором Django Channels, и сейчас входит в core-команду Django. Недавно мы снова пересеклись — и я пригласил его на подкаст, чтобы разобрать, как складывался его путь и что на него повлияло. Обсудили:- что давал ранний фриланс на Upwork и почему там важно сразу считать стоимость не только работы, но и валютного контроля;- как автоматизация антивирусных отчётов превратилась в первый серьёзный питон-опыт;- Как один твит,  XSLT-плагин и 20 чашек кофе привели к внезапному контракту в Германии;- коридорный разговор на конференции, который привёл к гранту Mozilla и работе над Django Channels;- историю о контрибьюторе, продавшем поддержку библиотеки без ведома автора — и чем всё закончилось. А ещё — поговорили о росте. Сколько времени занимает развитие навыков? Что на самом деле даёт переход от рутинных задач к контрибьютам в open source? И почему нет коротких путей от джуна из региона до ключевого участника глобального проекта. (00:00) - — Введение и анонс (03:15) - — Первая встреча: момент, когда всё изменилось (04:35) - — Карьерное начало Артёма: первые шаги в IT (08:16) - — Взлёт Ruby & Rails: почему они стали такими популярными (12:58) - — Насмотренность и опыт: как это влияет на качество кода (16:45) - — Реалити-чек: смена целей и взглядов (20:56) - — Курьёзное интервью: «заводная» путаница (24:13) - — Проект M3: первые шаги в новом месте (28:18) - — Заказ от Positive Tech: опыт корпоративного проекта (33:42) - — Антивирусы и ограничения: столкновения с корпоративщиной (36:16) - — Рефлексии: переход в open-source (40:21) - — Удалёнка: как они перешли на дистанционку (44:57) - — Влияние Bundler: роль инструментов для Ruby (48:18) - — Появление Poetry: реакция сообщества (53:26) - — Менеджеры версий: универсальные решения (58:23) - — Пакетный хаос: проблемы на GitHub (01:02:39) - — Первый фриланс-заказ: опыт и выводы (01:07:59) - — XML Conf в Праге: впечатления с конференции (01:10:33) - — Асинхронность в Python/Django: зачем и кто за этим стоит (01:15:43) - — Под капотом: архитектурные сложности (01:22:07) - — Итоги Channels: успех или тупик (01:25:02) - — Генераторы в практике: сложности внедрения (01:30:34) - — Контрибьютинг в крупные проекты: как это сделать (01:34:52) - — Закрытая соцсеть: контрактный кейс (01:40:04) - — Драйвер-фреймворки: Rails vs Python (01:45:23) - — Конкуренция проектов: борьба идей (01:57:25) - — Предательство: обида и урок (01:59:54) - — Опыт OSS: важные выводы (02:05:29) - — Микрозадачи: система тикетов (02:11:17) - — Трудолюбие vs талант: главный вывод (02:12:47) - — Рельсовые конференции и Inertia: взгляд в будущее (02:14:09) - — Заключение ★ Support this podcast ★

    2h 14m
  3. #49 Почему искусственный интеллект не работает без настоящего инженера | Андрей Татаринов

    15 JUN

    #49 Почему искусственный интеллект не работает без настоящего инженера | Андрей Татаринов

    В этом выпуске мы поговорили с Андреем Татариновым, инженером, который каждый день работает с языковыми моделями и внедряет ИИ в реальные продукты. Обсудили, как устроены LLM: что на самом деле происходит под капотом ChatGPT, почему ИИ часто галлюцинирует, и как с этим работать. Разобрали, зачем нужен fine-tuning и RAG, как промт превращается в инженерную задачу, и почему без человека модели пока не справляются. Поделились практическим опытом автоматизации, примерами из реальных кейсов и мнением о том, в каком направлении развивается рынок ИИ. Вы узнаете, как реально применять языковые модели, какие ошибки совершают новички, и что нужно, чтобы ИИ стал помощником, а не источником проблем. (00:00) - Введение и анонс (01:31) - От Яндекса до Epoch 8: путь Андрея Татаринова (04:54) - Бустинги, логрег и берты: как мы пришли к GPT (08:23) - Почему GPT-системы сокрушили прошлое (12:10) - Иллюзия экспоненты: будет ли у ИИ потолок? (16:01) - Новая реальность: как теперь проектируются AI-системы (19:53) - Под капотом LLM: инференс, рантаймы и матрицы (23:22) - Проблема масштаба: почему модель ≠ база данных (27:27) - Векторные базы и RAG: как накормить модель знаниями (31:20) - Промт не магия: где заканчивается здравый смысл LLM (35:04) - Файнтюнинг: учим GPT понимать нас лучше (38:31) - Пределы модели: почему знания «вытесняются» (42:27) - LEGO, Copilot и код: генерация, где работает, где нет (46:20) - Заменит ли GPT ревьюера? Хекслет тестирует (50:34) - Проблема смыслов: почему даже с правилами модель врёт (54:28) - Что такое разум у LLM: reasoning и цепочки размышлений (58:19) - MCP и агенты: когда LLM делают больше, чем отвечают (01:02:36) - Автоматизация задач: мечта об ИИ-помощнике (01:07:02) - За пределами промтов: новый взгляд на разум (01:11:19) - Автономные агенты: размах MCP в продакшне (01:15:34) - Инциденты под контролем: SRE + агентный подход (01:19:59) - Оркестрация инструментов: когда API + MCP не хватает (01:24:24) - Покупать или делать самому: стратегия внедрения (01:28:49) - MCP как стандарт: реальные шаги или маркетинг? (01:33:14) - Архитектурные тренды: готовимся к агентам заранее (01:37:39) - Команды и экосистема: как вести IT-лидеров (01:42:04) - Безопасность и контексты: бизнес, observability, security (01:46:29) - MCP next layer: от работы в одиночку к рынку агентов (01:50:54) - Оценка зрелости: когда агенты перестают быть хайпом (01:55:19) - Call to action: малые эксперименты — большие изменения (01:59:44) - Ключевые выводы и приглашение к диалогу ★ Support this podcast ★

    2h 7m
  4. #48 Почему Scrum буксует: взгляд Agile-коуча и менеджера | Организованное программирование

    8 JUN

    #48 Почему Scrum буксует: взгляд Agile-коуча и менеджера | Организованное программирование

    В этом выпуске мы устроили живую дискуссию о Scrum: Agile-коуч Мария и продакт-менеджер Александр дискутировали о том, когда фреймворк действительно помогает, а когда превращается в формальность. Обсудили ценности и принципы Scrum, разобрали, почему без поддержки руководства он не работает, и сравнили классический подход со «сплошным» потоком задач. Разобрали реальные кейсы внедрения, типичные ошибки механического соблюдения ритуалов и дали практические советы, как подстроить Scrum под свой контекст. (00:00) - Введение и анонс (02:30) - Скрам — фреймворк или культ? Что думают профи (04:50) - История появления Скрама: зачем он вообще нужен (07:14) - Кому Скрам вредит и кто на нём зарабатывает (10:35) - Про Канбан, Скрам и прочие страшные слова (12:26) - Терминологический хаос и скрамоподобные мифы (15:20) - Почему Скрам не взлетает: внедрение, культура, люди (19:46) - Скрам без поддержки сверху — путь к провалу (24:00) - Когда одна команда — это целая компания (27:31) - Скрам и поддержка пользователей: несовместимы? (32:39) - Как Скрам ломает мозг аналитикам и тестировщикам (36:24) - Архитектурные затыки и межкомандные блокеры (40:46) - Почему без нормального бэклога Скрам не работает (44:45) - Джира, PMBOK и Скрам: цифровой фейерверк или бюрократия? (47:50) - Релизный ад и регресс за час: реальность Скрама (53:09) - Время жизни задачи: что мерить, чтобы не умереть? (56:57) - Продуктовая разработка и Скрам: союз или развод? (01:00:09) - Масштабируем или похороним? Скрам в больших продуктах (01:04:56) - Скрам как инструмент изменений: ретроспективы, рост и боль (01:11:23) - Скрам как зеркало: как метод вскрывает проблемы (01:15:25) - Почему Скрам пугает и разработчиков, и менеджеров (01:19:09) - Загнивает ли Скрам? Что происходит в мире методологий (01:24:11) - Когда Скрам спасает: реальные истории успеха (01:28:37) - Внедрили Скрам? А теперь живите с этим (01:32:44) - Скрам и командная культура: проверка на зрелость (01:38:46) - Кто спасёт команду: Скрам-мастер, тимлид или никто? (01:44:15) - Менеджеры без знаний: почему Скрам превращается в боль (01:49:16) - Заключение (00:00) - Chapter 29 ★ Support this podcast ★

    1h 52m
  5. #47 Егор Бугаенко про будущее программирования  | Организованное программирование

    1 JUN

    #47 Егор Бугаенко про будущее программирования | Организованное программирование

    В этом выпуске мы поговорили с Егором Бугаенко — автором «Elegant Objects» и сторонником «честного» ООП-мышления. Он раскрыл, почему классическое объектно-ориентированное программирование — это не архитектура, а иллюзия порядка, за которой скрывается хаос. Разобрали, почему null, static и наследование — главные разрушители систем, как мышление «в классах» ведёт к техдолгу, и почему ORM прячет от нас реальные ошибки в работе с данными. Егор настаивает: код должен быть сконструирован, а не написан, иначе система становится неуправляемой — особенно в эпоху LLM, когда ИИ сыплет автопатчами и код перестаёт быть осмысленным. Также обсудили:-  Почему композиция объектов — основа устойчивой архитектуры- Как мыслить модулями, а не строками кода- Что такое Fail Fast и зачем системе «падать» сразу- Почему архитектурное мышление — навык разработчика будущего- Как LLM усиливают хаос, если нет модели- Роль дизайн-долга и как он убивает бизнес-процессы  Это выпуск для тех, кто не хочет быть просто кодером в мире, где код уже пишет ИИ. (00:00) - Введение и анонс (00:57) - История ООП: Как всё начиналось и где свернули не туда (03:47) - UML: Почему диаграммы не работают в живом коде (07:57) - IT без кода: Кто такие архитекторы, аналитики и зачем они нужны (10:27) - UML и микросервисы: Почему вместе они не работают (14:07) - Тесты: Почему юнит-тесты не спасают от багов (18:53) - Микросервисы: Как проектировать, чтобы не пожалеть (25:30) - Образование и ООП: Чему учат и чему не учат (29:20) - Высшее IT-образование: Почему оно отстаёт от практики (35:04) - ИИ в программировании: Помощник или угроза? (36:59) - Будущее кода: Кто будет писать программы завтра (39:49) - ООП сегодня: Жив ли подход или пора прощаться? (43:34) - Генерация кода ИИ: Ускорение или потеря контроля? (46:22) - Промты для ИИ: Как правильно общаться с машиной (50:09) - Дизайн системы: Как не утонуть в архитектуре (52:58) - Маппинг: Когда преобразование данных становится проблемой (55:49) - ORM: Почему это может быть ловушкой для проекта (59:35) - Фреймворки: Примеры, которые стоит знать (01:03:20) - Ручной SQL: Контроль, который стоит усилий (01:07:04) - Nullable: Почему это не просто пустое значение (01:15:40) - Обучение программистов: Чему стоит уделить внимание (01:20:26) - Когнитивная нагрузка: Как null усложняет мышление (01:26:06) - Теория и практика: Как найти баланс в программировании (01:29:53) - Осознанные нарушения: Когда отступление от правил оправдано (01:37:25) - Обработка исключений: Как управлять жизненным циклом объекта (01:44:03) - Системы типов: Как они помогают и мешают (01:50:41) - Функциональное vs ООП: В чём разница на практике (01:56:24) - Применение подходов: Как выбрать правильный инструмент (01:58:17) - Философия ООП: Что стоит за объектами (02:03:00) - Композиция и принципы: Как строить надёжные системы (02:06:44) - Паттерны: Почему некоторые из них устарели (02:13:27) - Чистый код: Почему не всё так чисто (02:14:23) - Современные книги: Что читать вместо «Чистого кода» (02:16:17) - Заключение ★ Support this podcast ★

    2h 18m
  6. #46 Нужно ли писать юнит-тесты? Дебаты о TDD, моках и бережливом тестировании | Илья Ильиных

    25 MAY

    #46 Нужно ли писать юнит-тесты? Дебаты о TDD, моках и бережливом тестировании | Илья Ильиных

    В этом выпуске мы поговорили с Ильёй Ильиных , автором канала «Куда войти», и вместе выяснили, что на самом деле скрывается за трёхбуквием TDD. Обсудили бережливое тестирование, разобрали плюсы и минусы diamond-подхода, поспорили о юнит-тестах, интеграционных проверках и вечной боли MockBean в Spring. Поделились приёмами, как типизация в Go и TypeScript сокращает объём тестов, и показали, как застраховать легаси-код, не притормаживая релизы. Вы узнаете, когда тесты ускоряют работу, а когда превращаются в тормоз, как выбрать «достаточный минимум» покрытий и перестать бояться рефакторинга. Не пропустите — в конце даём чек-лист для мягкого внедрения TDD и советы, которые помогут команде прокачать уровень программирования (00:00) - — Введение. Почему юнит-тесты не работают (01:15) - — Go в бою: опыт, миграции и сравнение с Rails (05:03) - — Как нейросети и личный опыт влияют на качество тестов (09:47) - — Пирамида тестирования, стратегии и интеграционные тесты (13:34) - — Библиотеки, транзакции и альтернативные подходы (18:19) - — Критика пирамиды, микросервисы и сила интеграционных тестов (23:01) - — Мифы, сложности написания и важность интеграционного подхода (30:37) - — Дебаггинг, логирование и тесты для сложных кейсов (34:26) - — Spring Boot, юниты и проблемы с SQL (40:04) - — Тесты пользователей, репозитории и события (46:41) - — Проблемы с интеграцией Spring Boot и различия между моками и стабами (53:21) - — Оптимизация, контекст и TDD в действии (59:59) - — GitHub, редиректы, обновление и инструменты (01:03:48) - — Кассеты, документация и безопасность (01:09:30) - — Фикстуры: от введения до организации данных (01:15:07) - — Оверкил, дизайн и тестирование в разных языках (01:22:46) - — Go, производительность и интеграция (01:28:31) - — Express, Spring и тестирование контроллеров (01:34:15) - — TypeScript, Fastify и дизайн-first API (01:40:01) - — Плагины, история тестов и рефакторинг (01:48:26) - — Моки, стабы и влияние на архитектуру (01:56:55) - — Ментальные модели, API и сравнение Go и Drizzle (02:06:24) - — Решения проблем, инструменты и тяжёлое наследие (02:14:57) - — Прагматичный подход, TDD и архитектурные выводы (02:27:18) - — Заключение ★ Support this podcast ★

    2h 30m
  7. №45  Разбор лекции Егора Бугаенко о настоящем ООП  | Организованное программирование

    18 MAY

    №45 Разбор лекции Егора Бугаенко о настоящем ООП | Организованное программирование

    В этом выпуске я открываю новое направление на канале — разборы. Начинаю с лекции Егора Бугаенко «Взлёт и падение ООП», которую он читал в Новосибирске. Разбираю ключевые тезисы, комментирую спорные моменты, делюсь собственным опытом и взглядами на объектно-ориентированное программирование. Мыслей накопилось много — от истории языков до проблем динамической диспетчеризации, инкапсуляции и производительности. Обсудим, что такое ООП на самом деле, какие мифы с ним связаны и почему многие разработчики до сих пор неправильно его трактуют. Не пропустите — это не просто разбор лекции, а откровенный разговор о плюсах и минусах ООП без иллюзий и заумных формулировок. 💬 Пишите в комментариях, согласны ли вы с Егором, со мной или свое личное мнение. Если формат зайдёт, продолжу разбирать и другие видео, в том числе ваши рекомендации. #ООП #программирование #разбор #функциональноепрограммирование #Бугаенко #классическийкод #архитектурапрограмм #кодбезООП #инженерияПО #разработканасовесть #мнениеразработчика #чистыйкод #альтернативаООП  ★ Support this podcast ★

    1h 27m
  8. #44 «Хак роста»: стартап без процессов обгоняет 99 % компаний Stripe | Данил Шашков

    11 MAY

    #44 «Хак роста»: стартап без процессов обгоняет 99 % компаний Stripe | Данил Шашков

    В этом выпуске мы поговорили с Данилом Шашковым — CTO стартапа Humanizer (STS GPT), который за год вырос в выручке х4, оставаясь командой из двух человек. Разобрали, как он нашёл работу в американском проекте через Twitter, почему «процессы ради процессов» убивают скорость и мотивацию и как голосовые задачи в Signal могут заменить таск‑трекер. Обсудили и посмеялись:✔️ как минимальная бюрократия вывела проект в топ‑1 % самых быстрорастущих стартапов Stripe;✔️ культуру «punk‑driven development»: CTO берёт на себя дизайн, фронт, бэк и аналитику, не стыдясь «посредственного» кода — лишь бы продукт рос;✔️ почему code‑review «обязан пройти с первого раза» превращается в кошмарную KPI‑гонку и охлаждает инициативу;✔️ как ежедневные дейлики и performance‑review могут убить драйв, и при каком размере команды процессы действительно полезны;✔️ эксперимент «500 $ за Dev‑in AI‑ассистента»: что реально дал супер‑кодер‑бот и почему его выпилили через неделю;✔️ iOS‑приложение за 30 дней без скрам‑мастеров и джира‑митингов;✔️ баг, сделавший продукт случайно бесплатным, и план превращения ошибки в рост;✔️ «экономика облаков»: полная инфраструктура  5 000 $ в мес. дешевле любого DevOps‑штата. Вы узнаете готовые приёмы, которые помогут основателям, продукт‑менеджерам и разработчикам ускорять релизы, сокращать издержки и сохранять драйв в команде — от минимального бэклога до микро‑ретро и метрики «деньги ↔️ активность» на дашборде. Не пропустите! (00:00) - Введение и анонс (04:37) - Можно ли работать на американскую компанию без переезда в США? (12:18) - Условия труда в США (15:47) - Самый быстрорастущий стартап (18:47) - Процессы внутри компании (25:53) - Дух стратапа и хаос (31:55) - Как влияет на атмосферу и мотивацию код-ревью (36:36) - Какие процессы в стартапе работают на все 100 (42:05) - Дейли - абсолютное зло? (55:04) - Таск трекеры в компаниях (01:02:16) - Осознание своего места в стартапе (01:14:23) - Влияние близости денег в компании (01:24:15) - Вайб кодинг (00:00) - Chapter 14 ★ Support this podcast ★

    1h 32m
5
out of 5
16 Ratings

About

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

You Might Also Like

To listen to explicit episodes, sign in.

Stay up to date with this show

Sign in or sign up to follow shows, save episodes and get the latest updates.

Select a country or region

Africa, Middle East, and India

Asia Pacific

Europe

Latin America and the Caribbean

The United States and Canada