Как добавить цикл while в Go
https://habr.com/ru/articles/888992/
Неплохая статья для погружения в основы компиляции Go. Автор показывает, как добавить в язык новую конструкцию, а именно - цикл
Кстати, после прочтения статьи неплохим упражнением будет добавление ещё какой-нибудь своей конструкции, пусть даже самой абсурдной, лишь бы вам было весело✨
————
UPD: канал автора стать: @siliconchannel
Кстати, можете задать ему вопросы лично в комментариях к этому посту
#go_internal #go_compiler
https://habr.com/ru/articles/888992/
Неплохая статья для погружения в основы компиляции Go. Автор показывает, как добавить в язык новую конструкцию, а именно - цикл
while
. Разумеется, добавляется он не потому что он там нужен, а лишь как простой и наглядный пример.Кстати, после прочтения статьи неплохим упражнением будет добавление ещё какой-нибудь своей конструкции, пусть даже самой абсурдной, лишь бы вам было весело
————
UPD: канал автора стать: @siliconchannel
Кстати, можете задать ему вопросы лично в комментариях к этому посту
#go_internal #go_compiler
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Компилятор GO. Добавляем цикл WHILE
На одной из конференций я наблюдал, как наши коллеги реализовывали тернарный оператор в Go с помощью комментариев. Доклад длился всего минут 10, и, честно говоря, я не смог уловить ничего внятного,...
March 17
Forwarded from Николай Тузов
https://habr.com/ru/articles/891426/
Поверьте, эта статья — отдельный подвиг, на который я потратил огромное количество времени. Даже на то, чтобы в последний раз перечитать и навести финальные штрихи, ушло буквально пол дня.
Хотелось, чтобы всё получилось идеально — каждая формулировка, каждая картинка
А теперь ваша очередь — я очень надеюсь, что эта статья побьёт мой предыдущий рекорд по лайкам и просмотрам. У Хабра нет механизмов продвижения, кроме как рейтинг статьи, поэтому вы знаете как меня отблагодарить
Основная мотивация для написания такой статьи и публикация её в открытом доступе — она должна хорошо зайти на Хабре. Иначе усилия не будут оправданными.
————
Ну и да, можете считать эту статью пробой пера и демо-версией моей будущей книги. Можно сказать, это могла бы быть полноценная глава оттуда. Правда, в книге иллюстрации будут лучше прорабатываться иллюстратором.
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Планировщик Go — самый подробный гайд простым языком
Давайте спроектируем с нуля планировщик Go — начнём с самой простой и понятной наивной реализации, а затем шаг за шагом будем разбираться, какие изъяны в ней есть, и придумывать как их решать,...
March 17
Swiss Tables новая реализация map — Go 1.24
https://go.dev/blog/swisstable
Перевод
Как вы наверняка уже знаете, в Go 1.24 встроенная реализация map была полностью переработана и теперь основана на Swiss Table. В этой статье Michael Pratt (один из авторов языка) разобрал какие преимущества даёт новая реализация по сравнению с традиционными хеш‑таблицами.
#go_official
https://go.dev/blog/swisstable
Перевод
Как вы наверняка уже знаете, в Go 1.24 встроенная реализация map была полностью переработана и теперь основана на Swiss Table. В этой статье Michael Pratt (один из авторов языка) разобрал какие преимущества даёт новая реализация по сравнению с традиционными хеш‑таблицами.
#go_official
go.dev
Faster Go maps with Swiss Tables - The Go Programming Language
Go 1.24 improves map performance with a brand new map implementation
March 23
March 26
March 26
March 26
Golang Дайджест
💦 Sticker
Простите, не смог удержаться чтобы не поделиться 🧙
Please open Telegram to view this post
VIEW IN TELEGRAM
March 26
April 1
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Почему я отказался от разработки игр на Rust, часть 1
Предисловие: этот пост представляет собой очень длинный перечень мыслей и проблем, возникавших у меня за годы работы; также в нём рассматриваются некоторые из аргументов, которые мне часто говорили. В...
April 1
April 1
Гайд по написанию бота, который будет вас мотивировать каждые 30 минут 💪
https://habr.com/ru/articles/897802/
Неплохой гайд — простой и понятный. Довольно короткий, можно осилить за пол часика или меньше, но при этом описано всё необходимое.
#guide #telegram_bot
https://habr.com/ru/articles/897802/
Неплохой гайд — простой и понятный. Довольно короткий, можно осилить за пол часика или меньше, но при этом описано всё необходимое.
#guide #telegram_bot
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Пишем Telegram-бота на Go(и заставляем его мотивировать нас каждые 30 минут)
Давно уже было желание сделать что-то простое и полезное в Telegram, но чтобы не пришлось постоянно за этим следить. И вот пришла гениальная идея: чтобы быть всегда замотивированным, можно написать...
April 9
Forwarded from Cross Join - канал о разработке (Anton Okolelov)
Go планирует улучшить производительность в контейнерах (proposal)
GOMAXPROCS - это настройка в Go, которая определяет максимальное количество CPU-ядер, используемых для выполнения горутин параллельно.
В Go 1.25 разработчики предлагают встроить умный GOMAXPROCS, который будет учитывать ограничения контейнера (cgroup).
Сейчас Go автоматически устанавливает GOMAXPROCS равным всем логическим ядрам на машине, что создаёт проблемы в контейнерах, где доступно меньше ресурсов. Это приводит к неэффективной работе, проблемам с производительностью и троттлингу приложения.
Проблема актуальна для всех, кто запускает Go-приложения в контейнерах (Docker, Kubernetes), и остро стоит в окружениях, где на одной машине запускается много контейнеров с ограниченными ресурсами.
Сейчас разработчики решают эту проблему ручной настройкой через переменные окружения или используя библиотеку от убера. Новое предложение добавляет в сам Go автоматическое определение ограничений CPU из cgroups и динамическое обновление GOMAXPROCS при изменении этих ограничений.
🫥 Cross Join
⠀
#golang #performance #kubernetes #docker
GOMAXPROCS - это настройка в Go, которая определяет максимальное количество CPU-ядер, используемых для выполнения горутин параллельно.
В Go 1.25 разработчики предлагают встроить умный GOMAXPROCS, который будет учитывать ограничения контейнера (cgroup).
Сейчас Go автоматически устанавливает GOMAXPROCS равным всем логическим ядрам на машине, что создаёт проблемы в контейнерах, где доступно меньше ресурсов. Это приводит к неэффективной работе, проблемам с производительностью и троттлингу приложения.
Проблема актуальна для всех, кто запускает Go-приложения в контейнерах (Docker, Kubernetes), и остро стоит в окружениях, где на одной машине запускается много контейнеров с ограниченными ресурсами.
Сейчас разработчики решают эту проблему ручной настройкой через переменные окружения или используя библиотеку от убера. Новое предложение добавляет в сам Go автоматическое определение ограничений CPU из cgroups и динамическое обновление GOMAXPROCS при изменении этих ограничений.
⠀
#golang #performance #kubernetes #docker
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
runtime: CPU limit-aware GOMAXPROCS default · Issue #73193 · golang/go
Overview Change the Go runtime on Linux to use CPU cgroup quota limits to set the default value of GOMAXPROCS. This is a concrete proposal for the ideas discussed in #33803. I've included a lot...
April 10
Golang Дайджест
Swiss Tables новая реализация map — Go 1.24 https://go.dev/blog/swisstable Перевод Как вы наверняка уже знаете, в Go 1.24 встроенная реализация map была полностью переработана и теперь основана на Swiss Table. В этой статье Michael Pratt (один из авторов…
https://habr.com/ru/companies/simbirsoft/articles/899180/
Ещё один неплохой подробный разбор новой мапы в Go. Более простым языком и с цветными картинками
#article
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Go 1.24: принципы работы и преимущества обновленной map
В феврале 2025 года разработчики Go выпустили версию 1.24, в которой значительно улучшили производительность языка. Одно из ключевых изменений коснулось структуры map — встроенного типа данных,...
April 16
April 22
Retry в Go: От граблей к дзену отказоустойчивости
https://habr.com/ru/articles/903576/
Автор затронул хорошую тему — ретраи крайне важная штука, но многие недооценивают их сложность.
Скажем, если вы не знакомы с понятиями Exponential Backoff и Jitter, то точно стоит прочитать. Также разобраны и более глубокие моменты.
#article
https://habr.com/ru/articles/903576/
Автор затронул хорошую тему — ретраи крайне важная штука, но многие недооценивают их сложность.
Скажем, если вы не знакомы с понятиями Exponential Backoff и Jitter, то точно стоит прочитать. Также разобраны и более глубокие моменты.
#article
Хабр
Retry в Go: От граблей к дзену отказоустойчивости
В мире распределенных систем и микросервисов сетевые сбои, временная недоступность сервисов или всплески нагрузки — не исключение, а скорее правило. Отказ одного компонента не должен каскадом обрушить...
April 23
April 27
Писать или не писать простой код?
Предлагаю вашему вниманиюдве три статьи:
1. Пиши простой код
2. Не пиши простой код
3. Просто пиши код
Интересная и горячая дискуссия, которая нас с вами тоже касается, не пропустите.
От комментариев я пока воздержусь, но, возможно, чуть позже поделюсь и своим мнением по итогам🌚
#article #discussion
Предлагаю вашему вниманию
1. Пиши простой код
2. Не пиши простой код
3. Просто пиши код
Интересная и горячая дискуссия, которая нас с вами тоже касается, не пропустите.
От комментариев я пока воздержусь, но, возможно, чуть позже поделюсь и своим мнением по итогам
#article #discussion
Please open Telegram to view this post
VIEW IN TELEGRAM
April 29
Golang Дайджест
Писать или не писать простой код? Предлагаю вашему вниманию две три статьи: 1. Пиши простой код 2. Не пиши простой код 3. Просто пиши код Интересная и горячая дискуссия, которая нас с вами тоже касается, не пропустите. От комментариев я пока воздержусь…
Какой пост вам ближе? Желательно отвечать после прочтения всех трёх, благо они очень короткие.
Раз уж на то пошло..
Раз уж на то пошло..
Anonymous Poll
34%
1. Пиши простой код
6%
2. Не пиши простой код
25%
3. Просто пиши код
10%
Со всеми согласен
4%
Ни с одним не согласен
21%
Не знаю / Посмотреть ответы
April 29
- Перевод
- Оригинал
Фундаментальная статья, которая погружает в самые недра форматов изображений. Автор не просто описывает JPEG, PNG и GIF, а детально разбирает их внутреннее устройство, принципы сжатия. В общем, всё как мы любим.
Что именно разбирается:
- Основы: Краткий ликбез по пикселям, цветовым моделям RGB и RGBA.
- GIF: Подробно о палитре, анимации и о том, как стандартная библиотека Go (image/gif) кодирует эти изображения. Есть даже пример создания простого анимированного GIF на Go.
- PNG: Разбор структуры чанков (IHDR, IDAT, IEND), использование DEFLATE для сжатия, и очень интересный раздел о техниках фильтрации (Sub, Up, Average, Paeth), которые помогают улучшить степень сжатия. Автор также ссылается на реализацию этих фильтров в Go.
- JPEG: Глубокое погружение в механизмы этого формата
Статья довольно объемная, но читается интересно и неплохо расширяет кругозор.
Бонусом идут примеры кода на Go
#article #deep_dive
Please open Telegram to view this post
VIEW IN TELEGRAM
May 9
May 14
Golang Дайджест
Новый метод в Go 1.25 В Go 1.25 для WaitGroup добавят метод Go, чтобы упростить распространённый паттерн: func (wg *WaitGroup) Go(f func()) { wg.Add(1) go func() { defer wg.Done() f() }() }
Хорошая новость, мне очень не хватало такой штуки в стандартной библиотеке
May 14