Forwarded from Golang
Внутри:
- Минималистичный симулятор горутин и каналов прямо в браузере
- Работает через Go WebAssembly — никакого сервера не требуется
- Наглядно объяснены
select
, fan-in/fan-out, worker pool, таймауты и про- Код можно редактировать на лету
Сохрани в закладки и тренируй мышление «конкурентного» Go-разработчика:
https://concurrency.rocks
#golang
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23❤5👍5
💣 Вечные споры о структуре Go-проектов: где правда?
В Go-сообществе регулярно всплывает один и тот же вопрос: «Как правильно организовать репозиторий?» Старые блоги предлагают сложные структуры, а официальный гайд от Go team многим кажется слишком абстрактным.
Автор этой статьи предлагает радикально простой подход: не усложняйте, пока в этом нет реальной необходимости. Он советует начать с минимальной структуры, расширять её по мере роста проекта и не бояться переделывать.
Большинству проектов попросту не нужны ни
В Go-сообществе ценится простота, и добавление лишних слоев в структуру проекта противоречит этой философии.
🔗https://laurentsv.com/blog/2024/10/19/no-nonsense-go-package-layout.html
@golang_google
В Go-сообществе регулярно всплывает один и тот же вопрос: «Как правильно организовать репозиторий?» Старые блоги предлагают сложные структуры, а официальный гайд от Go team многим кажется слишком абстрактным.
Автор этой статьи предлагает радикально простой подход: не усложняйте, пока в этом нет реальной необходимости. Он советует начать с минимальной структуры, расширять её по мере роста проекта и не бояться переделывать.
Большинству проектов попросту не нужны ни
internal/
, ни pkg/
, ни даже cmd/
, особенно если вы пишете небольшой сервис или утилиту. В Go-сообществе ценится простота, и добавление лишних слоев в структуру проекта противоречит этой философии.
🔗https://laurentsv.com/blog/2024/10/19/no-nonsense-go-package-layout.html
@golang_google
❤12👍9🔥5
Принцип простой: описываете, что хотите получить, нажимаете Optimize — GPT-5 анализирует запрос и выдаёт готовый детализированный промт. Работает бесплатно.
Инструмент может упростить работу с любыми нейросетями, особенно если у вас нет опыта в составлении промтов.
Готовый вы можете сразу попробовать в @Chatgpturbobot
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍4😁3🤬1
Яндекс создаёт продукты и сервисы для миллионов пользователей. Нейросетевой поиск, умные устройства, машинный перевод — задачи, где нет готовых решений.
Поэтому нам нужны сильные бэкенд-разработчики! Если у вас от 5 лет опыта на C++, Python, Java или Go — участвуйте в Мультитреке.
Как это работает
• Подаёте заявку до 18 августа
• Проходите технические секции 23 и 24 августа
• Получаете офер 24 августа
После найма мы предложим поработать в трёх командах несколько недель. Будет время погрузиться в работу, прочувствовать атмосферу и выбрать проект, который вам больше подходит.
Узнайте подробности и оставьте заявку.
Поэтому нам нужны сильные бэкенд-разработчики! Если у вас от 5 лет опыта на C++, Python, Java или Go — участвуйте в Мультитреке.
Как это работает
• Подаёте заявку до 18 августа
• Проходите технические секции 23 и 24 августа
• Получаете офер 24 августа
После найма мы предложим поработать в трёх командах несколько недель. Будет время погрузиться в работу, прочувствовать атмосферу и выбрать проект, который вам больше подходит.
Узнайте подробности и оставьте заявку.
😁5❤4🔥2🥰2
🚀 Вышел Go 1.25 — полгода работы Google и сообщества.
Go сочетает скорость компилируемых языков с простотой скриптовых: лаконичный синтаксис, быстрый цикл разработки, защита от ошибок. Код компилируется в нативные бинарники без виртуальной машины, с интеграцией инструментов профилирования и отладки. Язык изначально оптимизирован под многопоточность и многоядерные системы, включая встроенные средства параллельных вычислений, безопасную работу с памятью и сборщик мусора.
🔹 Главные новшества:
- Экспериментальный GC greenteagc — до 10–40% меньше накладных расходов при создании и сканировании мелких объектов.
- Новые экспериментальные пакеты:
-
-
- Новый пакет
- В
- В
-
- Компилятор и линковщик научились генерировать отладочную информацию в формате DWARF5 (компактнее и эффективнее).
- Release notes: https://go.dev/doc/go1.25
- Скачать: https://go.dev/dl/#go1.25.0
Go сочетает скорость компилируемых языков с простотой скриптовых: лаконичный синтаксис, быстрый цикл разработки, защита от ошибок. Код компилируется в нативные бинарники без виртуальной машины, с интеграцией инструментов профилирования и отладки. Язык изначально оптимизирован под многопоточность и многоядерные системы, включая встроенные средства параллельных вычислений, безопасную работу с памятью и сборщик мусора.
🔹 Главные новшества:
- Экспериментальный GC greenteagc — до 10–40% меньше накладных расходов при создании и сканировании мелких объектов.
- Новые экспериментальные пакеты:
-
encoding/json/v2
— переработанная, высокопроизводительная реализация encoding/json
.-
encoding/json/jsontext
— низкоуровневая обработка синтаксиса JSON.- Новый пакет
testing/synctest
для тестирования синхронизации потоков.- В
go build
по умолчанию включена опция -asan
для проверки утечек памяти.- В
go vet
добавлены анализаторы waitgroup
и hostport
для поиска ошибок в sync.WaitGroup.Add
и форматировании адресов.-
GOMAXPROCS
теперь учитывает ограничения CPU в контейнерах.- Компилятор и линковщик научились генерировать отладочную информацию в формате DWARF5 (компактнее и эффективнее).
- Release notes: https://go.dev/doc/go1.25
- Скачать: https://go.dev/dl/#go1.25.0
🔥11❤7👍5😁1
Forwarded from Golang
📘 "Go 101" популярная серия бесплатных книг обновлена под новую версию Golang 1.25 — сразу в четырёх разделах:
• 🚀 Go Optimizations 101: https://go101.org/optimizations/101.html
• 💡 Go Details & Tips 101: https://go101.org/details-and-tips/101.html
• 🔧 Go Generics 101: https://go101.org/generics/101.html
• 📖 Go 101: https://go101.org/article/101.html
@golang_google
#golang #freebook #education #book #go
• 🚀 Go Optimizations 101: https://go101.org/optimizations/101.html
• 💡 Go Details & Tips 101: https://go101.org/details-and-tips/101.html
• 🔧 Go Generics 101: https://go101.org/generics/101.html
• 📖 Go 101: https://go101.org/article/101.html
@golang_google
#golang #freebook #education #book #go
❤11👍8🔥3🥰1
Как упорядочить код на Go и сделать его масштабируемым?
➡️ На открытом уроке 20 августа в 20:00 МСК мы разберём, что такое пакеты в Go, как правильно организовывать структуру папок и работать с модулями.
❗️Вы получите знания о том, как избежать частых ошибок и эффективно использовать Go в реальных проектах.
🔴 Присоединяйтесь к открытому вебинару «Golang Developer. Basic»: https://tglink.io/c8810226e6d9?erid=2W5zFHykW48
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
➡️ На открытом уроке 20 августа в 20:00 МСК мы разберём, что такое пакеты в Go, как правильно организовывать структуру папок и работать с модулями.
❗️Вы получите знания о том, как избежать частых ошибок и эффективно использовать Go в реальных проектах.
🔴 Присоединяйтесь к открытому вебинару «Golang Developer. Basic»: https://tglink.io/c8810226e6d9?erid=2W5zFHykW48
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
❤2
Forwarded from Golang
💥 Необычное поведение структур
В недавнем блоге Мэтта Холла поднята важная деталь, о которой некоторые забывают.
Автор показывает, что при встраивании (`embedding`) структур Go может выбрать неочевидное поле, даже если кажется, что это вызовет ошибку.
Пример:
Вы думаете, тут компиляция не пройдёт из-за неоднозначности?
Но, она завершится успешна — и начпечатает abc.com.
Go выбирает наименее вложенное поле URL, в данном случае FooService.URL.
⚠ Урок: будьте осторожны с struct embedding! Переиспользование полей может скрывать баги, особенно когда поля именованы одинаково, а уровни вложенности различны.
📌 Пост
@golang_google
#golang #go
В недавнем блоге Мэтта Холла поднята важная деталь, о которой некоторые забывают.
Автор показывает, что при встраивании (`embedding`) структур Go может выбрать неочевидное поле, даже если кажется, что это вызовет ошибку.
Пример:
type FooService struct { URL string }
type BarConnectionOptions struct { URL string }
type BarService struct { BarConnectionOptions }
type Options struct {
FooService
BarService
}
opts := Options{
FooService: FooService{URL: "abc.com"},
BarService: BarService{
BarConnectionOptions: BarConnectionOptions{URL: "xyz.com"},
},
}
fmt.Println(opts.URL)
Вы думаете, тут компиляция не пройдёт из-за неоднозначности?
Но, она завершится успешна — и начпечатает abc.com.
Go выбирает наименее вложенное поле URL, в данном случае FooService.URL.
⚠ Урок: будьте осторожны с struct embedding! Переиспользование полей может скрывать баги, особенно когда поля именованы одинаково, а уровни вложенности различны.
📌 Пост
@golang_google
#golang #go
👍9😁4❤3
📚 Кейс: как ВКонтакте переобучила часть команды на Go
ВКонтакте переходит на сервисную архитектуру и переводит бэкенд на Go. Главная задача — построить высоконагруженную распределенную систему, где каждая команда автономно разрабатывает свой сервис.
🔹 Технические вызовы
Перепроектирование архитектуры с учётом PaaS-платформы.
Интеграции с внутренними сервисами.
🔹 Программа переобучения для внутренних сотрудников
140+ инженеров из компании прошли интерактивный курс по переходу на Go
Синтаксис Go изучали самостоятельно — курс сразу начинался с архитектурных и инфраструктурных задач
Практика: проектирование каркаса микросервиса в условиях, максимально приближенных к реальным задачам компании
💡 Вывод: кейс ВКонтакте показывает, как знания о продукте сохраняются внутри компании, почему эффективнее инвестировать в собственников сотрудников, а не распыляться в найме.
#golang #microservices @golang_books
ВКонтакте переходит на сервисную архитектуру и переводит бэкенд на Go. Главная задача — построить высоконагруженную распределенную систему, где каждая команда автономно разрабатывает свой сервис.
🔹 Технические вызовы
Перепроектирование архитектуры с учётом PaaS-платформы.
Интеграции с внутренними сервисами.
🔹 Программа переобучения для внутренних сотрудников
140+ инженеров из компании прошли интерактивный курс по переходу на Go
Синтаксис Go изучали самостоятельно — курс сразу начинался с архитектурных и инфраструктурных задач
Практика: проектирование каркаса микросервиса в условиях, максимально приближенных к реальным задачам компании
💡 Вывод: кейс ВКонтакте показывает, как знания о продукте сохраняются внутри компании, почему эффективнее инвестировать в собственников сотрудников, а не распыляться в найме.
#golang #microservices @golang_books
🔥10❤1👍1😁1🤬1