Golang Books
16.9K subscribers
323 photos
6 videos
335 files
303 links
Библиотека Golang разработчика

По всем вопросам- @haarrp

@Golang_google - Golang

@golangl - golang chat

@GolangJobsit - golang channel jobs

@golangtests golang tests

@itchannels_telegram - 🔥лучшие ит-каналы

№ 5032829002
Download Telegram
🔥На Stepik вышел курс: Linux: полный апгрейд твоих скиллов

Хочешь реально понимать, что происходит под капотом твоей системы, а не просто кликать по GUI?

Без глубокого знания базы ты не инженер - ты просто пользователь.

🔹 В курсе ты:

- Освоишь bash, grep, sed, awk - инструменты, которыми живут админы.
- Разберёшь права, процессы, сеть, файловую систему и научишься чинить всё, что падает.
- Настроишь SSH, firewall, systemd, crontab, демоны и автозапуск.
- Научишься анализировать логи, следить за нагрузкой, и не паниковать при 100% CPU.

💡 Формат: пошаговое объяснение базы и разбор важных практик по работе с Linux.

🎯 После курса ты: будешь чувствовать Linux как родную среду и забудешь, что такое “permission denied”.

🚀 24 часа действует скидка 30%

👉 Учиться со скидкой
4👍4😁4🤬3🥰2
Forwarded from Golang digest
This media is not supported in your browser
VIEW IN TELEGRAM
Что не так с этим кодом на Go? И чего вы ожидаете на выходе?

На первый взгляд - всё понятно. Но на самом деле это ловушка 😏


Вы переопределяете iota как обычную константу, равную самой себе (iota = iota). С этого момента iota перестаёт быть магической переменной, и счётчик сбрасывается.
Поэтому Y получает значение 0, а не 1 — как многие ожидают.

Вывод программы: 0

💡 Мораль: никогда не переназначайте iota внутри const, иначе потеряете её «магию».

Запустить код: https://go.dev/play/p/7xu1qRUcp2O
Задачи: https://youtube.com/shorts/ynJtcC1XY5k?si=57kpfY4uV4HdsEkH
4👍2🤬2🔥1
Создаем и настраиваем выделенные серверы через Terraform

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

И, кстати, через Terraform вы можете управлять не только облачными ресурсами. В Selectel эта фича теперь доступна и для «железной» инфраструктуры на базе выделенных серверов. Вы получаете изолированность и высокую производительность железа с гибким «облачным» управлением.

Единый Terraform-провайдер позволяет настроить гибридную инфраструктуру в Selectel. Добавляйте облачные серверы, подключайте сетевые диски, объединяйте и комбинируйте ресурсы между собой — все с помощью одного инструмента.

Попробовать Terraform в Selectel можно бесплатно — ловите 3 000 бонусов на тест. Для этого зарегистрируйтесь в панели, напишите в тикете кодовое слово «TERRAFORM» и ждите одобрения заявки.

Реклама. АО "Селектел". erid:2W5zFJVrpQg
📚 Alexandrie - быстрое, open-source приложение для заметок в расширенном Markdown.
Идеально для студентов, исследователей и всех, кто ценит чистоту и порядок в мыслях.

Возможности:
• Расширенный Markdown-редактор
• Мгновенный поиск по заметкам
• Удобная организация и архивация
• Экспорт в PDF, Markdown и др.
• Доступ с любого устройства


Бэкенд на Go, фронтенд на Vue
📦 Запускается локально через Docker за пару команд.

👉 GitHub: https://github.com/Smaug6739/Alexandrie
8🔥3👍2😁1
🌐 SafeLine — это веб-аппликационный firewall (WAF), разработанный Chaitin Technology. Он защищает веб-приложения от различных типов атак, таких как SQL-инъекции, XSS и др., фильтруя потенциально опасные запросы.

🌟 SafeLine предоставляет эффективные инструменты для мониторинга и защиты приложений в реальном времени, что делает его полезным для обеспечения безопасности веб-сервисов.

🔐 Лицензия: GPL-3.0

🖥 Github

@golang_books
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
Forwarded from Golang
🫖 Новый пост в официальном блоге GO: Green Tea GC - новый сборщик мусора в Go 1.25

В Go 1.25 появился экспериментальный сборщик мусора Green Tea GC, который уже используется внутри Google.

Он снижает время, проводимое в GC, примерно на 10%, а в отдельных сценариях - до 40%.
Активировать можно при сборке флагом:


GOEXPERIMENT=greenteagc go build ./...


📘 Как это работает
:

Классический mark-sweep в Go обходит граф объектов и помечает живые узлы, но делает это неэффективно: память фрагментирована, обращения случайны, кэш часто промахивается.

Green Tea решает проблему, он обрабатывает кучу по компактным блокам (spans), сохраняя пространственную локальность и уменьшая межъядерные переходы.

Это делает GC более предсказуемым и дружелюбным к CPU-кэшу.

💡 Что изменилось внутри рантайма:
- Объекты группируются по размеру в страницы (pages) и спаны.
- Маркер обходит память блоками, а не «прыгает» по указателям.
- Очереди задач GC выстраиваются так, чтобы кэш был «тёплым».

📊 Что показывают тесты:

- Большинство программ тратят меньше времени на GC.
- В реальных нагрузках - до 40% ускорения.
- В некоторых случаях применение почти ничего не дает, поэтому важно тестировать на своих данных.

Green Tea уже признан production-ready, и команда Go планирует сделать его GC по умолчанию в Go 1.26.

В целом, Green Tea GC делает сборку мусора в Go быстрее и стабильнее за счёт лучшей локальности и оптимизации доступа к памяти. Это первый серьёзный шаг к более эффективному, «кэше-дружелюбному» GC в Go.

⚡️ Подробнее - https://go.dev/blog/greenteagc
⚡️Видео: https://www.youtube.com/watch?v=he5PfBfte2c

@Golang_google
👍12🔥93
🚀 Как ускорить доступ к файлам на Go в 25 раз?

В блоге от Varnish Software рассказывается, как использование memory-map (mmap) вместо классического чтения файлов (seek/read) дало огромный прирост скорости: random lookup ≈ 3.3 нс против ≈ 416 нс с ReaderAt.

✔️ Основная идея: вместо системных вызовов чтения данных из файла, маппим файл в память и читаем как обычный массив указателей.

⚠️ Однако есть важный нюанс: запись через mmap может быть очень неэффективной из-за page-fault’ов и управления виртуальной памятью.

📌 Полезно, если:
- много операций чтения, особенно случайного доступа;
- работа с большими файлами и важна производительность;
- запись файлов - не основная задача.

Если нужно быстро взглянуть на статью: https://info.varnish-software.com/blog/how-memory-maps-mmap-deliver-25x-faster-file-access-in-go

Benchmarks: https://github.com/perbu/mmaps-in-go
CDB64 files with memory maps: https://github.com/perbu/cdb

#GoLang #Performance #MemoryMap #mmap #SystemsProgramming #BackendEngineering

@golang_books
👍64🤔4🔥1
⚙️ В микросервисах всё рушится не тогда, когда ломается код, а когда ломается конфигурация. Один неверный параметр — и вместо отказоустойчивости получаете каскадный сбой.

На открытом уроке вы узнаете, как централизованное управление настройками помогает системе оставаться живой, даже когда всё вокруг падает.
Разберём etcd, Zookeeper, Consul, а также практику автоматического обновления конфигураций без остановки сервисов.

❗️ Мы покажем, как микросервисы на Go могут адаптироваться к сбоям и изменениям в реальном времени, и какие паттерны делают архитектуру по-настоящему устойчивой.

📆 5 ноября в 20:00 МСК. Открытый вебинар проходит в преддверии старта курса «Микросервисы на Go».

➡️ Регистрируйтесь и разберитесь, как не дать своим сервисам “упасть” из-за одной строки в конфиге: https://otus.pw/nCas/?erid=2W5zFJF6ybe

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
😁21