Библиотека Go-разработчика | Golang
23.3K subscribers
2.08K photos
42 videos
87 files
4.45K links
Все самое полезное для Go-разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/32d20779

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a4a8c2468
Download Telegram
👩‍💻 Функциональные опции в Go

Вы наверняка не раз слышали об этом паттерне. Почему бы не повторить еще раз?

Опытом работы с паттерном делится руководитель команды разработки ядра цифровой медицины в Республике Узбекистан.

👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1👏16🥱7👍32
💻🔍💼 Кризис IT-рынка: как джуны и кадровый голод меняют правила игры

В условиях нехватки опытных специалистов и наплыва джунов, IT-компании вынуждены искать нестандартные подходы к найму. Рассмотрим основные тренды и стратегии адаптации рынка.

Читать статью

#почитать
1😁6🎉2👍1
✍️ Заметки о веб-разработке на Go

Знания, полученные из книг, — это здорово, но нет ничего лучше реального опыта, полученного на практике. Читайте заметки Julia Evans, если ваша работа как-то связана с вебом и Go.

👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰7👍1👾1
📉👩‍💻 Руководство по сборщику мусора Go

Одна из тех самых страниц документации, которая должна быть под рукой у Go-разраба. В ней есть все о том, как работает система сборки мусора Go, с дополненным полезными интерактивными диаграммами.

👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥19👍6🙏1
🎉 Представлены релизы Go 1.23.2 и 1.22.8

Новая версия содержит исправления безопасности компилятора, cgo, рантайма, пакетов maps, os, os/exec, time и unique.

🗣 Анонс
⬇️ Скачать

#новости
🔥14👍1
Испытываете ли вы тревогу из-за распространения ИИ-ассистентов для написания кода/решения рабочих задач?
Anonymous Poll
19%
Да 😔
78%
Нет 😎
3%
Свой вариант (напишу в комментарии)
😁15👍1👾1
⚙️ Подпишись на нашу еженедельную email-рассылку, чтобы быть в курсе последних открытий и тенденций в мире бэкенда.

В еженедельных письмах ты найдешь:
● Языки программирования и фреймворки для бэкенда
● Архитектура и проектирование серверных приложений
● Базы данных и управление данными
● Безопасность и защита данных
● Облачные технологии и DevOps
● API и интеграции
● Тестирование и отладка
● Инструменты и утилиты для бэкенд-разработчиков
● Лучшие практики и паттерны проектирования

👉Подписаться👈
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
📈 Modview — визуализатор графика зависимостей Go-проекта

Простой способ визуализации зависимостей в проектах Go чистым графическим способом.

👉 GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22🔥1🎉1
🔥 Распределенные транзакции в Go: прочтите, прежде чем попробовать

В микросервисной архитектуре иногда возникает необходимость в транзакциях, которые должны охватывать несколько сервисов. Это приводит к проблемам, когда проблема на одном из этапов оставляет систему в несогласованном состоянии.

Miłosz Smółka утверждает, что попытка внедрить распределенные транзакции — это часто «избыточное решение», и рекомендует использовать альтернативы.

Одна из них — модель eventual consistency, при которой система не становится сразу согласованной, но в конечном итоге достигает согласованного состояния.

Также он упоминает паттерн Outbox, который используется для гарантии, что данные и события, записанные в базе данных, всегда будут доставлены и обработаны корректно.

👉 Читать
👉 Предыдущая статья
👉 Перевод на русский
👍17🔥1
⚒️ Prep — небольшой инструмент для Go, который позволяет выполнять функции на этапе компиляции

By using prep.Comptime, you can evaluate functions at build time, replacing them with their computed results. Just like comptime from Zig. Except it’s not.


Нельзя отрицать, что идея интересная, хотя у неё есть ограничения, и toolexec не был предназначен для поддержки произвольной перезаписи исходного кода.
🔥23
🛠️ Управление конкурентностью в Go: внутри кастомных примитивов синхронизации rqlite

Написание распределенной базы данных подразумевает интенсивное использование конкурентности. Philip O'Toole, создатель rqlite, распределенной базы данных на основе SQLite, столкнулся с некоторыми ограничениями встроенного в Go инструментария конкурентности и создал несколько кастомных примитивов. Под катом автор делится наработками — кто знает, может какие-то из них пригодятся и вам.

👉 Читать
🤔53👍1
Кстати, на Хабре опубликован перевод гайда про транзакции в БД на Go с использованием многослойной архитектуры 👉 https://t.me/goproglib/5276

Читайте, если хотите узнать об организации кода таким образом, чтобы избежать путаницы между слоями.
👍13👏3
Привет, друзья! 👋

Мы готовим статью о распространенных ошибках в карьере программиста и хотели бы услышать ваше мнение! Поделитесь своими мыслями и опытом, и самые полезные советы мы включим в нашу статью.

Вот несколько вопросов для вас:
🤔 С какими ошибками в своей карьере программиста вы сталкивались? Как вы их преодолели?
📚 Какие советы вы бы дали начинающим разработчикам, чтобы избежать распространенных ловушек в программировании?
🖥️ Что, по вашему мнению, важно учитывать при планировании своей карьеры в IT, чтобы минимизировать сожаления в будущем?

Спасибо за ваше участие! 🚀
👍4🙏2
🤔 Размышления о Go reflection

По-настоящему холиварная статья, которая, вероятно, вызовет разногласия. Как программист, который предпочитает использовать «самые обыденные функции» любого языка, пакет reflect Go не входил в список того, что Neil Macneale из Dolthub хотел попробовать, но он «погрузился в пучину рефлексии» и... до сих пор не является ее поклонником.

👉 Читать
👍6🤔1😢1
🤯 Go memory ballast: как перестать волноваться и полюбить кучу

Еще в 2019 году команда Twitch оптимизировала работу одного из сервисов на Go, сократив использование процессора на 30% и уменьшив задержки API на 45% за счет так называемой «балластной» памяти.

Основная идея заключалась в создании большого блока предвыделенной памяти (балласта), что уменьшило частоту запуска GC в приложении. GC в Go запускается, когда размер кучи удваивается, и, создав большой балласт, команда смогла увеличить базовый размер кучи, тем самым снижая частоту срабатывания сборщика мусора. В результате нагрузка на процессор уменьшилась, так как сборка мусора стала происходить реже.

Балластная память в основном использует виртуальную память и не занимает физическую память, если к ней не обращаться напрямую.

Результаты: снижение числа циклов сборки мусора почти на 99% и значительное улучшение производительности без лишних затрат на память.

👉 Подробнее
👍38🤔5🥱1
🤯 Что вам помогает работать, когда устаете? Когда в отпуск ну вообще никак, а сил уже нет.

💬 Может быть, чтение отвлеченной литературы, спорт, дневной сон, прогулки, встречи с друзьями, что-то ещё?

#интерактив
Кстати, функция equals в пакете maps может использоваться для проверки того, содержат ли две мапы одинаковые пары «ключ-значение».

👉 Пример здесь
👍401