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

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

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

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

    -16 Ч

    #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 ★

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

    22 ИЮН.

    #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 ★

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

    15 ИЮН.

    #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 ★

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

    8 ИЮН.

    #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 ★

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

    1 ИЮН.

    #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 ★

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

    25 МАЯ

    #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 ★

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

    18 МАЯ

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

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

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

    11 МАЯ

    #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 ★

    1 ч. 32 мин.

Оценки и отзывы

5
из 5
Оценок: 3

Об этом подкасте

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

Вам может также понравиться

Чтобы прослушивать выпуски с ненормативным контентом, войдите в систему.

Следите за новостями подкаста

Войдите в систему или зарегистрируйтесь, чтобы следить за подкастами, сохранять выпуски и получать последние обновления.

Выберите страну или регион

Африка, Ближний Восток и Индия

Азиатско-Тихоокеанский регион

Европа

Латинская Америка и страны Карибского бассейна

США и Канада