en
Feedback
PRO Go

PRO Go

Open in Telegram

Изучай язык Go вместе с нами. Закрепить теорию на практике можно на курсе - https://stepik.org/a/158385/pay?promo=0dbf5c609937c00c Подготовится к собеседованиям - https://stepik.org/a/205199/pay?promo=06f35ce5ae028fa2 По всем вопросам: @Santiago_de

Show more
3 320
Subscribers
No data24 hours
-107 days
-2430 days
Attracting Subscribers
September '26
September '26
+2
in 0 channels
August '26
+13
in 0 channels
Get PRO
July '26
+15
in 0 channels
Get PRO
June '26
+21
in 0 channels
Get PRO
May '26
+26
in 1 channels
Get PRO
April '26
+44
in 0 channels
Get PRO
March '26
+21
in 0 channels
Get PRO
February '26
+31
in 0 channels
Get PRO
January '26
+53
in 2 channels
Get PRO
December '25
+38
in 0 channels
Get PRO
November '25
+81
in 1 channels
Get PRO
October '25
+103
in 0 channels
Get PRO
September '25
+97
in 0 channels
Get PRO
August '25
+92
in 0 channels
Get PRO
July '25
+145
in 0 channels
Get PRO
June '25
+95
in 0 channels
Get PRO
May '25
+115
in 0 channels
Get PRO
April '25
+121
in 0 channels
Get PRO
March '25
+184
in 0 channels
Get PRO
February '25
+149
in 0 channels
Get PRO
January '25
+201
in 0 channels
Get PRO
December '24
+261
in 0 channels
Get PRO
November '24
+138
in 2 channels
Get PRO
October '24
+181
in 2 channels
Get PRO
September '24
+157
in 0 channels
Get PRO
August '24
+177
in 3 channels
Get PRO
July '24
+234
in 2 channels
Get PRO
June '24
+243
in 2 channels
Get PRO
May '24
+259
in 0 channels
Get PRO
April '24
+258
in 0 channels
Get PRO
March '24
+288
in 0 channels
Get PRO
February '24
+224
in 0 channels
Get PRO
January '24
+164
in 0 channels
Get PRO
December '23
+173
in 2 channels
Get PRO
November '23
+118
in 1 channels
Get PRO
October '23
+9
in 0 channels
Get PRO
September '23
+203
in 0 channels
Get PRO
August '23
+1 043
in 0 channels
Date
Subscriber Growth
Mentions
Channels
03 September+1
02 September+1
01 September0
Channel Posts
🧙 Свершилось то, чего многие ждали. В курсе PRO Go. Для продвинутых появился новый модуль Конкурентность. Семь уроков про то, как заставить программу делать несколько дел одновременно и не получить в ответ кашу. Горутины, WaitGroup, гонки данных, мьютексы, каналы, select и context. Начинается всё с классики: запустил горутины, программа честно отработала, а в результате нули. Потом выясняется, что данные, к которым лезут сразу с нескольких сторон, портятся молча и далеко не при каждом запуске, из-за этого такие баги и живут в проекте месяцами. Ближе к концу разбираемся, как всю эту параллельную работу вовремя останавливать, если результат уже никому не нужен. Практики привычно много: 78 заданий, 30 из них на написание кода с нуля. Ну и схемы с разборами ловушек, куда без них.
И ещё бонус, раз всё так совпало. В честь начала учебного года и выхода модуля дарю вам скидку 20% на курс (действие скидки действует ровно неделю).
Удачи в изучении ❤️

2
🕺💃🕺💃 #memes
🕺💃🕺💃 #memes
394
3
Решил постараться для вас и порадовать ещё одним обновлением курса PRO Go для продвинутых — модуль про тестирование вырос ещё на четыре главы 🥺 Продолжаем тему с прошлого раза. Теперь курс учит не просто писать тесты, а по-настоящему им доверять. Разбираем покрытие тестами — как понять, какие ветки кода вообще ни разу не выполнялись, и почему зелёный PASS ещё ничего не гарантирует. Дальше учимся измерять, а не гадать: бенчмарки показывают, что стало быстрее или медленнее, а профилирование — в какой именно функции реально тратится время (спойлер, часто не там, где кажется). И закрываем тему гигиеной — как аккуратно готовить и убирать за тестами, чтобы они не мешали друг другу. Как обычно — на каждую тему есть и лекция, и куча заданий на закрепление. Удачи в изучении ❤️
413
4
Вышло новое обновление курса PRO Go для продвинутых — добавили сразу три главы, и это, кажется, одна из самых практичных тем во всём курсе. Разбираемся, как писать тесты, которые ловят баги, а не просто существуют для галочки. Пройдём путь от самого первого теста до приёмов, которыми пользуются в боевых проектах, когда код завязан на что-то внешнее — например, на сервис в интернете, который нельзя дёргать в каждом тестовом запуске. Без спойлеров — но после этих глав по-другому смотришь на то, что значит код, в который можно спокойно вносить изменения и ничего не сломать. Как обычно — на каждую тему есть и лекция, и куча заданий на закрепление: квизы, сопоставления, задачи на программирование. Тем, кто уже в процессе — удачи с новыми главами, вы отлично держите темп 💪 Тем, кто ещё присматривается — самое время начать! Не забывайте, что для всех тех, кто прошел PRO Go Основы программирования, есть скидка. Что бы её получить, вам нужно всего лишь написать мне) Спасибо, что вы рядом ❤️
480
5
Советуем))) #memes
Советуем))) #memes
570
6
Вышел Go 1.27 ❤️ Вчера команда языка выпустила новую версию. Почти всё старое продолжит работать, а внутри есть несколько приятных обновлений. Главное, чего многие ждали ещё с появления дженериков: теперь методы тоже могут иметь свои типовые параметры. Раньше для этого приходилось выносить функции на уровень пакета, теперь можно писать ближе к самому типу. Ещё из того, что сразу заметно: • появился encoding/json/v2 • в стандартной библиотеке есть пакет uuid • маленькие объекты стали аллоцироваться быстрее Если хочется посмотреть своими глазами — вот официальный пост ⬇️ Скачать go 1.27
747
7
У нас по традиции каждый месяц действует 😱скидка на один из курсов, и в августе она открыта на PRO Go. Базовый курс по структурам данных — отличный шанс для тех, кто давно хотел подтянуть фундамент. Курс поможет разобраться, как устроены основные структуры данных и почему они работают именно так. Вы поймёте логику массивов, списков, стеков, очередей, хеш‑таблиц и множеств, научитесь реализовывать их своими руками и применять в реальных задачах. И есть приятный бонус: каждый ученик, который прошёл курс PRO Go. Основы программирования, может получить увеличенную скидку — просто напишите мне о своём успешном прохождении. Успехов в обучении! 👋
755
8
#memes
#memes
782
9
Друзья, всем привет 👾 Как и обещал, курс PRO Go для продвинутых постоянно развивается и обновляется. Сегодня в нём появилось новое дополнение — модуль «Стиль и архитектура». В этом блоке вы научитесь выстраивать структуру проекта, понимать принципы модульности, а также применять архитектурные подходы. 🔨 И, конечно, на этом мы не останавливаемся — уже совсем скоро вас ждут новые обновления и свежие главы. Тем, кто уже проходит курс, желаю приятного изучения, а тем, кто ещё думает — самое время присоединиться. Совсем скоро будет ещё интереснее 🏴‍☠️
670
10
🤓 Когда пишешь тесты, рано или поздно появляется желание вынести повторяющийся код в маленькую вспомогательную функцию. Типа: func check(t *testing.T, got, want float64) { if got != want { t.Errorf("получили %v, хотели %v", got, want) } } И всё бы хорошо, но есть один нюанс: если эта функция лежит рядом с тестами, но не начинается с Test, Go считает её обычным кодом. А вот если она вызывает t.Errorf или t.Fatalf, то в выводе тестов будет написано, что ошибка произошла… внутри этой вспомогательной функции. То есть вместо: TestTemperatureConversions: ToFahrenheit(100) = 212, хотели 200 мы получаем что‑то вроде: check: ToFahrenheit(100) = 212, хотели 200 И вот тут Goшка делает маленький, но очень приятный трюк. Если пометить такую функцию как t.Helper(), он перестаёт винить её в ошибке и переносит ответственность обратно на вызывающий тест. То есть сообщение снова будет привязано к конкретному тесту, а не к технической обёртке. Это не обязательно. Ну ты сам вынес проверку в отдельную функцию — сам и разбирайся. Но go делает наоборот: помогает сохранить читаемость, не ломает вывод, не заставляет нас прыгать по стеку вызовов, чтобы понять, где именно упал тест. И это очень в духе Go: не усложнять, не заставлять писать лишний код, и при этом аккуратно подчищать за нами, чтобы результат был понятным. Такие мелочи редко обсуждают в учебниках, но именно они создают ощущение, что язык не просто строгий, а доброжелательный 😩
597
11
#memes
#memes
678
12
Совсем скоро в курсе PRO для продвинутых откроем тему тестирования, и на табличных тестах — той самой конструкции, когда пачку проверок гоняют одним циклом вместо кучи отдельных функций — наткнулись на мелочь, которая неплохо объясняет, как Go относится к таким вещам. Если в тестовой таблице у двух разных случаев случайно оказалось одинаковое имя — Go не упадёт с ошибкой и не перепутает их между собой. Он просто сам различит подтесты, добавив к повторяющемуся имени суффикс: TestToFahrenheit/case TestToFahrenheit/case#01 TestToFahrenheit/case#02 Ничего не сломается, всё запустится и отработает как надо. Но появление #01 в выводе — это, по сути, тихий сигнал от компилятора: у тебя тут копипаста, ты забыл поправить название после того, как скопировал строку таблицы Технической ошибки нет, а вот сигнал для читающего код есть, и довольно явный. Забавно, что язык в принципе не обязан был это разруливать — мог бы просто требовать уникальные имена и ругаться. Но вместо этого выбрал более дружелюбный путь: не мешать работе, но оставить маленький след, по которому потом можно найти небрежность 🙂
680
13
Сеньор бэкендер после 10 лет в IT #memes
Сеньор бэкендер после 10 лет в IT #memes
839
14
Сейчас в курсе PRO для продвинутых разбираем главу о том, как разносить логику по разным пакетам внутри одного проекта, и наткнулись на ситуацию, которая в других языках прошла бы незамеченной, а в Go встаёт стеной. Представим два пакета: length и weight. Кто-то в length решил дёрнуть функцию из weight, а кто-то в weight — наоборот, дёрнуть что-то из length. Мелочь, бывает. package length import "weight" package weight import "length" И вот тут Go просто отказывается собирать проект. Не с предупреждением, а с полной остановкой: чтобы собрать length, нужен уже собранный weight, а чтобы собрать weight — уже собранный length. Круг замкнулся, и компилятор физически не может решить, с чего начать. В динамических языках такое часто прокатывает — код может работать, пока в реальном сценарии не наступит момент, когда порядок вызовов сыграет плохую шутку. Go же вообще не даёт дойти до этого момента: он ловит цикл на этапе сборки, до всякого запуска. Немного занудно как ограничение, но зато потом никогда не приходится дебажить загадочное поведение из-за пакетов, которые тайно зависят друг от друга по кругу 🔨
859
15
Когда в твоей программе есть баг, но она всё равно работает как надо
Когда в твоей программе есть баг, но она всё равно работает как надо
833
16
Пока разбираем частичку новой главы про пакеты курса PRO для продвинутых, наткнулись на штуку, которая почти всегда удивляет тех, кто пришёл из других языков. В большинстве языков есть отдельные слова для того, что можно, а что нельзя использовать снаружи — public, private, protected. В Goшке этого нет вообще. Всё решает одна буква. func Area(w, h float64) float64 { ... } func area(w, h float64) float64 { ... } Area — с большой буквы — будет видна из любого другого пакета проекта. area — с маленькой — останется доступна только внутри своего пакета, и снаружи её просто не существует. Никаких аннотаций, ключевых слов и конфигураций. Регистр первой буквы — и есть вся система видимости 🙂
874
17
#memes
#memes
939
18
13 июля родился Эрнё Рубик — человек, подаривший миру тот самый кубик. В честь этого сегодня во всем мире отмечают День голов
13 июля родился Эрнё Рубик — человек, подаривший миру тот самый кубик. В честь этого сегодня во всем мире отмечают День головоломки. Разгадывание логических задач — это не просто классное хобби. Сегодня это мощный карьерный инструмент. Знаете, что объединяет собеседования в Google, Яндексе и топовых банках? Там обожают проверять кандидатов каверзными логическими задачами. Работодателям важно увидеть, как именно вы мыслите, и умение распутывать такие ребусы на ходу — суперсила, за которую готовы платить. Специально для любителей размять мозги и тех, кто хочет уверенно чувствовать себя на любых интервью, у нас есть курс PRO Логические задачи, который только сегодня (ровно один день!) можно забрать с максимальной скидкой 30%! Весь оставшийся месяц будет действовать скидка 10%, поэтому скорее переходите по ссылке, активируйте выгоду и прокачивайте интеллект для будущих карьерных побед!
1 102
19
#memes
#memes
818
20
Мы начинаем новую главу курса PRO для продвинутых, и она будет посвящена тому, как писать код, который приятно читать — не только тебе, но и любому, кто откроет его после. 🤓 Будем говорить о том, как сделать код понятным, аккуратным и живым: где стоит упростить, где структурировать, а где просто остановиться и подумать, прежде чем добавить ещё одну строчку. По ходу работы я буду делиться фрагментами и наблюдениями — уверен, многим будет интересно заглянуть в процесс. Спасибо, что вы рядом ❤️
772