🚀 Подборка Telegram каналов для программистов
Системное администрирование, DevOps 📌
https://www.tgoop.com/bash_srv Bash Советы
https://www.tgoop.com/win_sysadmin Системный Администратор Windows
https://www.tgoop.com/sysadmin_girl Девочка Сисадмин
https://www.tgoop.com/srv_admin_linux Админские угодья
https://www.tgoop.com/linux_srv Типичный Сисадмин
https://www.tgoop.com/devopslib Библиотека девопса | DevOps, SRE, Sysadmin
https://www.tgoop.com/linux_odmin Linux: Системный администратор
https://www.tgoop.com/devops_star DevOps Star (Звезда Девопса)
https://www.tgoop.com/i_linux Системный администратор
https://www.tgoop.com/linuxchmod Linux
https://www.tgoop.com/sys_adminos Системный Администратор
https://www.tgoop.com/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://www.tgoop.com/sysadminof Книги для админов, полезные материалы
https://www.tgoop.com/i_odmin Все для системного администратора
https://www.tgoop.com/i_odmin_book Библиотека Системного Администратора
https://www.tgoop.com/i_odmin_chat Чат системных администраторов
https://www.tgoop.com/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://www.tgoop.com/sysadminoff Новости Линукс Linux
1C разработка 📌
https://www.tgoop.com/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
https://www.tgoop.com/DevLab1C 1С:Предприятие 8
https://www.tgoop.com/razrab_1C 1C Разработчик
https://www.tgoop.com/buh1C_prog 1C Программист | Бухгалтерия и Учёт
https://www.tgoop.com/rabota1C_rus Вакансии для программистов 1С
Программирование C++📌
https://www.tgoop.com/cpp_lib Библиотека C/C++ разработчика
https://www.tgoop.com/cpp_knigi Книги для программистов C/C++
https://www.tgoop.com/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
https://www.tgoop.com/pythonofff Python академия.
https://www.tgoop.com/BookPython Библиотека Python разработчика
https://www.tgoop.com/python_real Python подборки на русском и английском
https://www.tgoop.com/python_360 Книги по Python
Java разработка 📌
https://www.tgoop.com/BookJava Библиотека Java разработчика
https://www.tgoop.com/java_360 Книги по Java Rus
https://www.tgoop.com/java_geek Учим Java на примерах
GitHub Сообщество 📌
https://www.tgoop.com/Githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://www.tgoop.com/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
https://www.tgoop.com/developer_mobila Мобильная разработка
https://www.tgoop.com/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
https://www.tgoop.com/frontend_1 Подборки для frontend разработчиков
https://www.tgoop.com/frontend_sovet Frontend советы, примеры и практика!
https://www.tgoop.com/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
https://www.tgoop.com/game_devv Все о разработке игр
Библиотеки 📌
https://www.tgoop.com/book_for_dev Книги для программистов Rus
https://www.tgoop.com/programmist_of Книги по программированию
https://www.tgoop.com/proglb Библиотека программиста
https://www.tgoop.com/bfbook Книги для программистов
БигДата, машинное обучение 📌
https://www.tgoop.com/bigdata_1 Big Data, Machine Learning
Программирование 📌
https://www.tgoop.com/bookflow Лекции, видеоуроки, доклады с IT конференций
https://www.tgoop.com/rust_lib Полезный контент по программированию на Rust
https://www.tgoop.com/golang_lib Библиотека Go (Golang) разработчика
https://www.tgoop.com/itmozg Программисты, дизайнеры, новости из мира IT
https://www.tgoop.com/php_lib Библиотека PHP программиста 👨🏼💻👩💻
https://www.tgoop.com/nodejs_lib Подборки по Node js и все что с ним связано
https://www.tgoop.com/ruby_lib Библиотека Ruby программиста
https://www.tgoop.com/lifeproger Жизнь программиста. Авторский канал.
QA, тестирование 📌
https://www.tgoop.com/testlab_qa Библиотека тестировщика
Шутки программистов 📌
https://www.tgoop.com/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://www.tgoop.com/thehaking Канал о кибербезопасности
https://www.tgoop.com/xakep_2 Хакер Free
Книги, статьи для дизайнеров 📌
https://www.tgoop.com/ux_web Статьи, книги для дизайнеров
Математика 📌
https://www.tgoop.com/Pomatematike Канал по математике
https://www.tgoop.com/phis_mat Обучающие видео, книги по Физике и Математике
https://www.tgoop.com/matgeoru Математика | Геометрия | Логика
Excel лайфхак📌
https://www.tgoop.com/Excel_lifehack
https://www.tgoop.com/mir_teh Мир технологий (Technology World)
Вакансии 📌
https://www.tgoop.com/sysadmin_rabota Системный Администратор
https://www.tgoop.com/progjob Вакансии в IT
Системное администрирование, DevOps 📌
https://www.tgoop.com/bash_srv Bash Советы
https://www.tgoop.com/win_sysadmin Системный Администратор Windows
https://www.tgoop.com/sysadmin_girl Девочка Сисадмин
https://www.tgoop.com/srv_admin_linux Админские угодья
https://www.tgoop.com/linux_srv Типичный Сисадмин
https://www.tgoop.com/devopslib Библиотека девопса | DevOps, SRE, Sysadmin
https://www.tgoop.com/linux_odmin Linux: Системный администратор
https://www.tgoop.com/devops_star DevOps Star (Звезда Девопса)
https://www.tgoop.com/i_linux Системный администратор
https://www.tgoop.com/linuxchmod Linux
https://www.tgoop.com/sys_adminos Системный Администратор
https://www.tgoop.com/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://www.tgoop.com/sysadminof Книги для админов, полезные материалы
https://www.tgoop.com/i_odmin Все для системного администратора
https://www.tgoop.com/i_odmin_book Библиотека Системного Администратора
https://www.tgoop.com/i_odmin_chat Чат системных администраторов
https://www.tgoop.com/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://www.tgoop.com/sysadminoff Новости Линукс Linux
1C разработка 📌
https://www.tgoop.com/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
https://www.tgoop.com/DevLab1C 1С:Предприятие 8
https://www.tgoop.com/razrab_1C 1C Разработчик
https://www.tgoop.com/buh1C_prog 1C Программист | Бухгалтерия и Учёт
https://www.tgoop.com/rabota1C_rus Вакансии для программистов 1С
Программирование C++📌
https://www.tgoop.com/cpp_lib Библиотека C/C++ разработчика
https://www.tgoop.com/cpp_knigi Книги для программистов C/C++
https://www.tgoop.com/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
https://www.tgoop.com/pythonofff Python академия.
https://www.tgoop.com/BookPython Библиотека Python разработчика
https://www.tgoop.com/python_real Python подборки на русском и английском
https://www.tgoop.com/python_360 Книги по Python
Java разработка 📌
https://www.tgoop.com/BookJava Библиотека Java разработчика
https://www.tgoop.com/java_360 Книги по Java Rus
https://www.tgoop.com/java_geek Учим Java на примерах
GitHub Сообщество 📌
https://www.tgoop.com/Githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://www.tgoop.com/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
https://www.tgoop.com/developer_mobila Мобильная разработка
https://www.tgoop.com/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
https://www.tgoop.com/frontend_1 Подборки для frontend разработчиков
https://www.tgoop.com/frontend_sovet Frontend советы, примеры и практика!
https://www.tgoop.com/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
https://www.tgoop.com/game_devv Все о разработке игр
Библиотеки 📌
https://www.tgoop.com/book_for_dev Книги для программистов Rus
https://www.tgoop.com/programmist_of Книги по программированию
https://www.tgoop.com/proglb Библиотека программиста
https://www.tgoop.com/bfbook Книги для программистов
БигДата, машинное обучение 📌
https://www.tgoop.com/bigdata_1 Big Data, Machine Learning
Программирование 📌
https://www.tgoop.com/bookflow Лекции, видеоуроки, доклады с IT конференций
https://www.tgoop.com/rust_lib Полезный контент по программированию на Rust
https://www.tgoop.com/golang_lib Библиотека Go (Golang) разработчика
https://www.tgoop.com/itmozg Программисты, дизайнеры, новости из мира IT
https://www.tgoop.com/php_lib Библиотека PHP программиста 👨🏼💻👩💻
https://www.tgoop.com/nodejs_lib Подборки по Node js и все что с ним связано
https://www.tgoop.com/ruby_lib Библиотека Ruby программиста
https://www.tgoop.com/lifeproger Жизнь программиста. Авторский канал.
QA, тестирование 📌
https://www.tgoop.com/testlab_qa Библиотека тестировщика
Шутки программистов 📌
https://www.tgoop.com/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://www.tgoop.com/thehaking Канал о кибербезопасности
https://www.tgoop.com/xakep_2 Хакер Free
Книги, статьи для дизайнеров 📌
https://www.tgoop.com/ux_web Статьи, книги для дизайнеров
Математика 📌
https://www.tgoop.com/Pomatematike Канал по математике
https://www.tgoop.com/phis_mat Обучающие видео, книги по Физике и Математике
https://www.tgoop.com/matgeoru Математика | Геометрия | Логика
Excel лайфхак📌
https://www.tgoop.com/Excel_lifehack
https://www.tgoop.com/mir_teh Мир технологий (Technology World)
Вакансии 📌
https://www.tgoop.com/sysadmin_rabota Системный Администратор
https://www.tgoop.com/progjob Вакансии в IT
Telegram
Bash Советы
🚀 Секреты и советы по Bash
🔹 Полезные трюки, хитрые однострочники и лайфхаки для работы в терминале.
🔹 Автоматизация, скрипты и оптимизация работы в Linux.
🔹 Стать мастером Bash легко – просто подпишись!
💻 Прокачивай терминал вместе с нами! 👇
🔹 Полезные трюки, хитрые однострочники и лайфхаки для работы в терминале.
🔹 Автоматизация, скрипты и оптимизация работы в Linux.
🔹 Стать мастером Bash легко – просто подпишись!
💻 Прокачивай терминал вместе с нами! 👇
SOLID в Go и щепотка паттернов
Как сказал бы волк из небезызвестного мультика: «SOLID? Шо, опять?»
Но наша сфера пополняется новыми кадрами, и для них это всё действительно впервые. Именно для них я и написал эту статью. Недавно мне пришлось объяснять принципы SOLID начинающему разработчику на примере Go, и я понял, что нет хорошего материала, который я мог бы ему рекомендовать. Точнее, нет материала, который объяснял бы эти принципы так, как я это себе представляю, максимально понятно. Часто объяснения SOLID сводятся к разбору каждого принципа отдельно. Однако, по моему мнению, настоящее понимание приходит, когда ты видишь, как реализация одного принципа в коде неизбежно приводит к применению второго и третьего.
https://habr.com/ru/companies/domclick/articles/816885/
👉 @golang_lib
Как сказал бы волк из небезызвестного мультика: «SOLID? Шо, опять?»
Но наша сфера пополняется новыми кадрами, и для них это всё действительно впервые. Именно для них я и написал эту статью. Недавно мне пришлось объяснять принципы SOLID начинающему разработчику на примере Go, и я понял, что нет хорошего материала, который я мог бы ему рекомендовать. Точнее, нет материала, который объяснял бы эти принципы так, как я это себе представляю, максимально понятно. Часто объяснения SOLID сводятся к разбору каждого принципа отдельно. Однако, по моему мнению, настоящее понимание приходит, когда ты видишь, как реализация одного принципа в коде неизбежно приводит к применению второго и третьего.
https://habr.com/ru/companies/domclick/articles/816885/
👉 @golang_lib
Как я отправил 500 миллионов HTTP-запросов менее чем за 24 часа
Недавно я решил поэкспериментировать с отправкой большого количества HTTP-запросов за короткое время. Мне было любопытно, насколько далеко можно зайти, не нарушая правил приличия — без DDoS, без кражи ресурсов, просто ради эксперимента. В результате мне удалось отправить 500 миллионов запросов менее чем за 24 часа. В этом посте я объясню, как я это сделал и какие технологии использовал.
Цели и ограничения
* Не нарушать закон и правила приличия
* Не навредить чужим сервисам
* Минимальные затраты
* Использовать только бесплатные или дешевые решения
https://www.moczadlo.com/2024/how-i-sent-500-million-http-requests-in-under-24h
👉 @golang_lib
Недавно я решил поэкспериментировать с отправкой большого количества HTTP-запросов за короткое время. Мне было любопытно, насколько далеко можно зайти, не нарушая правил приличия — без DDoS, без кражи ресурсов, просто ради эксперимента. В результате мне удалось отправить 500 миллионов запросов менее чем за 24 часа. В этом посте я объясню, как я это сделал и какие технологии использовал.
Цели и ограничения
* Не нарушать закон и правила приличия
* Не навредить чужим сервисам
* Минимальные затраты
* Использовать только бесплатные или дешевые решения
https://www.moczadlo.com/2024/how-i-sent-500-million-http-requests-in-under-24h
👉 @golang_lib
🤖 Хотите создать Telegram-бота с нуля на Go?
📅 13 мая в 20:00 МСК на открытом вебинаре мы разберем, как создать простого, но эффективного Telegram-бота для управления задачами, а также заложим правильную архитектуру для его дальнейшего расширения.
❗️Что разберем:
— Принципы разработки Telegram-ботов на Go.
— Архитектуру и структуры данных.
— Реализацию минимального набора функций для бота.
➡️ Открытый урок проходит в преддверие старта курса «Go (Golang) Developer Basic». Все участники получат скидку на обучение. Запишитесь прямо сейчас: https://vk.cc/cLEkuD
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
📅 13 мая в 20:00 МСК на открытом вебинаре мы разберем, как создать простого, но эффективного Telegram-бота для управления задачами, а также заложим правильную архитектуру для его дальнейшего расширения.
❗️Что разберем:
— Принципы разработки Telegram-ботов на Go.
— Архитектуру и структуры данных.
— Реализацию минимального набора функций для бота.
➡️ Открытый урок проходит в преддверие старта курса «Go (Golang) Developer Basic». Все участники получат скидку на обучение. Запишитесь прямо сейчас: https://vk.cc/cLEkuD
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🔧 Локальное исправление зависимостей в Go
Иногда при разработке на Go возникает необходимость временно изменить внешний модуль — например, внести исправление, которое ещё не вмержили в основной репозиторий. Go предоставляет удобный механизм для этого.
🧩 Используем
В Go можно использовать директиву
Теперь при сборке Go будет использовать код из
Это особенно удобно, если вы:
* работаете над фиксом бага во внешнем пакете;
* тестируете pull request;
* занимаетесь временным форком библиотеки.
⚠️ Что важно помнить
1. Не коммитьте
Эти изменения локальны и не должны попадать в боевой код.
2.
Даже если вы обновите модуль через
3. Проверьте
После замены зависимостей могут измениться хэши в
🛠 Пример сценария
Вы нашли баг в
Затем в
Теперь
https://eli.thegreenplace.net/2024/locally-patching-dependencies-in-go/
👉 @golang_lib
Иногда при разработке на Go возникает необходимость временно изменить внешний модуль — например, внести исправление, которое ещё не вмержили в основной репозиторий. Go предоставляет удобный механизм для этого.
🧩 Используем
replace
в go.mod
В Go можно использовать директиву
replace
, чтобы указать локальный путь вместо внешней зависимости:
replace github.com/some/module => ../local-copy/module
Теперь при сборке Go будет использовать код из
../local-copy/module
вместо кода, загружаемого из Git.Это особенно удобно, если вы:
* работаете над фиксом бага во внешнем пакете;
* тестируете pull request;
* занимаетесь временным форком библиотеки.
⚠️ Что важно помнить
1. Не коммитьте
replace
в main
ветку!Эти изменения локальны и не должны попадать в боевой код.
2.
go get
не влияет на replace
Даже если вы обновите модуль через
go get
, replace
всё равно будет использовать локальный путь.3. Проверьте
go.sum
После замены зависимостей могут измениться хэши в
go.sum
. Это нормально, но стоит за этим следить.🛠 Пример сценария
Вы нашли баг в
github.com/example/lib
, клонировали его:
git clone https://github.com/example/lib ~/dev/lib-patched
Затем в
go.mod
вашего проекта:
replace github.com/example/lib => ~/dev/lib-patched
Теперь
go build
будет использовать вашу локальную версию.https://eli.thegreenplace.net/2024/locally-patching-dependencies-in-go/
👉 @golang_lib
Использование Profile-Guided Optimization (PGO) для ваших Go-приложений
Профилируемая оптимизация (PGO) — это мощный способ улучшить производительность вашего программного обеспечения с минимальными изменениями в коде. Начиная с Go 1.21, поддержка PGO встроена в компилятор Go, что позволяет разработчикам собирать и использовать профиль выполнения своего приложения, чтобы сгенерировать более производительный бинарник.
Как это работает?
PGO использует реальные данные о выполнении приложения (runtime profile), чтобы направить оптимизации компилятора. Это позволяет, например, более эффективно размещать горячие (часто используемые) функции и блоки кода, улучшая производительность CPU и уменьшая кэш-промахи.
Как начать?
1. Соберите профиль выполнения. Используйте
2. Скомпилируйте с использованием профиля. Передайте профиль компилятору с флагом
3. Измерьте результат. После повторной сборки вы получите бинарник, оптимизированный под реальные сценарии выполнения.
Результаты
По оценкам команды Go, использование PGO может дать прирост производительности от 2% до 20%, в зависимости от характера приложения. Это особенно полезно для серверных приложений с высокими требованиями к производительности.
Советы
* Снимайте профиль в наиболее репрезентативной среде — это поможет добиться наилучших результатов.
* Периодически обновляйте профиль, если поведение приложения или его нагрузка изменяются.
* Можно автоматизировать этот процесс в CI/CD.
https://cloud.google.com/blog/products/application-development/using-profile-guided-optimization-for-your-go-apps
👉 @golang_lib
Профилируемая оптимизация (PGO) — это мощный способ улучшить производительность вашего программного обеспечения с минимальными изменениями в коде. Начиная с Go 1.21, поддержка PGO встроена в компилятор Go, что позволяет разработчикам собирать и использовать профиль выполнения своего приложения, чтобы сгенерировать более производительный бинарник.
Как это работает?
PGO использует реальные данные о выполнении приложения (runtime profile), чтобы направить оптимизации компилятора. Это позволяет, например, более эффективно размещать горячие (часто используемые) функции и блоки кода, улучшая производительность CPU и уменьшая кэш-промахи.
Как начать?
1. Соберите профиль выполнения. Используйте
-cpuprofile
, pprof
или инструменты трассировки для сбора профиля вашего приложения в реальных условиях или нагрузочном тесте.2. Скомпилируйте с использованием профиля. Передайте профиль компилятору с флагом
-pgoprofile=your.pprof
при сборке:
go build -gcflags=all=-pgoprofile=your.pprof
3. Измерьте результат. После повторной сборки вы получите бинарник, оптимизированный под реальные сценарии выполнения.
Результаты
По оценкам команды Go, использование PGO может дать прирост производительности от 2% до 20%, в зависимости от характера приложения. Это особенно полезно для серверных приложений с высокими требованиями к производительности.
Советы
* Снимайте профиль в наиболее репрезентативной среде — это поможет добиться наилучших результатов.
* Периодически обновляйте профиль, если поведение приложения или его нагрузка изменяются.
* Можно автоматизировать этот процесс в CI/CD.
https://cloud.google.com/blog/products/application-development/using-profile-guided-optimization-for-your-go-apps
👉 @golang_lib
💻Как работать с каналами в Go и сделать ваш код конкурентным?
🔥На открытом уроке «Использование каналов в Go на практике» от OTUS вы погрузитесь в одну из самых мощных особенностей языка Golang. Эти инструменты позволяют эффективно управлять параллельными процессами — ключ к созданию высокопроизводительных приложений.
❗️Что вас ждёт:
— Обзор теории: как работают каналы в Go и зачем они нужны.
— Практические примеры применения каналов в реальных задачах.
— Разбор частых ошибок и подводных камней при работе с каналами.
📗Урок пройдет в преддверии старта курса «Golang Developer. Professional», и все участники получат скидку на обучение.
➡️Встречаемся 14 мая в 20:00 МСК, регистрация открыта: https://vk.cc/cLRaXm
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🔥На открытом уроке «Использование каналов в Go на практике» от OTUS вы погрузитесь в одну из самых мощных особенностей языка Golang. Эти инструменты позволяют эффективно управлять параллельными процессами — ключ к созданию высокопроизводительных приложений.
❗️Что вас ждёт:
— Обзор теории: как работают каналы в Go и зачем они нужны.
— Практические примеры применения каналов в реальных задачах.
— Разбор частых ошибок и подводных камней при работе с каналами.
📗Урок пройдет в преддверии старта курса «Golang Developer. Professional», и все участники получат скидку на обучение.
➡️Встречаемся 14 мая в 20:00 МСК, регистрация открыта: https://vk.cc/cLRaXm
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Golang: bytes.Buffer изнутри
Работая с кодом на Go, любому специалисту приходилось сталкиваться со стандартным пакетом bytes . Внутри него лежит определение Buffer . Что же это такое?
Определение bytes.Buffer
Сам по себе bytes.Buffer является структурой.
https://habr.com/ru/articles/827550/
👉 @golang_lib
Работая с кодом на Go, любому специалисту приходилось сталкиваться со стандартным пакетом bytes . Внутри него лежит определение Buffer . Что же это такое?
Определение bytes.Buffer
Сам по себе bytes.Buffer является структурой.
type Buffer struct {
buf []byte // содержимое - это байты buf[off : len(buf)]
off int // читает по &buf[off], пишет по &buf[len(buf)]
lastRead readOp // последняя операция чтения, чтобы Unread* могло работать корректно
}
https://habr.com/ru/articles/827550/
👉 @golang_lib
SIMD Binary Search Tree
Этот проект представляет собой бинарное дерево поиска, реализованное с использованием SIMD-инструкций (SSE/AVX/AVX512).
Обычно бинарный поиск требует log₂(n) сравнений. Однако с SIMD можно сравнивать сразу несколько элементов за один проход, значительно снижая число итераций. Это приближает бинарный поиск к константному времени для малых массивов.
Особенности
* Однопроходный бинарный поиск с SIMD.
* Поддержка SSE, AVX2 и AVX512.
* Дерево хранится как массив (без указателей).
* Отложенная перестройка дерева (lazy rebuilding).
* Поддержка поиска и вставки.
* Поддержка произвольных типов через шаблоны C++.
* Совместимость с
Пример использования
Производительность
Проект демонстрирует прирост производительности по сравнению со стандартными алгоритмами STL при поиске в небольших отсортированных массивах, особенно на AVX512.
Структура
*
*
*
*
https://clement-jean.github.io/simd_binary_search_tree/
👉 @golang_lib
Этот проект представляет собой бинарное дерево поиска, реализованное с использованием SIMD-инструкций (SSE/AVX/AVX512).
Обычно бинарный поиск требует log₂(n) сравнений. Однако с SIMD можно сравнивать сразу несколько элементов за один проход, значительно снижая число итераций. Это приближает бинарный поиск к константному времени для малых массивов.
Особенности
* Однопроходный бинарный поиск с SIMD.
* Поддержка SSE, AVX2 и AVX512.
* Дерево хранится как массив (без указателей).
* Отложенная перестройка дерева (lazy rebuilding).
* Поддержка поиска и вставки.
* Поддержка произвольных типов через шаблоны C++.
* Совместимость с
std::lower_bound
/ std::upper_bound
.Пример использования
#include "simd_binary_search_tree.hpp"
simd_tree::Tree<int> tree;
tree.insert(10);
tree.insert(5);
tree.insert(15);
auto result = tree.lower_bound(9); // -> 10
Производительность
Проект демонстрирует прирост производительности по сравнению со стандартными алгоритмами STL при поиске в небольших отсортированных массивах, особенно на AVX512.
Структура
*
Tree<T>
— основной шаблонный класс.*
insert(T)
— вставка элемента.*
lower_bound(T)
— найти первое значение не меньше заданного.*
upper_bound(T)
— найти первое значение больше заданного.https://clement-jean.github.io/simd_binary_search_tree/
👉 @golang_lib
🗂 Работа с базами данных на Go: как писать эффективные запросы и миграции?
📅 22 мая в 20:00 МСК на открытом уроке мы разберем, как эффективно работать с БД в Go, создавать таблицы, использовать ОRМ и SQL-запросы, а также научимся делать миграции.
Что вы узнаете:
— Как организовать структуру БД для веб-приложений.
— Применение ОRМ и чистого SQL в Go.
— Как правильно настроить миграцию и работать с таблицами.
➡️ Открытый урок пройдет в преддверие старта курса «Go (Golang) Developer Basic». Все участники получат 🎁 скидку на обучение. Не упустите шанс развить свои навыки в Go: https://vk.cc/cM5jdg
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
📅 22 мая в 20:00 МСК на открытом уроке мы разберем, как эффективно работать с БД в Go, создавать таблицы, использовать ОRМ и SQL-запросы, а также научимся делать миграции.
Что вы узнаете:
— Как организовать структуру БД для веб-приложений.
— Применение ОRМ и чистого SQL в Go.
— Как правильно настроить миграцию и работать с таблицами.
➡️ Открытый урок пройдет в преддверие старта курса «Go (Golang) Developer Basic». Все участники получат 🎁 скидку на обучение. Не упустите шанс развить свои навыки в Go: https://vk.cc/cM5jdg
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Строки(strings) в Go
Строки — одна из самых часто используемых структур данных в любом языке программирования. И в Go они повсюду: от простых приветствий вроде "Hello, World!" до сложных парсеров, логгеров и сетевых протоколов. На первый взгляд, с ними всё просто: создал, склеил, обрезал — и пошёл дальше. Но как это часто бывает, под простотой скрываются тонкости, игнорирование которых может привести к ошибкам и снижению производительности.
Go предлагает мощные, но специфичные механизмы работы со строками. Они тесно связаны с понятиями Unicode, UTF-8, рун, неизменяемости и байтовых представлений. Понимание этих механизмов позволяет не только избежать типичных подводных камней, но и писать более эффективный код.
https://habr.com/ru/articles/911614/
👉 @golang_lib
Строки — одна из самых часто используемых структур данных в любом языке программирования. И в Go они повсюду: от простых приветствий вроде "Hello, World!" до сложных парсеров, логгеров и сетевых протоколов. На первый взгляд, с ними всё просто: создал, склеил, обрезал — и пошёл дальше. Но как это часто бывает, под простотой скрываются тонкости, игнорирование которых может привести к ошибкам и снижению производительности.
Go предлагает мощные, но специфичные механизмы работы со строками. Они тесно связаны с понятиями Unicode, UTF-8, рун, неизменяемости и байтовых представлений. Понимание этих механизмов позволяет не только избежать типичных подводных камней, но и писать более эффективный код.
https://habr.com/ru/articles/911614/
👉 @golang_lib
Работа с аренами: почти избавляемся от GC
Меня зовут Максим Горозий. Я тимлид в Т-Банке, работаю над нашей образовательной платформой, которая служит для разных направлений бизнеса. В ИТ больше 10 лет и успел поработать в двух GameDev-компаниях, где управление памятью занимало весомое время в оптимизации производительности кода. Люблю строить системы и взаимосвязи между ними, а также EdTech и преподавание, а еще больше — работать над инструментами обучения. Хотя начинал с C, я идеологический фанат Go, DDD и Agile.
«Оно тормозит» — классическая цитата разработчиков. Расскажу, как разобраться в причинах и научиться управлять памятью, медитируя над профайлингом, чтобы все работало быстро.
https://habr.com/ru/companies/oleg-bunin/articles/828972/
👉 @golang_lib
Меня зовут Максим Горозий. Я тимлид в Т-Банке, работаю над нашей образовательной платформой, которая служит для разных направлений бизнеса. В ИТ больше 10 лет и успел поработать в двух GameDev-компаниях, где управление памятью занимало весомое время в оптимизации производительности кода. Люблю строить системы и взаимосвязи между ними, а также EdTech и преподавание, а еще больше — работать над инструментами обучения. Хотя начинал с C, я идеологический фанат Go, DDD и Agile.
«Оно тормозит» — классическая цитата разработчиков. Расскажу, как разобраться в причинах и научиться управлять памятью, медитируя над профайлингом, чтобы все работало быстро.
https://habr.com/ru/companies/oleg-bunin/articles/828972/
👉 @golang_lib
🚀 Go — лучший старт для вашей карьеры в программировании.
🔎 Если вы хотите освоить один из самых востребованных языков разработки, не тратя времени на сложный синтаксис, Go — ваш идеальный выбор. Курс «Golang Developer. Basic» от OTUS — это возможность начать с нуля и научиться создавать эффективные приложения, веб-сервисы и системы.
❓Что вас ждёт:
— Легкость изучения и быстрая адаптация в Go.
— Применение best practices и реальных инструментов разработки.
— Основы разработки на Go и эффективное использование встроенных инструментов.
📖 Программа обновляется в соответствии с требованиями рынка. Диплом OTUS ценят ведущие IT-компании. Обучение ведут опытные преподаватели, работающие в реальных проектах.
😎 Старт курса — 29 мая.
🔴 Набор почти закрыт! Оставьте заявку и получите скидку на обучение: https://vk.cc/cMcnTS
Скидка 5% по промокоду: Go_05
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🔎 Если вы хотите освоить один из самых востребованных языков разработки, не тратя времени на сложный синтаксис, Go — ваш идеальный выбор. Курс «Golang Developer. Basic» от OTUS — это возможность начать с нуля и научиться создавать эффективные приложения, веб-сервисы и системы.
❓Что вас ждёт:
— Легкость изучения и быстрая адаптация в Go.
— Применение best practices и реальных инструментов разработки.
— Основы разработки на Go и эффективное использование встроенных инструментов.
📖 Программа обновляется в соответствии с требованиями рынка. Диплом OTUS ценят ведущие IT-компании. Обучение ведут опытные преподаватели, работающие в реальных проектах.
😎 Старт курса — 29 мая.
🔴 Набор почти закрыт! Оставьте заявку и получите скидку на обучение: https://vk.cc/cMcnTS
Скидка 5% по промокоду: Go_05
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🚀 Go-профилирование как у профи!
🔍 Слишком медленно или жрёт кучу памяти? Эта статья расскажет, как:
1️⃣ Включить CPU- и heap-профилирование через
2️⃣ Анализировать
3️⃣ Оптимизировать парсинг и работу с данными: стриминг вместо загрузки всего в память, замена дорогих функций, упрощение структур
4️⃣ Профилировать живой сервер через
⚡ Результат: время работы сократилось с ~14 до ~7 секунд, память — с 1.7 ГБ до 57 МБ!
👉 Читай подробное пошаговое руководство
👉 @golang_lib
🔍 Слишком медленно или жрёт кучу памяти? Эта статья расскажет, как:
1️⃣ Включить CPU- и heap-профилирование через
runwww.tgoop.com/pprof
2️⃣ Анализировать
.prof`-файлы командой `go tool pprof
(topN, граф, list)3️⃣ Оптимизировать парсинг и работу с данными: стриминг вместо загрузки всего в память, замена дорогих функций, упрощение структур
4️⃣ Профилировать живой сервер через
net/http/pprof
и ловить hot-spots «на ходу»⚡ Результат: время работы сократилось с ~14 до ~7 секунд, память — с 1.7 ГБ до 57 МБ!
👉 Читай подробное пошаговое руководство
👉 @golang_lib
🚀 Открой для себя идеальный путь к лидерству с карьерным тестом от ОЭЗ «Алабуга»! 🌟
Мечтаете о карьере в крупной компании, где ваш потенциал раскроется на полную? Наш тест поможет вам определить вашу уникальную лидерскую роль. Может быть, именно вы станете тем лидером, который выведет команду на новый уровень?
После прохождения теста вы можете заполнить заявку и получить приглашение на эксклюзивную лидерскую программу. Участие в программе открывает реальные перспективы трудоустройства в ОЭЗ «Алабуга», предоставляя шанс начать путь к профессиональному признанию.
Сделайте первый шаг к своему будущему сегодня! Пройдите тест, подайте заявку и начните строить свою карьеру вместе с нами. 🎯
Мечтаете о карьере в крупной компании, где ваш потенциал раскроется на полную? Наш тест поможет вам определить вашу уникальную лидерскую роль. Может быть, именно вы станете тем лидером, который выведет команду на новый уровень?
После прохождения теста вы можете заполнить заявку и получить приглашение на эксклюзивную лидерскую программу. Участие в программе открывает реальные перспективы трудоустройства в ОЭЗ «Алабуга», предоставляя шанс начать путь к профессиональному признанию.
Сделайте первый шаг к своему будущему сегодня! Пройдите тест, подайте заявку и начните строить свою карьеру вместе с нами. 🎯
Golang: context изнутри
Ни для кого не секрет, что стандартный пакет context широко используется для создания ваших сервисов. В данный момент, не побоюсь этого слова, любой сервис написанный на Go использует контексты повсеместно. Мое мнение таково - если ты хочешь прогрессировать как специалист, ты должен копать все глубже и глубже. Предлагаю рассмотреть context с призмы его работы внутри.
https://habr.com/ru/articles/827544/
Golang: bytes.Buffer изнутри
Работая с кодом на Go, любому специалисту приходилось сталкиваться со стандартным пакетом bytes . Внутри него лежит определение Buffer . Что же это такое?
https://habr.com/ru/articles/827550/
Golang: пакет bytes изнутри
Приветствую, в прошлой статье мы разбирали определение bytes.Buffer изнутри. Теперь хочется обратить внимание на сам пакет bytes. Что за ним скрывается? Каждому разработчику приходилось использовать его будь то в production или локальной разработке. Это достаточно мощный по своим меркам пакет, который предоставляет нам функции для работы с байтами.
https://habr.com/ru/articles/828044/
👉 @golang_lib
Ни для кого не секрет, что стандартный пакет context широко используется для создания ваших сервисов. В данный момент, не побоюсь этого слова, любой сервис написанный на Go использует контексты повсеместно. Мое мнение таково - если ты хочешь прогрессировать как специалист, ты должен копать все глубже и глубже. Предлагаю рассмотреть context с призмы его работы внутри.
https://habr.com/ru/articles/827544/
Golang: bytes.Buffer изнутри
Работая с кодом на Go, любому специалисту приходилось сталкиваться со стандартным пакетом bytes . Внутри него лежит определение Buffer . Что же это такое?
https://habr.com/ru/articles/827550/
Golang: пакет bytes изнутри
Приветствую, в прошлой статье мы разбирали определение bytes.Buffer изнутри. Теперь хочется обратить внимание на сам пакет bytes. Что за ним скрывается? Каждому разработчику приходилось использовать его будь то в production или локальной разработке. Это достаточно мощный по своим меркам пакет, который предоставляет нам функции для работы с байтами.
https://habr.com/ru/articles/828044/
👉 @golang_lib
Вы уверены, что defer всегда безопасен?
В этой статье хочу рассмотреть поведение defer более детально. Данную статья пишется в целях "попробовать себя", а так же, надеюсь, помочь кому-то разобраться с defer.
https://habr.com/ru/articles/914642/
👉 @golang_lib
В этой статье хочу рассмотреть поведение defer более детально. Данную статья пишется в целях "попробовать себя", а так же, надеюсь, помочь кому-то разобраться с defer.
https://habr.com/ru/articles/914642/
👉 @golang_lib