Владимир Балун
5.27K subscribers
287 photos
43 videos
311 links
Канал Балун Владимира — C++/Go разработчика из BigTech. Здесь вы найдете глубокие знания и материалы по программированию, личные истории и лайв-контент.

Сотрудничество: @vladimir_balun
Download Telegram
📹 Все о массивах и слайсах в Go в одном видео

Таймкоды:
00:00 - Введение
00:47 - Устройство массивов в Go
01:40 - Работа с массивами в Go
10:00 - Перемещение массива в стеке
11:29 - Итерация по массивам в Go
15:11 - Где аллоцируются массивы в Go
17:22 - Педедача массива в функцию
18:16 - Слайсы в Go
21:34 - Реаллокация слайса в Go
24:45 - Резервирование памяти под слайс
25:44 - Создание слайса без инициализации
27:38 - Модификация строк в Go
28:35 - Приведение слайсов в строки и обратно без копирования
30:13 - Передача слайса в функцию
31:12 - Итерация по слайсам в Go
33:55 - Оптимизация итерации по слайсам в Go
35:42 - Получение слайсов в Go
42:40 - Получение слайса из массива в Go
43:15 - Конвертация слайса в массив в Go
44:15 - Конвертация слайса в указатель на массив в Go
45:02 - Указатель на нулевой массив в Go
46:18 - Удаление из конца слайса в Go
... (еще почти час различных тем по массивам и слайсам)

◾️Смотреть в YouTube
◾️Смотреть в VK Видео
◾️Смотреть в Дзен
◾️Смотреть в Rutube
🔥43👍185🤩2💯21🎉1
🚀 Поздравляю всех причастных с профессиональным праздником!
🔥68🎉42👍134🍾3🥴1🤪1
💭 Продуктивность != эффективность

Я периодически провожу консультации и сегодня общался с разработчиком, который хотел развиваться дальше в программировании. Он очень много всего делал, был крайне продуктивным, но не эффективным... Потому что то, что он делал - не приносило толком никакого результата! Он делал много всего, но не то, что нужно было ему для текущего развития в программировании.

После встречи я решил порефлексировать над собой - эффективен ли я или просто продуктивен. Мне пришлось взять лист бумаги, выписать то, чем я обычно занимаюсь ежедневно, затем рядом написать свои планы и цели. В итоге, несколько вещей, которыми я занимаюсь регулярно, никак не были связаны с этими планами и целями! Оказалось, что я кое-где я был продуктивен, но не эффективен. Действительно, выполнял некоторые действия регулярно, но наверное зря...

Решил просто поделиться этой ситуацией. Кажется, что иногда очень важно возвращаться через какое-то время к нашим планам, чтобы понять - делаем ли мы то, что нас приближает к ним или просто много учимся/работаем.
👍54🔥103💯211😱1😍1
🚀 ПАТТЕРНЫ ОТКАЗОУСТОЙЧИВОСТИ МИКРОСЕРВИСОВ НА GO

📆 14 сентября 18:00 по МСК пройдет бесплатный открытый урок по Микросервисам, как в BigTech от Team Lead из Ozon (ex-декан Route 256)!

На открытом уроке:
- научишься разрабатывать политики повторных попыток (retry) и влиять с их помощью на стабильность микросервисов;
- разберешься в рисках, связанных с жесткими таймаутами, и поймешь, как они влияют на выполнение целевых показателей SLO;
- научишься снижать время отклика с помощью hedge-запросов;
- научишься ограничивать число запросов (ratelimit) и предотвращать с помощью этого нагрузки;
- научишься писать circuit breaker, предотвращать с его помощью каскадные отказы и защищать систему от частичных сбоев;
- задашь интересующие вопросы TeamLead'у из Ozon.

Регистрация по ссылке
🔥14👍641🥰1💯1💘1
📹 Недавно ходил на подкаст к Денису Евтееву, за несколько часов удалось много чего обсудить! Говорили про работу в больших компаниях, карьеру в IT, обучение и личное развитие...

📌 Посмотреть можно по ссылке:
https://youtu.be/UQZ5_iy8v1c
🔥18👍932🤩1🤡1
📝 Делюсь планами по контенту на моем YouTube канале

◾️в октябре планирую сделать большое видео об аллокаторе Go, как обычно, начиная с основ (алгоритмы распределения памяти, свои аллокаторы, malloc, tcmalloc и вот это вот все) и закачивая тем, как Go аллоцирует память и какие там есть особенности и нюансы.
◾️в декабре-феврале планирую сделать большое видео о сборщике мусора Go, начиная с базы (виды сборщиков мусора, parallel vs concurrent GC, поколения участков памяти и многое другое) и закачивая тем, как устроен GC в Go.

Это, что касается больших видео - потому что для них потребуется много времени для подготовки... Плюс еще будет несколько "небольших" видео о различных темах в программировании!

📌 В комментария можно писать предложения на счет будущих видео, возможно, какие-то из них я запланирую на следующий год!
👍52🔥285💯21🤩1🙏1
📰 Несколько недель назад прокачивал Soft Skills на тренинге у Радислава Гандапаса

Тренинг назывался "Заяви о себе". На нем было много материалов про коммуникации и нетворкинг, а также очень много практики - в общем, для меня было очень полезно!

Кстати, у Радислава в декабре еще будет тренинг "Лидерские стратегии", на который тоже собираюсь сходить (не реклама, а личная рекомендация).
🤡26🔥24👎15👍9😭9🤔2🤣2😁1💯1
👨‍💻 Вроде бы дженерики и есть в Go, а вроде бы их и нет...

Когда мне приходится что-то пометапрограммировать на Go (происходит это не часто), я обычно спотыкаюсь об один из этих сценариев... И обычно после этого мне хочется брать в руки С++

Кажется, что дженерики какие-то неполные или недоработанные, но наверное, смысл в этом есть! Иначе можно было писать действительно сложные и трудные штуки на Go, как на С++ (что противоречит концепции Go)
😁15👍9🔥52👎1
📰 Прошел study plan по графам на LeetCode

План изучения хорошо построен, постепенно тебя знакомит с графами. Важно сказать, что изучение графов происходит не на примере реализации алгоритмов, а на примере реализации практических задач с использованием этих самых алгоритмов (что интересно, как по мне).

Например, такие практические задачи, как:
- Поиск критических соединений в сети
- Планирование расписания курсов
- Поиск самого дешевого маршрута с пересадками
- Соединение городов дорогами с минимальной стоимостью
- Поиск ближайшего выхода из лабиринта

В общем, рекомендую, сейчас на очереди study plan по динамическому программированию!
🔥34👍12👏3🎉21
👨‍💻 В продолжение к предыдущему посту о дженериках в Go - решил углубиться в них и попробовать повоспроизводить плюсовые паттерны в Go

Не все получается, но например CRTP (Curiously Recurring Template Pattern) в кавычках наколдовать в Go можно, поэтому миксинами в Go можно пользоваться вполне успешно!
🔥15👍8🤯2🤔1🤝1
Forwarded from KOTELOV
Media is too big
VIEW IN TELEGRAM
Почти год назад к нам на подкаст заглянул Вова Балун. За год он успел стать тимлидом в Яндексе и продолжал развивать собственную школу для айтишников 🔥

Кстати, Вова получил оффер в Яндекс сразу после нашего первого подкаста. Это была одна из его целей, но вскоре понял, что это не то, чего он хотел. Вот и выясним на подкасте, что пошло не так

Обсудили все, что случилось за этот год:
Что случилось в Яндексе и какой вывод сделал после тимлидства
Почему он решил уехать из России и почему вернулся
Как теперь он зарабатывает и почему это не совсем айти

Лампово поговорили об амбициях, ситуации с наймом и жизни айтишника в 2024 году

👀 смотреть https://go.kotelov.com/youtube_balun
👀 смотреть https://go.kotelov.com/vk_balun
📹 смотреть https://go.kotelov.com/rutube_balun

🎙 или слушай на Mave https://go.kotelov.com/mave_balun
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18👍74🤡3❤‍🔥1🤩1💩1🏆1
📟 Вчера провел весь день на конференции E-CODE от Ozon

Ходил на доклады по инфраструктуре, связанные с базами данных - получилась очень крутая конференция!
🔥31👍13💯5
📰 GetCourse очень хорош с точки зрения функциональности, но крайне плох с точки зрения дизайна...

Не так давно, мы решили кастомизировать GetCourse под себя, чтобы он был в едином стиле школы - дизайн основных страниц уже утвержден (на картинках GetCourse до и после), сейчас уже идет верстка...

У GetCourse очень много разных ограничений на кастомизации, не все получится сделать так, как хочется. Тем не менее, будет намного лучше, чем стандартный дизайн GetCourse!
🔥23👍7🤩41👏1
💭 Мне бывает иногда очень трудно креативить, например когда пишешь какой-то текст, создаешь презентацию или программируешь решение для нетривиальной задачи. В такие моменты иногда себя сравниваю с писателями или художниками, которым так часто необходима муза…

Чтобы быть в креативном состоянии или поддерживать у себя ту самую музу, я обычно включаю определенную музыку и часто меняю локации. Например, час что-то делаю в одной комнате, затем перехожу в кухню на час, затем обратно, а иногда еще и в соседние кофейни выхожу специально для смены обстановки.

Но так или иначе не всегда получается достигать крутого состояния для креативной деятельности, может быть у вас есть какие-нибудь лайфхаки / практики / привычки, которые вы используете для этого?
👍16🔥4👨‍💻3
⚙️ 400 уже есть - думаю, что к Новому году сделаю 500 и запишу отдельное видео об этом...
🔥55👍126🎉4🤡1
📚 Вроде бы конференция, вроде бы и от Яндекса, но не привычно то, что не по программированию, а по маркетингу и рекламе. Тем не менее, очень познавательно и полезно!
🔥26👍6💩4❤‍🔥3🤡2
⚙️ Жизненный цикл памяти в программах на Go состоит из нескольких этапов - необходимый объем память сначала выделяется, затем используется и после этого освобождается, когда больше не нужен. Многие достаточно хорошо знакомы с тем, как и когда происходит освобождение памяти в Go, но не все понимают, как происходит процесс выделения памяти в Go…

📆 12 октября 18:00 по МСК пройдет бесплатный открытый урок, посвящённый внутреннему устройству аллокатора Go.

На открытом уроке:
- изучишь различные алгоритмы распределения памяти
- поймешь, где и почему аллокатор Go аллоцирует объекта
- узнаешь, почему аллокация объектов в стеке работает быстрее, чем в куче
- разберешься с внутренним устройством аллокатора Go
- познакомишься с пулами объектов и аренами
- разберешься с устройством malloc и tcmalloc

Регистрация по ссылке
👍25🔥751
📹 Секреты внутреннего устройства аллокатора Go

Таймкоды:
00:00 - Введение
01:49 - Концепция аллокатора
06:09 - Линейный аллокатор
11:22 - Блочный аллокатор
16:21 - Стековый аллокатор
20:18 - Устройство malloc
25:01 - Недостатки malloc
26:55 - Устройство tcmalloc
28:28 - Устройство аллокатора Go
32:55 - Предсказуемая фрагментация памяти
40:33 - Где аллоцируются объекты в Go
51:11 - Почему аллокация на стеке работает быстрее, чем в куче
52:35 - Расширение и уменьшение стека в Go
58:12 - Зачем это все нужно знать (практические примеры)
01:03:37 - Пулы объектов (sync.Pool)
01:06:57 - Арены (memory arenas)
01:14:30 - Аллокатор ОС
01:18:28 - Курс по глубокому Go

https://youtu.be/7K0HweCBJwI
🔥47👍136🤩1🏆1
📝 Решил провести анализ собеседований по System Design, чтобы узнать особенности их проведения и проанализировать, какие системы приходится чаще всего проектировать на собеседованиях! Пройдите, пожалуйста, анонимный опрос по ссылке: https://forms.gle/JfZ9vs65rWXF6oLSA (только, если у вас был опыт прохождения собеседования по System Design).

Опрос займет не более одной минуты
и в ближайшем будущем я опубликую результаты анализа, чтобы с ними можно было вам ознакомиться!
👍17🔥841