Look for any podcast host, guest or anyone
Showing episodes and shows of

Artem Ostretsov

Shows

Backend PodcastBackend Podcast79. Side Effects🎇 Что такое сайд эффект? Какая парадигма программирования ввела этот термин? Откуда взялся термин "сайд эффект"? Как понять где в коде сайд эффекты? Действительно ли сайд эффект - это побочное дествие (дословный перевод) или желательное поведение? Hosted on Acast. See acast.com/privacy for more information.2024-11-2441 minBackend PodcastBackend Podcast78. Rate Limit & Token Bucket🗑 Оцениваем упущенные выгоды от использования старой версии PostgreSQL. Новый файловый менджер yazi. Как работают рейт лимиты и token bucket алгоритм? Hosted on Acast. See acast.com/privacy for more information.2024-11-1736 minBackend PodcastBackend Podcast77. Interruptions in Programmers' Work☎️ Какой эффект оказывают прерывания - когда нас отвлекают - на эффективность разработчиков, и можно ли их уменьшить? Recovery time после прерываний? Можно ли слушать музыку при написании кода? Hosted on Acast. See acast.com/privacy for more information.2024-11-0926 minBackend PodcastBackend Podcast76. Multi-tenant queue in PostgreSQL🤼‍♀️ Как сделать multi-tenant очередь в PostgreSQL и обеспечить справедливое распределение очередности выполнения задач? Зачем нужны странные вопросы на собеседованиях при устройстве в компанию и что на них отвечать? Hosted on Acast. See acast.com/privacy for more information.2024-11-0335 minBackend PodcastBackend Podcast75. LRO API Design Pattern🕗 Долго выполняющиеся операции. О проблемах, когда клиент долго ждет ответа. Когда применять дизайн паттерн LRO? Должен ли код ошибки быть читаемым? Hosted on Acast. See acast.com/privacy for more information.2024-10-2734 minBackend PodcastBackend Podcast74. gofpdf, PostgreSQL HOT & fillfactorСкрытые возможности gofpdf для генерации PDF. Какой формат для печатаемых документов предпочесть: PNG, ZPL, PDF? Когда PostgreSQL годится в качестве key-value хранилища и как использовать HOT и fillfactor для максимизации производительности часто обновляемых данных? Hosted on Acast. See acast.com/privacy for more information.2024-10-2027 minBackend PodcastBackend Podcast73. Cognitive Psychology and Programming🧠 Когнитивная перегрузка, научные эксперименты по восприятию задач над шахматистами и программистами, перенос в долговременную память. Что такое дальний и ближний перенос знаний и помогает ли знание алгоритмов в написание приложений? Развивает ли интеллект умение пользоваться алгоритмами? Hosted on Acast. See acast.com/privacy for more information.2024-10-1334 minBackend PodcastBackend Podcast72. PostgreSQL 17, Go for scripts, Complex Forms🐘 Что нового в PostgreSQL? Хорошая статья по введению в Bubble Tea для создания TUI приложений. Скрипты на Go. Огромные web-формы: стоит ли переносить логику на фронтенд? Hosted on Acast. See acast.com/privacy for more information.2024-10-0634 minBackend PodcastBackend Podcast71. API PATCH🩹 Пограничная разница уровней изоляции Repeatable Read и Serializable. Частичное получение и обновление данных через API, метод PATCH. Hosted on Acast. See acast.com/privacy for more information.2024-09-2941 minBackend PodcastBackend Podcast70. Elvish, Temporal🧝 Что такое шелл нового поколения на примере Elvish? Как решаются проблемы надежного выполненеия workflow в микросервисной архитектуре? Что понравилось и не понравилось в Temporal? Hosted on Acast. See acast.com/privacy for more information.2024-09-2244 minBackend PodcastBackend Podcast69. Webhooks and Callbacks Hosted on Acast. See acast.com/privacy for more information.2024-09-1549 minBackend PodcastBackend Podcast68. auto_explain, ClickHouse, import cycle in Go🔄 Ошибка циклической инициализации в Go и особенности дизайна этого ЯП, инкрементная компиляция. Модуль auto_explain в PostgreSQL. Когда использовать ClickHouse? Hosted on Acast. See acast.com/privacy for more information.2024-09-0820 minBackend PodcastBackend Podcast67. Mono vs Multi Repos: Navigating CI Pipelines📚 Разница между моно и мульти репозиторием. Стоит ли вам использовать моно-репозиторий? Как триггерить отдельный пайплайн для подпроектов в случае моно/мультирепозитория? Ускорение сборки Docker образа. Синхронная разработка backend и frontend проекта. Hosted on Acast. See acast.com/privacy for more information.2024-08-3131 minBackend PodcastBackend Podcast66. Go 1.23 iterators, to OSS or not?💍 Итераторы в Go 1.23.0. Делать ли коммерческий проект с открытым исходным кодом или закрытым? Социальный инжениринг из Северной Кореи. Какие для себя риски видят компании-потребители OSS? Hosted on Acast. See acast.com/privacy for more information.2024-08-2546 minBackend PodcastBackend Podcast65. The thorny path to breaking free from ReactJS🧗‍♀️ Почему мы выбрали ReactJS для фронтенда и потом отказались от него? Когда стоит взять на борт ReactJS и когда генерировать старый добрый HTML на сервере? Вобщем, обсуждаем наш тернистый путь отказа от ReactJS. Hosted on Acast. See acast.com/privacy for more information.2024-08-1933 minBackend PodcastBackend Podcast64. TIOBE index, ORM in prod, StackOverflow survey🌴 Обновленный индекс TIOBE по языкам программирования: Go на 9 месте и теперь в TOP-10. Кртитический обзор преимуществ использования ORM. Примечательные цифры опроса 2024 года от StackOverflow. Hosted on Acast. See acast.com/privacy for more information.2024-08-1134 minBackend PodcastBackend Podcast63. Request deduplication‼️ Дизайн-паттерн для предотвращения дублирования запросов. Почему запросы иногда дублируются? Что делать, если данные в кеше устарели или кеш-сервер недоступен? Нужен ли уникальный request_id или достаточно использовать хеш тела запроса? Hosted on Acast. See acast.com/privacy for more information.2024-08-0440 minBackend PodcastBackend Podcast62. AWS certs, Monzo bank on AWS☁️ Мнение о AWS сертификатах для поиска работы в США. Case study: Monzo банк (UK) целиком работающий на инфраструктуре AWS. Hosted on Acast. See acast.com/privacy for more information.2024-07-2819 minBackend PodcastBackend Podcast61. sshd, basebackup, enum, rclone💥 Критическая уязвимость sshd. Особеннось работы pg_basebackup. Использование ENUM в PostgreSQL. Почему отказались от rclone в проде? Hosted on Acast. See acast.com/privacy for more information.2024-07-2125 minBackend PodcastBackend Podcast60. Riverqueue⛲️ Проблема двух хранилищ: СУБД и очередь. riverqueue - пример решения, в котором задачи очереди хранятся в трназакционной СУБД. Также, pspg и использование только SDK для тестов в Go. Hosted on Acast. See acast.com/privacy for more information.2024-07-1433 minBackend PodcastBackend Podcast59. OAuth 2.0🗝 Говорим про открытый стандарт авторизации OAuth 2.0 и ключевые моменты в понимании этого стандарта, а также про неочевидное использование этого фреймворка авторизации. Hosted on Acast. See acast.com/privacy for more information.2024-07-0731 minBackend PodcastBackend Podcast58. Serverless arc & microservices🤹‍♀️ Закат хайпа serverless архитектуры. Почему в свежих публикациях так часто предвещают конец развития технологии (спойлер: с технологией все в порядке)? Переход от микросервисной архитектуры к монолиту в Amazon Prime Video. Hosted on Acast. See acast.com/privacy for more information.2024-06-3023 minBackend PodcastBackend Podcast57. "Modern Software Engineering" book📘 Обзор книги "Modern Software Engineering": итеративная и инкрементальная разработка, agile современности и agile-манист от создателей, стоит ли всегда применять TDD, важные метрики разработчика: стабильность и производительность. Hosted on Acast. See acast.com/privacy for more information.2024-06-2345 minBackend PodcastBackend Podcast56. rclone снаружи и изнутри👭 Как используют rclone для однонаправленной и двунаправленной синхронизации? Правило "3-2-1" для резервного копирования. Также поговорили про внутренности rclone: интересная реализация интерактивной сборки конфигов, встроенный ncdu, базовые пакеты fs и vfs. Hosted on Acast. See acast.com/privacy for more information.2024-06-1637 minBackend PodcastBackend Podcast55. PGO: inlining & branching🏃‍♀️ Основы PGO (Profile Guided Optimization): инлайнинг и бранчинг. Hosted on Acast. See acast.com/privacy for more information.2024-06-0921 minBackend PodcastBackend Podcast54. Сервис резервации билетов👨‍🚀 Разбор модельного интервью: разработка сервиса резервации билетов. Самый популярный проект на Go - frp. Hosted on Acast. See acast.com/privacy for more information.2024-06-0245 minBackend PodcastBackend Podcast53. Survival Guide📘 Отзыв на книгу “Engineers Survival Guide”. Как выжить программисту в большой корпорации. Hosted on Acast. See acast.com/privacy for more information.2024-05-2636 minBackend PodcastBackend Podcast52. Mattermost💬 Mattermost - аналог Slack, написан на Go, с copyleft лицензией. Хороший пример крупного web-сервиса. Как он устроен внутри? Поговорили про абстрагирования от стораджа, разделение на слои приложения, выделения моделей в отдельный пакет, систему сборки документации, e2e тесты в этом проекте. Hosted on Acast. See acast.com/privacy for more information.2024-05-1947 minBackend PodcastBackend Podcast51. Tidy First?📘 Обзор книги “Tidy First?”. Говорим о том, зачем нужен рефакторинг, обсуждаем самые простые структурные изменения кода. Hosted on Acast. See acast.com/privacy for more information.2024-05-1242 minBackend PodcastBackend Podcast50. Traefik 3, cmp.Or в Go 1.22🍫 Что нового в Traefik 3? История о том, как добавили cmp.Or в Go 1.22. Зачем нужна эта функция и где ее использовать? Что такое comparable интерфейс? Hosted on Acast. See acast.com/privacy for more information.2024-05-0537 minBackend PodcastBackend Podcast49. nextgres и debezium⚖️ В этом выпуске рассказываю про nextgres - PostgreSQL бэкенд для MySQL приложений. И про debezium для аудита изменений СУБД. Hosted on Acast. See acast.com/privacy for more information.2024-04-2827 minBackend PodcastBackend Podcast48. Redis больше не FOSS🌶 Почему Redis теперь - это проприетарный продукт? Что такое SSPL лицензия и чем она плоха для разрабочиков? Что использовать вместо Redis? Hosted on Acast. See acast.com/privacy for more information.2024-04-2124 minBackend PodcastBackend Podcast47. UX: Don't Make Me Think📘 Отзыв на книгу по UX. Важен ли UX? Как создать удобный сайт? Почему простота и интуиция — ключи к успешному дизайну веб-сайта. Hosted on Acast. See acast.com/privacy for more information.2024-04-1352 minBackend PodcastBackend Podcast46. Экстремальный бекап, новый GoLand, UUIDv7🍿 Инкрементные бэкапы при помощи pg_probackup, когда штатных средств PostgreSQL не хватает. Что нового в GoLand 2024.1? Зачем предложен черновик стандарта новых UUID и чем хорош UUIDv7? Hosted on Acast. See acast.com/privacy for more information.2024-04-0834 minBackend PodcastBackend Podcast45. GSA: алгоритм Гейла-Шепли🐌 Как Gale-Shapley алгоритм помогает найти идеальную пару и работу мечты. И как жадность улучшает систему. Также здесь поговорим о том, почему не всегда получается сделать всех счастливыми. Hosted on Acast. See acast.com/privacy for more information.2024-03-3136 minBackend PodcastBackend Podcast44. Go tracer, 1BRC🪢 Что нового в runtime/trace? Что дает партицирование и стриминг данных трейсера? Как ускорить чтение и обработку файла на 1 миллиард строк? Hosted on Acast. See acast.com/privacy for more information.2024-03-2434 minBackend PodcastBackend Podcast43. No silver bullet🥇 Обсудили статью Брукса 1986 года "No silver bullet" о возможности решения проблемы сложности в программных продуктах. Коротко про инцендент и успешный PITR в PostgreSQL, а также про команду MERGE. Hosted on Acast. See acast.com/privacy for more information.2024-03-1751 minBackend PodcastBackend Podcast42. Go 1.22.1, PostgreSQL в облаке, пакет slices⛵️ Исправления безопасности в Go 1.22.1. Сравнение производительности и стоимости PostgreSQL в разных облаках. Бережливое отношение к памяти в Go и пакет slices. Hosted on Acast. See acast.com/privacy for more information.2024-03-1017 minBackend PodcastBackend Podcast41. Ноль или один: споры о индексации🪲 Почему индексация массивов начинается с 0 в большинстве ЯП? Статья Дейкстры. Почему в Go отказались от отрицательной индексации? Hosted on Acast. See acast.com/privacy for more information.2024-03-0334 minBackend PodcastBackend Podcast40. MVCC, nocodb, уольнения в IT🤹‍♀️ MVCC - механизм конкурентного доступа к данным в PostgreSQL. Zero-code бэкенд с помощью nocodb. Массовые увольнения в IT-отрасли в США. Hosted on Acast. See acast.com/privacy for more information.2024-02-2541 minBackend PodcastBackend Podcast39. Книги: Мониторинг PostgreSQL; The Essence of SQLПоговорили про пару стоящих книг:📘 Мониторинг PostgreSQL, Алексей Лесовский;📙 The Essence of SQL, Дэвид Розенштейн.Одна из них совсем свежая, другая же вышла больше 20 лет назад. Hosted on Acast. See acast.com/privacy for more information.2024-02-1839 minBackend PodcastBackend Podcast38. Go 1.22🚀 Go 1.22 и новое версионирование пакетов в SDK, как использовать PGO и его улучшенная производительность, улучшенный мультиплексор в net/http пакете, щепотка синтаксического сахара и другие изменения.📣 Страница эпизода: https://bknd.pro/podcast/episodes/2024/38.html Hosted on Acast. See acast.com/privacy for more information.2024-02-1135 minBackend PodcastBackend Podcast37. Буферный кеш; DRY-принцип🧹 Буферный кеш в PostgreSQL. Что это и в чем отличия буферного кеша от буфера и от кеша?😐 Насколько DRY-принцип - это принцип? Обсудили его недостатки и проблемы поиска нужной абстракции. Hosted on Acast. See acast.com/privacy for more information.2024-02-0439 minBackend PodcastBackend Podcast36. Бекэнд для бизнес-аналитики🩻 MVP для бекэнда в бизнес-аналитике и его важнейшие компоненты.📣 Страница эпизода: https://bknd.pro/podcast/episodes/2024/36.htmlВопросы, предложения можно писать на OstretsovAA+podcast@gmail.com Hosted on Acast. See acast.com/privacy for more information.2024-01-2838 minBackend PodcastBackend Podcast35. Таймауты и ретраи🐌 Таймауты и ретраи разного типа. Какие бывают стратегии повторной отправки, зачем нужен джиттер и что такое спираль смерти?📣 Страница эпизода: https://bknd.pro/podcast/episodes/2024/35.htmlВопросы, предложения можно писать на OstretsovAA+podcast@gmail.com Hosted on Acast. See acast.com/privacy for more information.2024-01-211h 05Backend PodcastBackend Podcast34. Выстрел в ногу с PostgreSQL🔫 Что такое work_mem и как определить его значение? Стоит ли переносить всю бизнес-логику в хранимые процедуры? Как быстро уведомить о завершившейся транзакции, NOTIFY или Go-рутина? CTE или подзапросы и что изменилось в PostgreSQL 12? Сегодня говорим о PostgreSQL, индексах на FK и вдохновляем себя и вас на использование EXPLAIN ANALYZE. Hosted on Acast. See acast.com/privacy for more information.2024-01-1440 minBackend PodcastBackend Podcast33. Unicode🉐 Ориентация букв, графемные кластеры, перевенутые символы, руны и код-поинты таблицы символов, глифы, монгольский язык и египетские иероглифы, диакритики, валидация пользовательского ввода с диакритиками и приведение строк к ASCIICue SheetTitle:8 Bit WinArtist:HeatleyBrosWriter:Brett Heatley, ASCAPPublisher:Heatley Music Publishing, ASCAPLabel:Heatley Music Publishing Hosted on Acast. See acast.com/privacy for more information.2024-01-0753 minBackend PodcastBackend Podcast32. Итоги, ускорение LIKE/ILIKE, deadcode, курс на Brilliant🎅 Коротко об итогах года. Как ускорить LIKE/ILIKE с поиском по подстроке в PostgreSQL? Находим мертвый код с помощью deadcode. Всех с наступающим/наступившим Новым Годом! ☃️🎄🌵🎉Title:Christmas RushArtist:HeatleyBrosWriter:Brett Heatley, ASCAPPublisher:Heatley Music Publishing, ASCAPLabel:Kyzen Music Hosted on Acast. See acast.com/privacy for more information.2023-12-3142 minBackend PodcastBackend Podcast31. Основы Go🗿 Что такое выражение (expression) и инструкция (statement)? Что такое control flow? Чем декларация в Go отличается от C? Два типа алиасов тайп алиасов.Cue SheetTitle:8 Bit WinArtist:HeatleyBrosWriter:Brett Heatley, ASCAPPublisher:Heatley Music Publishing, ASCAPLabel:Heatley Music Publishing Hosted on Acast. See acast.com/privacy for more information.2023-12-2450 minBackend PodcastBackend Podcast30. Результаты опроса Go разработчиков, CGO-пакеты🍰 Результаты отчета Go Developer Survey 2023 H2. Насколько микросервисная архитектура популярна в комьюнити Go-разработчиков? Какие СУБД, облака, IDE, форматы обмена данных самые популярные в комьюнити? Как комьюнити использует AI в разработке?🔧 go-sqlite (https://github.com/zombiezen/go-sqlite) для работы с SQLite3 без CGO. Чем CGO пакеты хуже pure Go? Бенчмарк C FFI оверхедов и низкий перфоманс Go.Cue SheetTitle:8 Bit WinArtist:HeatleyBrosWriter:Brett Heatley, ASCAPPublisher:Heatley Music Publishing, ASCAPLabel:Heatley Music Publishing Hosted on Acast. See acast.com/privacy for more information.2023-12-1738 minBackend PodcastBackend Podcast29. Опыт использования API от OpenAI👾 Почему мы решили использовать OpenAI в нашем проекте? Как мы его используем и какие поулчили результаты? Что дает API ассистент? Готов ли ChatGPT для использования в продакшне?Cue SheetTitle:8 Bit WinArtist:HeatleyBrosWriter:Brett Heatley, ASCAPPublisher:Heatley Music Publishing, ASCAPLabel:Heatley Music Publishing Hosted on Acast. See acast.com/privacy for more information.2023-12-1055 minBackend PodcastBackend Podcast28. Обработка ошибок в Go☔️ Самая частая ошибка при работе с ошибками в Go. Обработка ошибок в Go: wrapping и добавление контекста. Достаточно ли Go SDK для работы с ошибками и что есть за пределами SDK?Cue SheetTitle:8 Bit WinArtist:HeatleyBrosWriter:Brett Heatley, ASCAPPublisher:Heatley Music Publishing, ASCAPLabel:Heatley Music Publishing Hosted on Acast. See acast.com/privacy for more information.2023-12-0348 minBackend PodcastBackend Podcast27. Open, Close в Go💾 Функции Open, Close в Go, финализаторы и деструкторы Go рантайма.🔧 nilaway - новый линтер от UberCue SheetTitle:8 Bit WinArtist:HeatleyBrosWriter:Brett Heatley, ASCAPPublisher:Heatley Music Publishing, ASCAPLabel:Heatley Music Publishing Hosted on Acast. See acast.com/privacy for more information.2023-11-2641 minBackend PodcastBackend Podcast26. Полиморфизм в SQL, инцидент с WAL🌜 Что делать, если часто рвется SSH-соединение? Опыт использования lazydocker. Сколько можно выжать RPS из web-сервера с SQLite базой? Какие есть варианты дизайна БД для достижения полиморфизма в SQL (polymorphic association)?🔥 Индциндент: закончилось место на сервере БДCue SheetTitle:8 Bit WinArtist:HeatleyBrosWriter:Brett Heatley, ASCAPPublisher:Heatley Music Publishing, ASCAPLabel:Heatley Music Publishing Hosted on Acast. See acast.com/privacy for more information.2023-11-1956 minBackend PodcastBackend Podcast25. Слайсы в Go🔪 Почему слайсы в Go - это сложная концепция? Типовые ошибки при использовании слайсов. Как они устроены?🗞 Группа Charm получила USD 6_000_000 от фонда Gradient🗞 Krater: опыт перехода с Rust на GoCue SheetTitle:8 Bit WinArtist:HeatleyBrosWriter:Brett Heatley, ASCAPPublisher:Heatley Music Publishing, ASCAPLabel:Heatley Music Publishing Hosted on Acast. See acast.com/privacy for more information.2023-11-1245 minBackend PodcastBackend Podcast24. SSH-based приложения, сложности микросервисной архитектуры, рынок труда🧟 что такое ssh-based приложения? есть ли в вашей компании X+ разработчиков для решений на базе микросервисной архитектуры? почему микросервисная архитектура - это сложно? перспективы back-end разработки и у кого больше з/платы?Cue SheetTitle:8 Bit WinArtist:HeatleyBrosWriter:Brett Heatley, ASCAPPublisher:Heatley Music Publishing, ASCAPLabel:Heatley Music Publishing Hosted on Acast. See acast.com/privacy for more information.2023-11-0547 minBackend PodcastBackend Podcast23. SQL антипаттерны🍄 Книга "SQL антипаттерны (https://www.amazon.com/SQL-Antipatterns-Programming-Pragmatic-Programmers/dp/1934356557)". Реляционные БД без FK чеков. Проблемы смешивания метаданных и данных. EAV как надежный способ добавить страданий. Три способа хранения деревьев в реляционной БД (включая тот, о котором вы скорее всего не знали). Hosted on Acast. See acast.com/privacy for more information.2023-10-2950 minBackend PodcastBackend Podcast22. Новый рауер в Go 1.22🛵 Что будет в новом раутинге в Go1.22? Как новый раутинг устроен под капотом и насколько медленнее он будет работать по сравнении с текущим? Теперь для раутинга в HTTP-сервере достаточно Go SDK? Hosted on Acast. See acast.com/privacy for more information.2023-10-2439 minBackend PodcastBackend Podcast21. Монотонное, системное и атомное время⏱ Что такое монотонные часы? Скачущая секунда в POSIX и инциндент в CloudFlare из-за особенностей замеров временных интервалов в Go. Астрономические, атомные и монотонные часы. Hosted on Acast. See acast.com/privacy for more information.2023-10-1544 minBackend PodcastBackend Podcast20. Логгирование🐾 Можно ли в логгированием решить задачи трейсинга и мониторинга? Как логгировать запрос-ответ web-сервиса? Подебатировали про уровни логгирования (severity levels). Где хранить логи, PostgreSQL, ElasticSearch, ClickHouse? Неправильные ошибки в Go и при чем тут логи? Hosted on Acast. See acast.com/privacy for more information.2023-10-071h 07Backend PodcastBackend Podcast19. ChatGPT и Copilot🍕 Как мы используем Copilot и ChatGPT на ежедневной основе? Недостатки обоих продуктов, а также про чувство вины при использовании ChatGPT в работе, про правительство Исландии, идеи стартапов, "Black Mirror" и т.д. Hosted on Acast. See acast.com/privacy for more information.2023-10-011h 01Backend PodcastBackend Podcast18. testing-фреймворк в Go🧩 То что вы скорее всего не знали о testing пакете в Go. Бенчмарки, фаззи-тесты, параллельное тестирование, fstest, iotest и т.д. Hosted on Acast. See acast.com/privacy for more information.2023-09-2348 minBackend PodcastBackend Podcast17. Конкаренси, параллелизм, асинхронщинаConcurrency, parallelism и asyncronous программирование. Почему эти термины часто путают, как все это работает в Go, JavaScript и Python? При чем тут очереди и event loop? Hosted on Acast. See acast.com/privacy for more information.2023-09-1753 minBackend PodcastBackend Podcast16. Брокеры сообщений и очереди💬 Когда переходить от batch processing к брокеру сообщений? Каковы этапы повышения сложности приложения? Опыт неудачного использования RabbitMQ. Hosted on Acast. See acast.com/privacy for more information.2023-09-091h 02Backend PodcastBackend Podcast15. Golang или Python?Сегодня мы говорим о сравнении двух языков: Go и Python. Мы поделимся своим опытом перехода на Go. Почему Боря мигрировал с Python на Go, а я прекратил писать новый код на PHP? Не сожалеем ли мы о сделанном выборе? Может быть стоило выбрать какой-то другой язык, например, Rust?В 2017 и 2018 годах я активно искал альтернативы PHP и столкнулся с выбором следующего языка. Я пробовал и тогда еще популярный язык Scala, пробовал Rust, готовился к экзамену по Java (у меня есть коммерческий опыт разработки на ней). Но в итоге остановился на Go. Если вы стоите перед похожим выбором, то надеюсь этот подкаст вам в этом поможет. Hosted on Acast. See acast.com/privacy for more information.2023-09-0350 minBackend PodcastBackend Podcast14. pgxСегодня мы говорим о драйвере базы данных pgx. Почему мы не используем pq в наших проектах на Go? Когда стоит использовать database/sql из стандартной библиотеки, а когда лучше работать напрямую с драйвером и почему мы не используем database/sql? Поговорили про функционал pgx позволяющий использовать LISTEN/NOTIFY, т.е. межпроцессное взаимодействие (IPC) на базе PostgreSQL. Коснулись работы с LOB и темы хранения файлов в БД. Поговорили про новую систему логгирования в pgx5 с использованием механизма трейсинга и про пул соединений. Hosted on Acast. See acast.com/privacy for more information.2023-08-2659 minBackend PodcastBackend Podcast13. Project layout🗺 В этом выпуске мы говорим о лейауте Go-проекта, т.е. организации файловой структуры проекта. Есть ли стандартный лейаут? Какие общие правила можно применить для организации кода? Резместить весь код в одном main.go файле - это ок? Какие идеи для лейаута можно почерпнуть из Go SDK? Стоит ли уделять большое внимание этому вопросу?Также Боря рассказал в общих чертах о своем "неправильном" лейауте и почему он сделал такой выбор. Hosted on Acast. See acast.com/privacy for more information.2023-08-191h 01Backend PodcastBackend Podcast12. Валидация.🔬 Валидация, верификация, RFC7807 и Марк Нотингем, анмаршалер JSON в Go и его связь с точностью валидации и как сообщать пользователю об ошибках.️ Hosted on Acast. See acast.com/privacy for more information.2023-08-1258 minBackend PodcastBackend Podcast11. gonew, multi-threaded PostgreSQL.В Go появится стандартный лейаут? PostgreSQL станет single process, multi-threaded? Что это решит и станет ли СУБД быстрее?📣 Страница эпизода: https://bknd.pro/podcast/episodes/2023/11.htmlВопросы, предложения можно писать на OstretsovAA+podcast@gmail.com Hosted on Acast. See acast.com/privacy for more information.2023-08-0525 minBackend PodcastBackend Podcast10. Рекомендации начинающим разработчикам.🔨 "Если у меня получилось, то и у вас получится" (Ларри Хон, очень эффективный плотник)Во что в первую очередь вкладывать свое драгоценное время в начале карьеры? Надо ли всю жизнь учиться? Можно ли без знаний английского быть эффективным разработчиком? Как определиться со стеком? Hosted on Acast. See acast.com/privacy for more information.2023-07-2933 minBackend PodcastBackend Podcast9. Пакет context в Go SDK.🔮 Казалось бы, с чего это пакет context заслужил отдельного подкаста?Как применяется контекст в Go? Как решали задачи отмены Go-рутин до появления этого пакета в Go? Как мы, разработчики, должны реагировать на предложение функции передать ей контекст? Как на самом деле обрабатывается контекст и зачем все это нужно?🥁Наша статья о контекстах в Go с примерами: https://bknd.pro/articles/2023-go-context-ru.html📣 Страница эпизода: https://bknd.pro/podcast/episodes/2023/9.htmlВопросы, предложения можно писать на OstretsovAA+podcast@gmail.comМы на других платформах:- Spotify (https://open.spotify.com/show/6G9K0DrOH2wsEqDKbed01e?si=oQXKuI4tQKqgJj894-2p_A)- YouTube (https://www.youtube.com/@ostrbor/videos)- Google Podcasts (https://podcasts.google.com/feed/aHR0cHM6Ly9mZWVkcy5hY2FzdC5jb20vcHVibGljL3Nob3dzLzY0NzI3YzA3ZTY4OTk3MDAxMmZiMWMyMw)- Amazon Music (https://music.amazon.com/podcasts/d797927c-7c90-4d4b-a845-3b61dc25060c/backend-podcast)- Podchaser (https://www.podchaser.com/podcasts/backend-podcast-5356704)- Jiosaavn (https://www.jiosaavn.com/shows/backend-podcast/1/gcf017sumlQ_)RSS (https://feeds.acast.com/public/shows/64727c07e689970012fb1c23) Hosted on Acast. See acast.com/privacy for more information2023-07-2255 minBackend PodcastBackend Podcast8. Не WebSocket'ом единым.☄️ Бесконечные респонсы, фул-дуплекс, тройное лейтенси однонаправленных и двунаправленных коммуникацийКак получать события с сервера максимально быстро? Что можно использовать кроме WebSocket протокола? Темная лошадка SSE - это идеальное решение? HTTP2 упразднит WebSocket'ы?📣 Страница эпизода: https://bknd.pro/podcast/episodes/2023/8.htmlВопросы, предложения можно писать на OstretsovAA+podcast@gmail.com Hosted on Acast. See acast.com/privacy for more information.2023-07-1545 minBackend PodcastBackend Podcast7. Это REST?Есть ли у RESTful архитектурного стиля стандарт? Что если использовать только POST HTTP-метод или один URI для всех методов в своем API? Покопались в дисертации (https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm) Роя Филдинга, отца REST. Обсудили дебатируемые практики и являются ли "нетрадиционные" решения тоже REST? Hosted on Acast. See acast.com/privacy for more information.2023-07-0854 minBackend PodcastBackend Podcast6. Зависимости в кодовой базе.🦕 Как ощутить свободу и избавиться от зависимостей?Статья Раса Кокса легла в основу этого выпуска. Почему gorilla toolkit был заархивирован? История исчезновения npm-пакета left-pad в 11 строк кода. Монорепозиторий Google размером 86Тб+. Повторять код плохо или нет, если ты пишешь на Go? Инцидент с event-stream пакетом. Hosted on Acast. See acast.com/privacy for more information.2023-07-0158 minBackend PodcastBackend Podcast5. Go 1.21.0.🔥В августе выйдет Go 1.21.0. Доступна rc-версия. Официальный release note (https://tip.golang.org/doc/go1.21).В подкасте:— новые пакеты с дженерик-функциями в SDK: slices, maps;— новое версионирование версий Go;— новый пакет log/slog для структурного логгирования;— оптимизированный билд на основе профилирования PGO (profile-guide optimization);— LoopvarExperiment;— новые build-ins функции min, max и clear.🌧 Разбор полетов. Компромисс при проектировании БД: нормализация-денормализация на примере из практики.📣 Страница эпизода: https://bknd.pro/podcast/episodes/2023/5.htmlВопросы, предложения можно писать на OstretsovAA+podcast@gmail.com Hosted on Acast. See acast.com/privacy for more information.2023-06-2438 minBackend PodcastBackend Podcast4. Немного о безопасности: XSS, CSRF, CORS.В этом выпуске мы немного поговорили о безопасности бэкэнд-приложений, CORS-механизм и связанные с ним политики безопасности браузеров, чуть обсудили XSS и CSRF атаки.Главная страница подкаста: https://bknd.pro/podcast/Вопросы/предложения можно слать на OstretsovAA+podcast@gmail.comТакже вы можете подписаться на нас на других платформах.Телеграм: https://t.me/bkndproSpotify: https://open.spotify.com/show/6G9K0DrOH2wsEqDKbed01e?si=oQXKuI4tQKqgJj894-2p_AYouTube: https://www.youtube.com/@ostrbor/videosGoogle Podcasts: https://podcasts.google.com/feed/aHR0cHM6Ly9mZWVkcy5hY2FzdC5jb20vcHVibGljL3Nob3dzLzY0NzI3YzA3ZTY4OTk3MDAxMmZiMWMyMwAmazon Music: https://music.amazon.com/podcasts/d797927c-7c90-4d4b-a845-3b61dc25060c/backend-podcast Hosted on Acast. See acast.com/privacy for more information.2023-06-1749 minBackend PodcastBackend Podcast3. To ORM or not to ORM?Стоит ли использовать ORM в своих проектах? Почему мы отказались от ORM? Hosted on Acast. See acast.com/privacy for more information.2023-06-1054 minBackend PodcastBackend Podcast2. regular expressions, systemd Hosted on Acast. See acast.com/privacy for more information.2023-06-0341 minBackend PodcastBackend Podcast1. pg_basebackup, gzip vs zstd, DB indexes, Golang surveyTiny Love by Roa https://soundcloud.com/roa_music1031Creative Commons — Attribution 3.0 Unported — CC BY 3.0Free Download / Stream: https://bit.ly/3KfPTBzMusic promoted by Audio Library https://youtu.be/hxka3Blk0nk Hosted on Acast. See acast.com/privacy for more information.2023-05-2742 minDaily DevDaily Devep021 / gitlab runners, Don't touch my code- свой ранер (runner) на gitlab и какие проблемы при этом возникли (Docker in Docker, несовместимость конфига `.gitlab-ci.yml`); - ушли с shared ранера потому что:    * нет кеша слоев Docker'а;    * мало ресурсов;    * иногда нужно ждать когда выделят ранер). - немного про файловую систему Docker'a; - тестирование с использованием `docker-compose`; - статья ["Don't Touch My Code"][1] о качестве кода в зависимости от ownership'а. [1]: https://www.microsoft.com/en-us/research/publication/dont-touch-my-code-examining-the-effects-of-ownership-on-software-quality/2020-10-2400 minDaily DevDaily Devep020 / Go, логи, Upwork- когда использовать `done` канал в Go; - немного про го-рутины и их равноправие; - пара предложений по работе на Upwork; - хранение логов в time series БД, rsyslog, CloudWatch logs и вообще поиск альтератив ElasticSearch + Graylog;2020-09-2536 minDaily DevDaily Devep019 / код-ревью, буферизация, тесты в конкурентной среде- [эффект Даннинга — Крюгера][1]; - немного про код-ревью; - возможные ошибки в concurrency коде; - буферизация; - всегда используйте defer; - тестирование в конкурентной среде (race флаг). [1]: https://ru.wikipedia.org/wiki/%D0%AD%D1%84%D1%84%D0%B5%D0%BA%D1%82_%D0%94%D0%B0%D0%BD%D0%BD%D0%B8%D0%BD%D0%B3%D0%B0_%E2%80%94_%D0%9A%D1%80%D1%8E%D0%B3%D0%B5%D1%80%D0%B02020-07-3128 minDaily DevDaily Devep018 / Go race condition, TypeScript, Python- что такое race condition на примере; - пример приложения, в котором мы ушли от go-рутины за счет инфраструктурного решения на базе kubernetes; - kubernetes SDK для создания своих типов (`kind`); - удобство двух мониторов при разработке frontend web-приложений; - первые впечатления от TypeScript'а; - [react-testing-library][1]; - мысли о том, что стоит попробовать Python (Django) для следующего проекта. [1]: https://github.com/testing-library/react-testing-library2020-07-0239 minDaily DevDaily Devep017 / Матан для продолжающихБольшинство программистов не используют широко математический аппарат в ежедневной практике. Еще раз поговорили об этом после того как я закончил чтение первой главый [A Programmer's Introduction to Mathematics][1]. Концептуально коснулись проблемы доказательства **существования** и **уникальности** в математическом анализе. Компьютерная эра могла начаться на 50-70 лет раньше. Этого не произошло из-за того, что для существующих научных открытий не смогли найти приложение в создании вычислительных машин.   Бинарный оператор `xor` и его применение. Боря порекомендовал также неплохой [YouTube-канал Eddie Woo][2] для тех, кто хочет вспомнить базовые концепции в математике. [1]: https://pimbook.org/   [2]: https://www.youtube.com/user/misterwootube2020-06-1537 minDaily DevDaily Devep016 / SpaceX Demo-2 миссия**Концовка эпизода к сожалению не записалась из-за проблем со связью.** Поговорили о: 1) недавнем запуске Dragon компанией SpaceX: миссия Demo-2; 2) [World's fastest internet speed from a single optical chip][1]; 3) игра по крупному в крупных корпорациях; 4) структура с единственным полем в `errors` package в Golang. [1]: https://www.sciencedaily.com/releases/2020/05/200522095504.htm2020-05-2927 minDaily DevDaily Devep015 / cloud computingТри модели ведения IT-бизнеса: * создание своего одного продукта; * саппорт существующего одного продукта; * решение текущих бизнес-задач.     Удвоение рынка облачных вычеслений в ближайшие 2-3 года. В рамках этой темы упомянули Game-as-a-service: PlayStation Now (Sony), Stadia (Google), xCloud (Microsoft), GameFly (ElectronicArts). Для подобных сервисов нужны кластера. Рассматриваю возможный свич в углубление знаний кластерных технологий, например, Kubernetes. Коснулись тем языка программирования Go: * пустых структур для создания set'а через map `map[string]struct{}`; * `io` пакета; * поговорили о маленьком пакете [go-gelf][1]; * и [fsnotify][2]. [1]: https://github.com/Graylog2/go-gelf [2]: https://github.com/fsnotify/fsnotify2020-05-2247 minDaily DevDaily Devep014 / embedding интерфейсов в Goembedding интерфейсов в Go - возможность встроить один тип в другой. Самый частый пример в Go - это mutex'ы. Zero value интерфейса - это `nil`. Организация кода в Go-приложении в части интеграции со сторонними сервисами. Впечатления о книге ["A Programmer's Introduction to Mathematics"][1]. Математика, необходимая для Computer Science для тех, кто подзабыл про неё. [1]: https://pimbook.org/2020-05-1536 minDaily DevDaily Devep013 / MongoDB, BSON, overlay fsПару недель назад в сайд-проекте решил попробовать MongoDB. Несколько поделился первыми ощущениями от MongoDB. Коснулись [доклада][1] Айка Саргсяна (Юла) "Крупный проект на одной NoSQL". Обсудили общую тему базы данных для стартапа на начальной стадии. Коснулись хранения данных в MongoDB, [спецификацию BSON][2], join'ы, мигарции. Упомянули отличную книгу [Designing Data-Intensive Applications][3]. ## Overlay fs Неплохая свежая [статья][4] объясняющая как работают docker images на примере overlay fs. Немного про организацию наших проектов: gitlab, registry, CI, k8s. [1]: https://www.youtube.com/watch?v=ZLOFOxsDJIY [2]: http://bsonspec.org/spec.html [3]: https://www.amazon.com/Designing-Data-Intensive-Applications-Reliable-Maintainable/dp/1449373321 [4]: https://dev.to/napicella/how-are-docker-images-built-a-look-into-the-linux-overlay-file-systems-and-the-oci-specification-175n2020-05-0842 minDaily DevDaily Devep012 / конфигурирование Go-приложенияПоговорили о конфигурировании Go-приложения. Касались следующих тем: - [12-factor app][1], а конкретно [3ий раздел, посвященный конфигам][2]; - глобальный контекст - хорошо или плохо; когда глобальный контекст плох; - популярные/удобные проекты для конфигурирования:    - https://github.com/spf13/viper;    - https://github.com/plaid/go-envvar; - простое решение по конфигурированию для небольших проектов - функция, заполняющая структуру со значениями по умолчанию из переменных окружения; - [плагин][3] для GoLand для использования `.env`-файла при запуске билда/тестов; - тестирование http-хендлеров; - table-тестирование в интеграционных тестах; - пирамида тестов; Также я поделился первым знакомством с couchbase документной БД: - важная разница community & enterprise версий; - язык запросов N1QL - спинофф ANSI SQL; - [сравнение][4] Couchbase и MongoDB [1]: https://12factor.net/ [2]: https://12factor.net/config [3]: https://plugins.jetbrains.com/plugin/7861-envfile [4]: https://db-engines.com/en/system/Couchbase%3BMongoDB2020-04-3035 minDaily DevDaily Devep011Проект loon Обратил внимание на ballon'ы на сайте https://www.flightradar24.com/. Это проект [loon][1] воздушные шары, обеспечивающие интернетом наземных клиентов. Если коротко, то это летающая базовая станция. Дженерики в Golang Первое и важное: [дженерикам в Go быть][2]! В течении первых 24 часов после публикации Go возник вопрос о наличии дженериков. До сих пор это один из top вопросов. Летом 2019 года был опубликован [дизайн-документ дженериков][3] для Go. Определение дженериков: > Generic programming enables the representation of functions and data structures in a generic form, with types factored out. Уже сейчас можно [поиграть с дженериками в Golang][5] с помощью [wasm-go-playground][4]. Уже сейчас можно писать универсальный код для разных типов с помощью: - интерфейсов; - кодогенерации; - приведения типов (`interface{}`). Немного про Дональда Кнута [1]: https://loon.com/ [2]: https://go-review.googlesource.com/c/go/+/187317 [3]: https://go.googlesource.com/proposal/+/4a54a00950b56dd0096482d0edae46969d7432a6/design/go2draft-contracts.md [4]: https://github.com/ccbrown/wasm-go-playground [5]: https://ccbrown.github.io/wasm-go-playground/experimental/generics/#A4Qwxg1iDmCmAEBbEBLAdgKA2A9mgLgE7j7wDOR6chAFACoCU8A3hgJB3wDKla0NTCoSoYAvlnwBPYAh7gINKTPichVWISYBtALp0sAMwCuaMPBplu+efQZMACrFgKmnVm0Kx8RwmnJaAG1g0CwYAWgBGHTFDEzMLeAAqOUhbBxxgARZ2RMsAXnNchi0ALiCQosjo8QxjU3NLZOtUxgcjMgALGgA3EACjBEZstlz4ApBgGTQAExpcgBp4Xv7YBhjauIarG1arYT4stT5hz1ISgoAiC/YDHEJ4AH1F7vhz+GI+BEt3NhQDd688AAhJcLsM2B5AQBqS6La4Q8QQ07wGFLAB0PH2/DWbERpx8flO6yUCAAspIAPIAIwAVrAwKQhEYGcMAHIgRBfXjQdZ1eI4WnwcnUukMpiYqiHbknLwE+ACmlo2020-04-2435 minDaily DevDaily Devep010Не проследили за балансом микрофонов, поэтому Боря в этом выпуске звучал тише, чем обычно. Приносим извенения за неудобства. Поговорили про логгирование в web-сервисах. - пакет `log` стандартной библиотеки; - написание своих кастомных логеров; - упомянули наше решение [gluent-bit][1], которое мы используем для трансляции логов в Graylog; - [logrus][2] в ~20 раз медленнее [zap][3]; - немного упомянули json-экстрактор Graylog; - уровни логирования: DEBUG, INFO, WARN, ERROR, FATAL; - особенности [zap][3]:    - поддержка уровней логирования;    - sampling для дедупликации потока логов;    - не использует рефлексию и стандартный `json` пакет: работает через `append`;    - `SugaredLogger` и `Logger`;    - нет ротации логов. - ротация логов через [lumberjack][4] - что имеет смысл логировать, а что выносить в мониторинг; - `Reference-Id` для идентификации request-response и связанных операций; - отказ от логирования запросов, не изменяющих состояние системы; - унификация логов. [1]: https://github.com/ostretsov/gluent-bit [2]: https://github.com/sirupsen/logrus [3]: https://github.com/uber-go/zap [4]: https://godoc.org/gopkg.in/natefinch/lumberjack.v22020-04-1742 minDaily DevDaily Devep009В подкасте подняли вопрос о сообщениях об ошибках в API. RFC7807 "Problem details" Этот документ предлагает унифицированное решение по форматированию (схеме) ответа проблемы/ошибки для API-сервисов. Несмотря на то, что документ достаточно свежий (весна 2016) мы едва ли обнаружили для себя удобное решение, которое одновременно будет удобно и для клиента API. RFC предлагает дополнительный Content-Type: application/problem+json. Частичное применение некоторых идей мы нашли в API DHL v4 Обсудили применимость использования Content-Language для последующей локализации. В большинстве наших проектов мы используем английский. Обсудили предложение RFC по использованию в качестве кодов ошибок URI и насколько это удобно использовать клиенту. Рассказали схему ошибки, которую мы используем в своих проектах.2020-04-0956 minDaily DevDaily Devep008 тестирование unexported методов в Go через создание exported алиаса; создание *_test пакета для решения проблемы циклических импортов в тестах; unicode пакет; тестирование через публичные интерфейсы; преждевременная оптимизация; преждевременная абстракция: функции, классы, интерфейсы, новые протоколы; правило трех; читаемость против преждевременной абстракции; соблюдение уровней абстрации; правило бойскаута; 2020-04-0342 minDaily DevDaily Devep007 чуть-чуть о Google Cloud Spanner - реляционная геораспределенная БД от Google коснулись темы документные базы против реляционных consistency в базах данных дорогие облачные БД от Google научные публикации на google research / google scholar удобные облачные сервисы, которые мы используем регулярно: AWS S3, SES, Google Places API поддерживать самому кластер k8s или нет проекты, в которых "поставили точку" трудности, с которыми мы столкнулись, когда впервые развернули своей k8s кластер история одной проблемы в k8s на hetzner, суть которой мы так и не выяснили возможно стоит подписаться на changelog k8s https://github.com/urfave/cli для создания CLI-приложений на Go http://docopt.org/ ACID вобще и ACID в MongoDB 2020-03-2742 minDaily DevDaily Devep006Удаленная работа boltdb Встраиваемая key-value база данных. Чем-то напоминает SQLite за исключением того, что это просто key-value. Всего <3K LOC. Не поддерживается более, но стабильна: новых фич автор добавлять не планирует. Отлично подходит для интенсивных чтений. Использует lock'и. транзакции на чтение и на запись; автоинкременты; бакеты могут быть вложенными; итерации по ключам бакета с использованием курсора возможно в любых направлениях; ключи отсортированы "байт-к-байту" за счет чего можно делать prefix-сканы и range-сканы (например по RFC3339-дате). Объектно-ориентированный язык программирования Pharo В Pharo всего 6 ключевых слов.2020-03-1944 minDaily DevDaily Devep005Поговорили о: ActiveRecord vs Repository паттерне; pgbouncer; проекты типа аггрегатор и интегратор. 2020-03-1346 minDaily DevDaily Devep004Подкасть чуть более чем полностью о Go Зависимости в хендлерах Обсудили два способа инжектирования зависимостей в хендлерах: использование глобальных переменных; явная передача зависимостей через арументы фунции-хендлера; использование структуры-контейнера. Много говорили о базе данных в роли зависимости. Вынесение request и response структур в хендлер func Handler(db *storage.DB) gin.HandlerFunc {    type request struct {        //    }    type response struct {        //    }    return func(ctx *gin.Context) {        //    } } Go поощряет написание "скучного" кода Оптимистическое программирование Опубликовано: 05.03.2020 Теги: Go, сервис-контейнер, зависимости, python, оптимистическое программирование2020-03-0554 minDaily DevDaily Devep003excelize, упомянутый в прошлом эпизоде удалось за прошедшую неделю применить. В деле показал себя отлично. Не часто заказчик требует обмен данных в XLSX-формате через API. Это был тот редкий случай. Алгоритмы Проходил на coursera курс по алгоритмам от ВШЭ. Среди языков, на которых можно делать submission нет Go, но для мня это неплохой повод попрактиковаться в Python или Rust. Последний мы не используем в проектах, а вот проекты на Python у нас есть. Так вот на каждый язык свои лимиты по рантайму: Язык программирования Лимит времени выполенения, сек C, C++, Rust     1 Java, C#            1.5 Haskell              2 Scala                  3 Ruby, JavaScript, Python      5 Несколько неожиданно, что Scala дали такой лимит. Концепция стресс-тестирования Идея в том, чтобы написать две имплементации и сравнивать выходные значение при одинаковых входных. Чаще применяется для тестирования алгоритмов когда есть медленное, но простое решение и быстрое, но, возможно, с ошибками в реализации. В тестах мы чаще сами придумываем входные данные для тестируемого метода. При стресс-тестировании входные данные генерируются произвольным образом. Стресс-тесты не отменяют необходимости в корнер-кейсах, когда мы тестируем пограничные состояния: отрицательные, одинаковые значение, неверные типы, нулевые значения и т.д. Рейтинг языков программирования от IEEE Графики предварены несколько сомнительной цитатой: Engineers love Python, JavaScript, and Java. Employers, on the other hand, shine their light on Go. Пожалуй действительно любят из этой тройки Python. JavaScript как раз едва ли любят, поэтому и перетягивает на себя популярность TypeScript, добавивший строгости. А Go - это хороший шаг в сторону упрощения кода и он оппонирует Java, C++, C#, Scala. Go в рейтинге IEEE №1. pkg.go.dev вместо godoc.org На главной популярные и рекомендуемые репозитории. В каждом пакете можно посмотреть зависимости и кто использует этот пакет. Другое Обсудили также пару пакетов из x/sync: https://godoc.org/golang.org/x/sync/singleflight https://godoc.org/golang.org/x/sync/errgroup Коротко обсудили алгоритм зайца и черепахи для поиска петли в связанном списке. Вдохновился на некоторое углубление 2020-02-2747 minDaily DevDaily Devep002tamago Позволяет запускать Go-приложение прямо на процессоре, без операционной системы. Концепция unikernel. Пока поддерживается только их же (f-secure) SoC (Systm-on-Chip) MkII (~150USD). В планах добавить поддержку Raspberry PI Zero (~25USD). Кстати будет упомянуть книгу Code: The Hidden Language of Computer Hardware and Software by Charles Petzold. Основы изложены лучше, чем вам их дадут в университете. excelize Просто упомяну библиотеку для чтения и записи XLSX-файлов в Go: Excelize is a library written in pure Go providing a set of functions that allow you to write to and read from XLSX files. Supports reading and writing XLSX file generated by Microsoft Excel™ 2007 and later. Supports saving a file without losing original charts of XLSX. This library needs Go version 1.10 or later. Go vs Python Статья о использовании Python для небольших скриптов. Полностью поддерживаю автора. Среди прочего автор упомянул сложность идентификации версии Go-программы: имеешь дело с бинарным файлом. В Go можно использовать ldflags: $ go build -ldflags="-X 'main.Version=v1.0.0'" Отличная вводная статья на DigitalOcean про использование go build для модификации значений переменных пакета. Также к недостаткам Go автор отнес отсутсвие REPL, но он есть. Применение NLTK для опредления HC/HTC Обсуд2020-02-2040 minDaily DevDaily Devep001Первый пилотный подкаст. Борис и я записали тестовый эпизод и коснулись zen Golang, поговорили немного о Rust, глянули Diesel ORM и плохо настроили звук.2020-02-1440 min