Go Get Podcast Go Get Podcast
-
- Technology
Обсуждаем язык Go и всё, что с ним связано - изменения в языке, новости, интересные статьи, проекты и др.
-
Ep. 11: кто такой системный архитектор?
Вместе с опытным системным архитектором из LaTech Алексеем Скоробогатым обсуждаем - кто такой системный архитектор, чем он занимается, зачем он нужен, как дорасти до этой позиции, и стоит ли.
Состав:
- Николай Тузов
- Алексей Скоробогаый - системный архитектор в LaTech
Тайминги:
00:00 Вступление
02:39 Как Лёша попал в IT
05:04 Университет - насколько он важен?
07:47 Работа в маленькой студии
11:47 Фэйлы - почему их не нужно бояться
16:28 Lamoda - начало карьеры в большой компании и переезд в Москву
19:45 Первые фэйлы
23:49 Переход с PHP на Go
32: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 Заключение -
Ep. 10: Новый релиз Go v1.21 - обсуждаем важные изменения
Новый релиз выдался очень интересным, добавился ряд крутых фич. Подробно обсуждаем - что добавилось, зачем оно нужно, как с этим работать и др.
Состав:
Николай Тузов
Глеб Яльчик - тех. директор компании 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 trace
15:17 Изменение работы с циклами - Loopvar Experiment
19:03 Версия компилятора и его поведение на основе go.mod
22:28 Почему собседования станут немного проще
23:50 Новый пакет - slices
27:23 Про итераторы в Go
28:21 Почему убрали keys / values для map
30:47 Интересные функции нового пакета slices
31:45 builtin функции min / max
32:50 Связь новых функций с типом Float
36:07 Зачем нужна функция clear для слайсов?
39:33 sort.Ints() vs slices.Sort()
44:02 Новый пакет maps и его функции
46:27 Почему min / max принимают произвольное количество аргументов?
49:59 Улучшение пакета context
01:02:08 slog - новый пакет для логирования
01:08:09 Profile-guide optimization - оптимизация компилятора
01:13:34 Связь новых фич с финтехом
01:16:30 go build превращается в GCC с кучей конфигураций?
01:18:03 Новый пакет - cmp
01:20:16 Зачем чистить мапу в финтехе? :)
01:22:43 Связь новых фич с Machine Learning и статистикой
01:23:30 ОФФТОП - Отсюда и до конца выпуска / Go умирает? Умирают ли другие языки?
01:30:29 Про язык V
01:33:44 Важность ядра языка
01:34:50 Важность идеи языка
01:35:20 Идеи различных языков
01:40:41 Go и Rust
01:47:03 СОВСЕМ ОФФТОП - про игры и Baldurs Gate
01:49:38 Про SteamDeck
01:53:25 Заключение -
Ep. 9: Скорость разработки и цена ошибки разработчика
Обсуждаем скорость работы разработчика, цену и вероятность ошибок во время разработки и др.
Состав:
- Николай Тузов
- Глеб Яльчик - тех. директор компании 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 Главная ошибка при написании тестов и проблема TDD
44:21 Примеры Fail-тестов
45:08 Про полное покрытие кода тестами
47:18 Почему Линус быстро пишет код, и важен ли такой навык?
53:04 Проблемы с код-ревью в компаниях, оформление мердж-реквестов
54:55 Три типа коммитов: функционал, код-стайл, рефакторинг
1:02:02 Подход к рефакторингу и новой функциональности
1:04:56 Влияние культуры разработки на скорость и качество
1:07:59 Пример: культура разработки в Steam
1:09:51 Пример с Telegram
1:10:44 Почему Star Citizen никогда не выйдет
1:13:58 Технический долг возвращается с процентами
1:15:05 Ускоряет ли кодогенерация разработку?
1:20:08 Насколько ChatGPT и Копайлот ускоряют работу? -
Ep. 8: Pet-проекты для разработчика
Обсуждаем пет-проекты в жизни разработчика:
- какие пет-проекты мы делали, для чего и каковы результаты
- является ли их наличие/отсутствие плюсом/минусом на собеседовании, что вообще полезного они дают?
- как находить идеи и время для пет-проектов?
- что НЕ надо в них делать
и другое
Состав:
- Николай Тузов
- Александр Бруяко - Avito, senior Go developer (ex: Ozon, техлид Wildberries)
- Денис Фетинин - LaTech (Lamoda), senior developer, Go community lead -
Ep. 7: Как развиваться GoLang разработчику?
Говорим о том, как готовиться к собеседованиям, чего от вас будут ожидать, что пригодится на работе, как расти и развиваться в профессии.
Состав:
- Николай Тузов
- Глеб Яльчик - тех. директор компании 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 Стек Go
32:40 Собеседующие не знают, о чем они спрашивают
34:47 Умение писать код не проверяется
38:10 С чего начать разговор
39:30 Опять ушли в софты
40:26 Архитектура кода - как проверять?
42:40 Архитектура кода - научиться?
46:26 Важно читать о Go
47:17 Человеку должно быть что сказать
48:28 Что проверять в контексте Go?
49:28 select с default’ом
51:30 Нужен ли разработчик, когда есть Copilot / ChatGPT
55: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 Заключение -
Ep. 6: Монорепозиторий VS Мультирепозиторий
Будем обсуждать плюсы и минусы монорепозитория. Это частая тема холиваров, и мы решили внести свой вклад 😊
Состав:
- Глеб Яльчик - тех. директор компании Gaijin,
- Алексей Акулович - inDriver (ранее Tinkoff, ВКонтакте)
Тайминги
00:00:00 Вступление
00:01:26 Что такое монорепозиторий?
00:03:54 Про культуру разработки
00:09:06 Плюсы от Глеба
00:15:38 Удобная работа с общим кодом
00:17:33 Про папку internal
00:20:43 Удобная работа с godoc
00:22:13 Удобная поддержка общего кода
00:23:41 Продуктовые vs платформенные разработчики
00:28:46 Плюсы и минусы от Алексея
00:33:26 Проблема больших файлов
00:34:38 Brach development vs trunc development
00: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/CD
01:12:24 Заключение