DiscoverGo Get Podcast
Go Get Podcast
Claim Ownership

Go Get Podcast

Author: Go Get Podcast

Subscribed: 36Played: 371
Share

Description

Обсуждаем язык Go и всё, что с ним связано - изменения в языке, новости, интересные статьи, проекты и др.
11 Episodes
Reverse
Вместе с опытным системным архитектором из LaTech Алексеем Скоробогатым обсуждаем - кто такой системный архитектор, чем он занимается, зачем он нужен, как дорасти до этой позиции, и стоит ли.Состав:- Николай Тузов- Алексей Скоробогаый - системный архитектор в LaTechТайминги:00:00 Вступление02:39 Как Лёша попал в IT05:04 Университет - насколько он важен?07:47 Работа в маленькой студии11:47 Фэйлы - почему их не нужно бояться16:28 Lamoda - начало карьеры в большой компании и переезд в Москву19:45 Первые фэйлы23:49 Переход с PHP на Go32:57 Основные этапы карьеры Лёши от разработчика до архитектора34:19 Кто такой техлид? Отличие от архитектора43:48 Когда нужен архитектор?49:16 Сколько занимает путь от разработчика до архитектора?55:38 Кто такой архитектор и что было бы без него?01:00:03 Сколько нужно разработчиков на одного архитектора?01:02:51 Каких успехов смог добиться Лёша как архитектор?01:18:18 Как объяснить руководству, что им нужен архитектор?01:32:36 Желающих много, а должность архитектора одна! Есть ли конкуренция?01:37:23 Должен ли архитектор писать код?01:55:16 Должен ли разработчик изучать предметную область?01:58:03 Советы: как дорасти до архитектора?02:02:28 Заключение
Новый релиз выдался очень интересным, добавился ряд крутых фич. Подробно обсуждаем - что добавилось, зачем оно нужно, как с этим работать и др.Состав:Николай ТузовГлеб Яльчик - тех. директор компании GaijinДмтрий Матрёничев - Talos OS Developer, ведёт отличный ТГ-канал по Go: https://t.me/go_updateМой Телеграм-Канал с анонсами подкастов, роликов и др.: https://t.me/ntuzovНаш чат - Gopher Club: https://t.me/+RfalcB42UspmMDdiВсе гости наших выпусков там присутствуют.-----Go 1.21 Release Notes: https://tip.golang.org/doc/go1.21Примеры, связанные с изменениями поведения переменной цикла: https://github.com/golang/go/wiki/LoopvarExperimentТайм-коды00:00 Вступление02:18 Улучшенная обратная и восходящая совместимость08:20 Изменений вывода stack trace15:17 Изменение работы с циклами - Loopvar Experiment19:03 Версия компилятора и его поведение на основе go.mod 22:28 Почему собседования станут немного проще23:50 Новый пакет - slices27:23 Про итераторы в Go28:21 Почему убрали keys / values для map30:47 Интересные функции нового пакета slices31:45 builtin функции min / max32:50 Связь новых функций с типом Float36:07 Зачем нужна функция clear для слайсов?39:33 sort.Ints() vs slices.Sort()44:02 Новый пакет maps и его функции46:27 Почему min / max принимают произвольное количество аргументов?49:59 Улучшение пакета context01:02:08 slog - новый пакет для логирования01:08:09 Profile-guide optimization - оптимизация компилятора01:13:34 Связь новых фич с финтехом01:16:30 go build превращается в GCC с кучей конфигураций?01:18:03 Новый пакет - cmp01:20:16 Зачем чистить мапу в финтехе? :)01:22:43 Связь новых фич с Machine Learning и статистикой01:23:30 ОФФТОП - Отсюда и до конца выпуска / Go умирает? Умирают ли другие языки?01:30:29 Про язык V01:33:44 Важность ядра языка01:34:50 Важность идеи языка01:35:20 Идеи различных языков01:40:41 Go и Rust01:47:03 СОВСЕМ ОФФТОП - про игры и Baldurs Gate01:49:38 Про SteamDeck01:53:25 Заключение
Обсуждаем скорость работы разработчика, цену и вероятность ошибок во время разработки и др.Состав:- Николай Тузов- Глеб Яльчик - тех. директор компании Gaijin- Даниил Подольский - Microavia.comТайминги:0:00 Вступление и представление гостей1:35 Оговорки касательно темы обсуждения2:24 Даниил про скорость разработки6:55 Проработка задач8:58 Быстрое решение задач через "Плана Б"11:16 Пример решения задачи без её реализации13:10 Будет ли у Глеба свой YouTube-канал?14:21 Про планнинг-покер и модель медленного разработчика15:23 Срыв сроков из-за непонимания всех аспектов задачи17:33 Зачем нужно планирование и планнинг-покер?23:01 Важность постановщика задачи и продуктового менеджера24:28 Личная продуктивность разработчика26:51 Исследования скорости работы программистов30:04 Корреляция между скоростью разработки и компанией33:23 Влияние юнит-тестов на скорость разработки39:27 Главная ошибка при написании тестов и проблема TDD44:21 Примеры Fail-тестов45:08 Про полное покрытие кода тестами47:18 Почему Линус быстро пишет код, и важен ли такой навык?53:04 Проблемы с код-ревью в компаниях, оформление мердж-реквестов54:55 Три типа коммитов: функционал, код-стайл, рефакторинг1:02:02 Подход к рефакторингу и новой функциональности1:04:56 Влияние культуры разработки на скорость и качество1:07:59 Пример: культура разработки в Steam1:09:51 Пример с Telegram1:10:44 Почему Star Citizen никогда не выйдет1:13:58 Технический долг возвращается с процентами1:15:05 Ускоряет ли кодогенерация разработку?1:20:08 Насколько ChatGPT и Копайлот ускоряют работу?
Обсуждаем пет-проекты в жизни разработчика:- какие пет-проекты мы делали, для чего и каковы результаты- является ли их наличие/отсутствие плюсом/минусом на собеседовании, что вообще полезного они дают?- как находить идеи и время для пет-проектов?- что НЕ надо в них делатьи другоеСостав:- Николай Тузов- Александр Бруяко - Avito, senior Go developer (ex: Ozon, техлид Wildberries)- Денис Фетинин - LaTech (Lamoda), senior developer, Go community lead
Говорим о том, как готовиться к собеседованиям, чего от вас будут ожидать, что пригодится на работе, как расти и развиваться в профессии.Состав:- Николай Тузов- Глеб Яльчик - тех. директор компании Gaijin- Даниил Подольский - архитектор софта в Microavia.com- Виталий Левченко - разработчик в Яндекс ПрактикумТайм-коды0:00 Вступление0:37 Представление участников 2:40 Опросник Даниила 5:09 Примерный план разговора5:33 Чего хотят от Go разработчика5:49 Определяемся с грейдами12:56 Почему мы не говорим, что ожидаем от кандидата?13:57 Как отличить мидла, зазубрившего ответы15:12 Ценность алгоритмов на собеседовании16:32 Люди берут на работу похожих на себя людей17:00 Алгоритмы можно тоже заучить18:53 Тестовые задания19:34 Как быстро человек начнет приносить пользу?23:50 Три стратегии найма25:00 Релевантность опыта и предметные области31:45 Стек Go32:40 Собеседующие не знают, о чем они спрашивают34:47 Умение писать код не проверяется38:10 С чего начать разговор39:30 Опять ушли в софты40:26 Архитектура кода - как проверять?42:40 Архитектура кода - научиться?46:26 Важно читать о Go47:17 Человеку должно быть что сказать48:28 Что проверять в контексте Go?49:28 select с default’ом51:30 Нужен ли разработчик, когда есть Copilot / ChatGPT55:05 Глубина ответа на поверхностный вопрос57:35 Как правильно учиться? 59:25 Важность постановки цели1:02:20 Подытоживаем 1:02:54 Односвязный список1:06:10 Советы от Виталия1:08:50 Не надо стесняться просить помощи1:11:00 Вопрос «почему?» важнее вопроса «как?»1:13:40 Как распутать клубок знаний?1:16:40 Не стыдно чего то не знать1:17:00 Что изучать?1:19:22 Как наращивать личное могущество?1:27:34 Заключение
Будем обсуждать плюсы и минусы монорепозитория. Это частая тема холиваров, и мы решили внести свой вклад 😊Состав:- Глеб Яльчик - тех. директор компании Gaijin,- Алексей Акулович - inDriver (ранее Tinkoff, ВКонтакте)Тайминги00:00:00 Вступление00:01:26 Что такое монорепозиторий?00:03:54 Про культуру разработки00:09:06 Плюсы от Глеба00:15:38 Удобная работа с общим кодом00:17:33 Про папку internal00:20:43 Удобная работа с godoc00:22:13 Удобная поддержка общего кода00:23:41 Продуктовые vs платформенные разработчики00:28:46 Плюсы и минусы от Алексея00:33:26 Проблема больших файлов00:34:38 Brach development vs trunc development00:37:43 CI/CD для монорепы00:43:52 Проблема очень больших репозиториев00:46:43 Атомарные коммиты00:57:06 Итоги: плюсы монорепозитория00:57:46 Минусы: связность кода01:02:49 Другие минусы монорепы01:03:13 Проблема больших файлов01:06:29 Когда стоит использовать монорепу?01:09:03 Ещё про CI/CD01:12:24 Заключение
Обсуждаем вопросы, связанные с написанием хорошего кода в Go: нужен ли он? Насколько важен? Экономит ли "грязный код" время? Как научиться писать хороший код? И др.Тайминги:00:00:27 Вступление  00:00:53 Представление участников  00:03:10 Что такое "Чистый Код"?  00:10:17 Вопрос от Данниила - какова причина появления "грязного кода"?  00:11:26 Можно ли сразу писать хороший код?  00:17:13 Отнимает ли чистый код больше времени?  00:20:45 Ответы на вопрос Даниила  00:21:51 Откуда всё же берётся грязный код?  00:22:09 Грязный код: Причина №1 - плохая задача  00:24:33 Грязный код: Причина №2 - микроархитектура  00:28:14 Умение сформулировать свои мысли и требования к коду  00:32:01 Обучаемость людей  00:33:27 Гипотетическая книга "Чистая Микроархитектура"  00:35:59 SOLID для Go  00:37:05 Дискуссии при написании гайдлайнов  00:42:12 Монорепозиторий - хорошо или плохо?  00:44:44 Почему чистый код пишется дольше?  00:49:00 Зависимость качества кода от постановки задачи  00:51:29 Роберт Мартин про скорость написания чистого кода  00:52:36 Соблюдает ли стандартная библиотека Go чистый код?  01:02:19 Можно ли использовать панику в коде?  01:06:17 Можно ли использовать данные, если ошибка не нулевая?  01:11:47 Нужно ли проверять на nil ссылочные типы?  01:17:40 Где добавлять контекст к ошибке - внутри функции или снаружи?  01:20:45 Передача логгера через контекст  01:31:44 Чем плохи глобальные переменные  01:38:24 Когда стоит использовать кастомные (пользовательские) типы?  01:41:58 Можно ли переборщить с кастомными типами?  01:43:11 Польза от Code Review, как способ научиться писать хорощий код  01:50:27 Важность правильного оформления Pull Request'ов  01:52:56 Заключение
Обсудили вопросы, которые не дают покоя многим разработчикам:    - Берут ли на работу новичков?  - Зачем на собеседованиях нужны алгоритмы и live-coding?  - Достаточно ли скинуть ссылку на pet-project на GitHub'е?  - Играет ли роль высшее образование?  - Играет ли роль возраст?    и др.Опросник Даниила Подольского: https://habr.com/ru/company/oleg-bunin/blog/521582/Наш чат - Gopher Club: https://t.me/+RfalcB42UspmMDdiЗдесь присутствуют гости из всех выпусков.Мой Телеграм-Канал с анонсами подкастов, роликов и др.: https://t.me/ntuzovТайминги00:00:00 Вступление00:05:02 Как выглядит структура собеседования участников00:28:51 Как побороть страх перед собеседованием?00:38:03 Есть ли безработица среди программистов?00:43:12 Возьмут ли человека, который часто меняет работу?00:45:47 Зарплатные вилки и ожидания от кандидата01:05:10 Алгоритмы и live-coding - зачем они на собеседованиях?01:24:19 Охотно ли берут людей с опытом DevOps, Embed, из других языков01:39:09 Важно ли образование?01:42:39 Важен ли возраст?01:52:16 Нужны ли отдельные секции и этапы собеседований?01:58:19 Оформление резюьме02:03:47 Возвращение в разработку после долгого перерыва02:05:50 Аутсортс-компании, есть ли особенности?02:07:16 Собеседование сеньоров02:09:26 Как быть разработчику без опыта работы?02:11:18 И конкретно - Go-разработчику без опыта?02:13:32 Есть ли вакансии для Go-разработчиков без опыта?02:15:34 Заключение
Ep 3: GameDev в Go

Ep 3: GameDev в Go

2022-08-1301:33:49

Обсудили вопросы, связанные с геймдевом на го: подходит ли Go для геймдева? Какие основные плюсы и минусы? На какие игровые движки стоит обратить внимание? И др.Состав:Николай ТузовГлеб Яльчик - тех. директор компании Gaijin (которая разрабатывает игру WarThunder и др.), специалист по геймдеву.Алексей Акулович - работает в inDriver, ранее работал в Tinkoff, ВКонтакте. Занимается backend-стороной сложных и интересных проектов, увлекается геймдевом на Go в качестве хобби.Искандер Шарипов - программист ВКонтакте, работает над компилятором kphp. В прошлом работал над компилятором Go. В свободное время пишет небольшие игрушки на Go. Тайминги:00:00:00 Вступление00:01:03 Приветсвие - Алексей Акулович00:02:23 Приветсвие - Искандер Шарипов00:04:34 Почему для геймдева был выбран Go00:09:32 Что мы понимаем под словом "геймдев"00:11:55 Подходит ли Go для геймдева?00:28:50 Ликбез: что такое Garbage Collector (GC)00:34:15 Движки с подходом "всё есть код"00:36:16 Собственные игровые движки Алексея и Искандера00:39:35 ООП в разработке игр00:46:15 Стоит ли писать свой движок?00:55:27 Ликбез: что такое ECS00:58:41 Может ли зарабатывать на геймдеве на Go?01:04:03 Go + GoDot01:10:37 Помогает ли геймдев развиваться разработчику?01:14:43 Какой движок на Go выбрать?01:18:32 Основные минусы Go в геймдеве01:20:27 Обёртка над Ebiten от Искандера01:22:21 Основные плюсы Go в геймдеве01:30:31 Заключение
Обсуждаем статьи: - Кратко: "I want off Mr. Golang's Wild Ride" (https://fasterthanli.me/articles/i-want-off-mr-golangs-wild-ride) - "Как мы себя обманываем, только бы продолжать пользоваться Golang" (https://habr.com/ru/post/676994/) - "What Made GoLang So Popular?" (https://thenewstack.io/what-made-golang-so-popular-the-languages-creators-look-back/) Состав: - Николай Тузов (разработчик в Lamoda, веду образовательный канал на ютубе) - Глеб Яльчик (технический директор Gaijin) - Виталий Левченко (разработчик Яндекса, организатор Go-сообщества в Питере)Тайминги:00:00 - Вступление 00:54 - Статья 1.1 - "I want off Mr Golangs Wild Ride" 01:25 - Проблема с пермишенами на Windows (Chmod) 04:18 - Сравнение с Rust 11:38 - Статья 1.2 - "Как мы себя обманываем, только бы продолжать пользоваться Golang" 11:45 - Стоит ли выслушивать критику от новичков? Чем она отличается от критики экспертов? 17:36 - Go vs Rust 21:03 - Какие плюсы видит автор в Go 22:05 - Особенности тулчейна Go 22:51 - Система сборки 24:22 - Система именования 25:49 - Проблемы сборщика мусора 28:58 - Go превращается в PHP 21-го века? 29:49 - Go возник случайно? 30:22 - Обработка ошибок 38:45 - Почему Go плохой язык для новичков? 42:43 - Непоследовательность Go 45:20 - Итоги по Rast 47:40 - Статья 2. "What Made GoLang So Popular?" 48:19 - Критерии "популярности" 49:22 - Компилируемость 50:12 - Почему Go любят DevOps'ы? 53:08 - Есть ли у Go конкуренты? 56:47 - Почему Go изначально начал набирать популярность? 58:24 - Причины дальнейшего развития
Дженерики вот-вот появятся в Go, их релиз запланирован в версии 1.18. В связи с этим, данная тема очень актуальна и вызывает множество дискуссий в сообществе. Состав: - Николай Тузов (разработчик в Lamoda, веду образовательный канал на ютубе) - Глеб Яльчик (технический директор Gaijin) - Дмитрий Матреничев (разработчик в Lamoda)
Comments 
loading