RSS Telegram YouTube Apple Яндекс Spotify Amazon Почта

Backend Podcast  

подкаст о разработке бэкенд-приложений

89. Go 1.24.0 16.02.2025

🪂 Go 1.24.0. Самое полезное нововведение. Новый пакет в SDK. Развитие в сторону однородности терминов.

88. Parallelism, IO bottlenecks 09.02.2025

🛟 Почему команда create в Linux не заканчивается на e, а в Go - наоборот? Как параллелизм может быть не конкурентным? И почему производительность Go и Python зависит от жесткого диска?

87. Data Centers, Nvidia, DeepSeek, Ollama 02.02.2025

🧠 Многое ли изменит DeepSeek R1? От энергопотребления до тенденции ростов дата-центров.

86. Unix pipes & Go channels 26.01.2025

🚸 Разбираем аналогию Unix пайпа и канала в Go. Как думает программист при исправлении ошибок в коде? (на основе когнитивных исследований)

85. Delivering Terabytes of Video 19.01.2025

📼 Как организовать раздачу терабайт видео? Где хранить это видео, как его подготовить? Как работает адаптивный битрейт в HLS?

84. Date in PostgreSQL & time.Time in Go 12.01.2025

📅 Тип DATE в Postgres и time.Time в Go. Как работать с датой, если не нужна часовая зона? Когда использовать тип DATE в PostgreSQL? Необычное API у Date объекта в JavaScript. In-memory мок интерфейса к СУБД и удобство SQL.

83. 2024 Internet Trends Decoded 29.12.2024

🦌🎄Как изменился Интернет за 2024 год? Почему Starlink растет втрое, а HTTP/3 уже занимает 20% трафика? LLM-проекты с большим трафиком. Кто повинен в проблемах работы Интернета, пожары, технические ошибки, государства? Разбираем годовой отчет от Cloudflare.

82. Concerning var names 22.12.2024

🪄 Короткие имена упрощают код, но усложняют его понимание. Как найти зологую середину?

81. Continuous Integration 15.12.2024

🛣 Что такое Continuous Integration (CI), чем он отличается от Pre-Release Integration и Feature Branching? Как делать код-ревью при CI в условиях частых пушей в mainline? Как CI практика вынуждает разработчиков писать код проекта лучше?

80. Scripts & Machine Vision 08.12.2024

👁‍🗨 Варианты сохранения состояния в скриптах. Впечатления от задач по computer vision.

79. Side Effects 24.11.2024

🎇 Что такое сайд эффект? Какая парадигма программирования ввела этот термин? Откуда взялся термин "сайд эффект"? Как понять где в коде сайд эффекты? Действительно ли сайд эффект - это побочное дествие (дословный перевод) или желательное поведение?

78. Rate Limit & Token Bucket 15.11.2024

🗑 Оцениваем упущенные выгоды от использования старой версии PostgreSQL. Новый файловый менджер yazi. Как работают рейт лимиты и token bucket алгоритм?

77. Interruptions in Programmers' Work 09.11.2024

☎️ Какой эффект оказывают прерывания - когда нас отвлекают - на эффективность разработчиков, и можно ли их уменьшить? Recovery time после прерываний? Можно ли слушать музыку при написании кода?

76. Multi-tenant queue in PostgreSQL 03.11.2024

🤼‍♀️ Как сделать multi-tenant очередь в PostgreSQL и обеспечить справедливое распределение очередности выполнения задач? Зачем нужны странные вопросы на собеседованиях при устройстве в компанию и что на них отвечать?

75. LRO API Design Pattern 27.10.2024

🕗 Долго выполняющиеся операции. О проблемах, когда клиент долго ждет ответа. Когда применять дизайн паттерн LRO? Должен ли код ошибки быть читаемым?

74. gofpdf, PostgreSQL HOT & fillfactor 20.10.2024

🦁 Скрытые возможности gofpdf для генерации PDF. Какой формат для печатаемых документов предпочесть: PNG, ZPL, PDF? Когда PostgreSQL годится в качестве key-value хранилища и как использовать HOT и fillfactor для максимизации производительности часто обновляемых данных?

73. Cognitive Psychology and Programming 13.10.2024

🧠 Когнитивная перегрузка, научные эксперименты по восприятию задач над шахматистами и программистами, перенос в долговременную память. Что такое дальний и ближний перенос знаний и помогает ли знание алгоритмов в написание приложений? Развивает ли интеллект умение пользоваться алгоритмами?

72. PostgreSQL 17, Go for scripts, Complex Forms 06.10.2024

🐘 Что нового в PostgreSQL 17? Хорошая статья по введению в Bubble Tea для создания TUI приложений. Скрипты на Go. Огромные web-формы: стоит ли переносить логику на фронтенд?

71. API PATCH 29.09.2024

🩹 Пограничная разница уровней изоляции Repeatable Read и Serializable. Частичное получение и обновление данных через API, метод PATCH.

70. Elvish, Temporal 22.09.2024

🧝 Что такое шелл нового поколения на примере Elvish? Как решаются проблемы надежного выполненеия workflow в микросервисной архитектуре? Что понравилось и не понравилось в Temporal?

69. Webhooks and Callbacks 15.09.2024

🫣 Разбираем термины webhook и callback. В этом эпизоде мы знатно страдаем над определениями, разбираем наши заблуждения и прощупываем серые зоны. Хотели осветить больше технических деталей, но делать эпизод длиннее часа не стали, поэтому будет продолжение.

68. auto_explain, ClickHouse, import cycle in Go 08.09.2024

🔄 Ошибка циклической инициализации в Go и особенности дизайна этого ЯП, инкрементная компиляция. Модуль auto_explain в PostgreSQL. Когда использовать ClickHouse?

67. Mono vs Multi Repos: Navigating CI Pipelines 31.08.2024

📚 Разница между моно и мульти репозиторием. Стоит ли вам использовать моно-репозиторий? Как триггерить отдельный пайплайн для подпроектов в случае моно/мультирепозитория? Ускорение сборки Docker образа. Синхронная разработка backend и frontend проекта.

66. Go 1.23 iterators, to OSS or not? 25.08.2024

💍 Итераторы в Go 1.23.0. Делать ли коммерческий проект с открытым исходным кодом или закрытым? Социальный инжениринг из Северной Кореи. Какие для себя риски видят компании-потребители OSS?

65. The thorny path to breaking free from ReactJS 18.08.2024

🧗‍♀️ Почему мы выбрали ReactJS для фронтенда и потом отказались от него? Когда стоит взять на борт ReactJS и когда генерировать старый добрый HTML на сервере? Вобщем, обсуждаем наш тернистый путь отказа от ReactJS.

64. TIOBE index, ORM in prod, StackOverflow survey 11.08.2024

🌴 Обновленный индекс TIOBE по языкам программирования: Go на 9 месте и теперь в TOP-10. Кртитический обзор преимуществ использования ORM. Примечательные цифры опроса 2024 года от StackOverflow.

63. Request deduplication 04.08.2024

‼ ️Дизайн-паттерн для предотвращения дублирования запросов. Почему запросы иногда дублируются? Что делать, если данные в кеше устарели или кеш-сервер недоступен? Нужен ли уникальный request_id или достаточно использовать хеш тела запроса?

62. AWS certs, Monzo bank on AWS 28.07.2024

☁️ Мнение о AWS сертификатах для поиска работы в США. Case study: Monzo банк (UK) целиком работающий на инфраструктуре AWS.

61. sshd, basebackup, enum, rclone 21.07.2024

💥 Критическая уязвимость sshd. Особеннось работы pg_basebackup. Использование ENUM в PostgreSQL. Почему отказались от rclone в проде?

60. Riverqueue 14.07.2024

⛲️ Проблема двух хранилищ: СУБД и очередь. riverqueue - пример решения, в котором задачи очереди хранятся в трназакционной СУБД. Также, pspg и использование только SDK для тестов в Go.

59. OAuth 2.0 07.07.2024

🗝 Говорим про открытый стандарт авторизации OAuth 2.0 и ключевые моменты в понимании этого стандарта, а также про неочевидное использование этого фреймворка авторизации.

58. Serverless arc & microservices 30.06.2024

🤹‍♀️ Закат хайпа serverless архитектуры. Почему в свежих публикациях так часто предвещают конец развития технологии (спойлер: с технологией все в порядке)? Переход от микросервисной архитектуры к монолиту в Amazon Prime Video.

57. "Modern Software Engineering" book 23.06.2024

📘 Обзор книги "Modern Software Engineering": итеративная и инкрементальная разработка, agile современности и agile-манист от создателей, стоит ли всегда применять TDD, важные метрики разработчика: стабильность и производительность.

56. rclone снаружи и изнутри 16.06.2024

👭 Как используют rclone для однонаправленной и двунаправленной синхронизации? Правило "3-2-1" для резервного копирования. Также поговорили про внутренности rclone: интересная реализация интерактивной сборки конфигов, встроенный ncdu, базовые пакеты fs и vfs.

55. PGO: inlining & branching 09.06.2024

🏃‍♀️ Основы PGO (Profile Guided Optimization): инлайнинг и бранчинг.

54. Design: ticket reservation service 02.06.2024

👨‍🚀 Разбор модельного интервью: разработка сервиса резервации билетов. Самый популярный проект на Go - frp.

53. Survival Guide 26.05.2024

📘 Отзыв на книгу “Engineers Survival Guide”. Как выжить программисту в большой корпорации.

52. Mattermost 19.05.2024

💬 Mattermost - аналог Slack, написан на Go, с copyleft лицензией. Хороший пример крупного web-сервиса. Как он устроен внутри? Поговорили про абстрагирования от стораджа, разделение на слои приложения, выделения моделей в отдельный пакет, систему сборки документации, e2e тесты в этом проекте.

51. Tidy First? 12.05.2024

📘 Обзор книги “Tidy First?”. Говорим о том, зачем нужен рефакторинг, обсуждаем самые простые структурные изменения кода.

50. Traefik 3, cmp.Or в Go 1.22 05.05.2024

🍫 Что нового в Traefik 3? История о том, как добавили cmp.Or в Go 1.22. Зачем нужна эта функция и где ее использовать? Что такое comparable интерфейс?

49. nextgres & debezium 28.04.2024

⚖️ В этом выпуске рассказываю про nextgres - PostgreSQL бэкенд для MySQL приложений. И про debezium для аудита изменений СУБД.

48. Redis больше не FOSS 21.04.2024

🌶 Почему Redis теперь - это проприетарный продукт? Что такое SSPL лицензия и чем она плоха для разрабочиков? Что использовать вместо Redis?

47. UX: Don't Make Me Think 13.04.2024

📘 Отзыв на книгу по UX. Важен ли UX? Как создать удобный сайт? Почему простота и интуиция — ключи к успешному дизайну веб-сайта.

46. Экстремальный бекап, новый GoLand, UUIDv7 07.04.2024

🍿 Инкрементные бэкапы при помощи pg_probackup, когда штатных средств PostgreSQL не хватает. Что нового в GoLand 2024.1? Зачем предложен черновик стандарта новых UUID и чем хорош UUIDv7?

45. GSA: алгоритм Гейла-Шепли 31.03.2024

🐌 Как Gale-Shapley алгоритм помогает найти идеальную пару и работу мечты. И как жадность улучшает систему. Также здесь поговорим о том, почему не всегда получается сделать всех счастливыми.

44. Go tracer, 1BRC 24.03.2024

🪢 Что нового в runtime/trace? Что дает партицирование и стриминг данных трейсера? Как ускорить чтение и обработку файла на 1 миллиард строк?

43. No silver bullet 17.03.2024

🥇 Обсудили статью Брукса 1986 года "No silver bullet" о возможности решения проблемы сложности в программных продуктах. Коротко про инцендент и успешный PITR в PostgreSQL, а также про команду MERGE.

42. Go 1.22.1, PostgreSQL в облаке, пакет slices 10.03.2024

⛵️ Исправления безопасности в Go 1.22.1. Сравнение производительности и стоимости PostgreSQL в разных облаках. Бережливое отношение к памяти в Go и пакет slices.

41. Ноль или один: споры о индексации 03.03.2024

🪲 Почему индексация массивов начинается с 0 в большинстве ЯП? Статья Дейкстры. Почему в Go отказались от отрицательной индексации?

40. MVCC, nocodb, уольнения в IT 25.02.2024

🤹‍♀️ MVCC - механизм конкурентного доступа к данным в PostgreSQL. Zero-code бэкенд с помощью nocodb. Массовые увольнения в IT-отрасли в США.

39. Книги: Мониторинг PostgreSQL; The Essence of SQL 18.02.2024

Поговорили про пару стоящих книг:
📘 Мониторинг PostgreSQL, Алексей Лесовский;
📙 The Essence of SQL, Дэвид Розенштейн.
Одна из них совсем свежая, другая же вышла больше 20 лет назад.

38. Go 1.22 11.02.2024

🚀 Go 1.22 и новое версионирование пакетов в SDK, как использовать PGO и его улучшенная производительность, улучшенный мультиплексор в net/http пакете, щепотка синтаксического сахара и другие изменения.

37. Буферный кеш; DRY-принцип 04.02.2024

🧹 Буферный кеш в PostgreSQL. Что это и в чем отличия буферного кеша от буфера и от кеша? 😐 Насколько DRY-принцип - это принцип? Обсудили его недостатки и проблемы поиска нужной абстракции.

36. Бекэнд для бизнес-аналитики 28.01.2024

🩻 MVP для бекэнда в бизнес-аналитике и его важнейшие компоненты.

35. Таймауты и ретраи 21.01.2024

🐌 Таймауты и ретраи разного типа. Какие бывают стратегии повторной отправки, зачем нужен джиттер и что такое спираль смерти?

34. Выстрел в ногу с PostgreSQL 14.01.2024

🔫 Что такое work_mem и как определить его значение? Стоит ли переносить всю бизнес-логику в хранимые процедуры? Как быстро уведомить о завершившейся транзакции, NOTIFY или Go-рутина? CTE или подзапросы и что изменилось в PostgreSQL 12? Сегодня говорим о PostgreSQL, индексах на FK и вдохновляем себя и вас на использование EXPLAIN ANALYZE.

33. Unicode 07.01.2024

🉐 Ориентация букв, графемные кластеры, перевенутые символы, руны и код-поинты таблицы символов, глифы, монгольский язык и египетские иероглифы, диакритики, валидация пользовательского ввода с диакритиками и приведение строк к ASCII

32. Итоги, ускорение LIKE/ILIKE, deadcode, курс на Brilliant 31.12.2023

🎅 Коротко об итогах года. Как ускорить LIKE/ILIKE с поиском по подстроке в PostgreSQL? Находим мертвый код с помощью deadcode. Всех с наступающим/наступившим Новым Годом! ☃️🎄🌵🎉

31. Основы Go 24.12.2023

🗿 Что такое выражение (expression) и инструкция (statement)? Что такое control flow? Чем декларация в Go отличается от C? Два вида тайп алиасов.

30. Резульатыт опроса Go разработчиков, CGO-пакеты 17.12.2023

🍰 Результаты отчета Go Developer Survey 2023 H2. Насколько микросервисная архитектура популярна в комьюнити Go-разработчиков? Какие СУБД, облака, IDE, форматы обмена данных самые популярные в комьюнити? Как комьюнити использует AI в разработке?

🔧 go-sqlite для работы с SQLite3 без CGO. Чем CGO пакеты хуже pure Go? Бенчмарк C FFI оверхедов и низкий перфоманс Go.

29. Опыт использования API от OpenAI 10.12.2023

👾 Почему мы решили использовать OpenAI в нашем проекте? Как мы его используем и какие поулчили результаты? Что дает API ассистент? Готов ли ChatGPT для использования в продакшне?

28. Обработка ошибок в Go 03.12.2023

☔️ Самая частая ошибка при работе с ошибками в Go. Обработка ошибок в Go: wrapping и добавление контекста. Достаточно ли Go SDK для работы с ошибками и что есть за пределами SDK?

27. Open, Close в Go 26.11.2023

💾 Функции Open, Close в Go, финализаторы и деструкторы Go рантайма.

🔧 nilaway - новый линтер от Uber

26. Полиморфизм в SQL, инцидент с WAL 19.11.2023

🌜 Что делать, если часто рвется SSH-соединение? Опыт использования lazydocker. Сколько можно выжать RPS из web-сервера с SQLite базой? Какие есть варианты дизайна БД для достижения полиморфизма в SQL (polymorphic association)?

🔥 Индциндент: закончилось место на сервере БД

25. Слайсы 12.11.2023

🔪 Почему слайсы в Go - это сложная концепция? Типовые ошибки при использовании слайсов. Как они устроены?

🗞 Группа Charm получила USD 6_000_000 от фонда Gradient
🗞 Krater: опыт перехода с Rust на Go

24. SSH-based приложения, сложности микросервисной архитектуры, рынок труда 05.11.2023

🧟 что такое ssh-based приложения? есть ли в вашей компании X+ разработчиков для решений на базе микросервисной архитектуры? почему микросервисная архитектура - это сложно? перспективы back-end разработки и у кого больше з/платы?

23. SQL антипаттерны 29.10.2023

🍄 Книга SQL антипаттерны. Реляционные БД без FK чеков. Проблемы смешивания метаданных и данных. EAV как надежный способ добавить страданий. Три способа хранения деревьев в реляционной БД (включая тот, о котором вы скорее всего не знали).

22. Новый рауер в Go 1.22 22.10.2023

🛵 Что будет в новом раутинге в Go1.22? Как новый раутинг устроен под капотом и насколько медленнее он будет работать по сравнении с текущим? Теперь для раутинга в HTTP-сервере достаточно Go SDK?

21. Монотонное, системное и атомное время 15.10.2023

⏱ Что такое монотонные часы? Скачущая секунда в POSIX и инциндент в CloudFlare из-за особенностей замеров временных интервалов в Go. Астрономические, атомные и монотонные часы.

20. Логгирование 07.10.2023

🐾 Можно ли в логгированием решить задачи трейсинга и мониторинга? Как логгировать запрос-ответ web-сервиса? Подебатировали про уровни логгирования (severity levels). Где хранить логи, PostgreSQL, ElasticSearch, ClickHouse? Неправильные ошибки в Go и при чем тут логи?

19. ChatGPT и Copilot 30.09.2023

🍕 Как мы используем Copilot и ChatGPT на ежедневной основе? Недостатки обоих продуктов, а также про чувство вины при использовании ChatGPT в работе, про правительство Исландии, идеи стартапов, "Black Mirror" и т.д.

18. testing-фреймворк в Go 23.09.2023

🧩 То что вы скорее всего не знали о testing пакете в Go. Бенчмарки, фаззи-тесты, параллельное тестирование, fstest, iotest и т.д.

17. Конкаренси, параллелизм, асинхронщина 16.09.2023

🚧 Concurrency, parallelism и asyncronous программирование. Почему эти термины часто путают, как все это работает в Go, JavaScript и Python? При чем тут очереди и event loop?

16. Брокеры сообщений и очереди 09.09.2023

💬 Когда переходить от batch processing к брокеру сообщений? Каковы этапы повышения сложности приложения? Опыт неудачного использования RabbitMQ.

15. Golang или Python? 02.09.2023

🥊 Почему 5 лет назад мы перешли с Python и PHP на Golang? Почему именно Golang? Python треды и GIL, что выбрать сегодня для разработки бэкэнда?

14. pgx 26.08.2023

🧱 Почему мы не используем pq в наших проектах на Go? Когда стоит использовать database/sql из стандартной библиотеки, а когда лучше работать напрямую с драйвером и почему мы не используем database/sql? Поговорили про функционал pgx позволяющий использовать LISTEN/NOTIFY, т.е. межпроцессное взаимодействие (IPC) на базе PostgreSQL. Коснулись работы с LOB и темы хранения файлов в БД. Поговорили про новую систему логгирования в pgx5 с использованием механизма трейсинга и про пул соединений.

13. Project layout 19.08.2023

🗺 В этом выпуске мы говорим о лейауте Go-проекта, т.е. организации файловой структуры проекта. Есть ли стандартный лейаут? Какие общие правила можно применить для организации кода? Резместить весь код в одном main.go файле - это ок? Какие идеи для лейаута можно почерпнуть из Go SDK? Стоит ли уделять большое внимание этому вопросу? Также Боря рассказал в общих чертах о своем "неправильном" лейауте и почему он сделал такой выбор.

12. Валидация. 12.08.2023

🔬 Валидация, верификация, RFC7807 и Марк Нотингем, анмаршалер JSON в Go и его связь с точностью валидации и как сообщать пользователю об ошибках.️

11. gonew, multi-threaded PostgreSQL. 05.08.2023

🏋🏾‍♀️ Наконец-то появится стандартный лейаут Go-проекта? PostgreSQL станет single process, multi-threaded? Что это решит и станет ли СУБД быстрее?

10. Рекомендации начинающим разработчикам. 29.07.2023

🔨 "Если у меня получилось, то и у вас получится" (Ларри Хон, очень эффективный плотник)

9. Пакет context в Go SDK. 22.07.2023

🔮 Казалось бы, с чего это пакет context заслужил отдельного подкаста?

8. Не WebSocket'ом единым. 15.07.2023

☄️ Бесконечные респонсы, фул-дуплекс, тройное лейтенси однонаправленных и двунаправленных коммуникаций

7. Это REST? 08.07.2023

🪓 REST - беда для перфекциониста. Есть ли у RESTful архитектурного стиля стандарт?

6. Зависимости в кодовой базе. 01.07.2023

🦕 Как ощутить свободу и избавиться от зависимостей? Статья Раса Кокса легла в основу этого выпуска.

5. Go 1.21. 24.06.2023

🔥В августе выйдет Go 1.21.0. Доступна rc-версия. Официальный release note (https://tip.golang.org/doc/go1.21).

4. Немного о безопасности: XSS, CSRF, CORS. 17.06.2023

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

3. To ORM or not to ORM? 10.06.2023

В этом эпизоде обсудили стоит ли использовать ORM в проектах и почему мы отказались от них в своих проектах.

2. regular expressions, systemd 03.06.2023

Регулярные выражения, автостарт и рестарт при краше с помощью systemd.

1. pg_basebackup, gzip vs zstd, DB indexes, Golang survey. 27.05.2023

Фиксация тега базового docker-образа; програмы для сжатия в pg_basebackup; важность понимания внутреннего устройства индексов БД на примере B-Tree; результаты опросы Go-комьюнити.