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

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

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

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

РКН: https://gosuslugi.ru/snet/67a4a8c2468
Download Telegram
👩‍💻 Fuzzing-тестирование: практическое применение

Никита Догаев, бэкенд тимлид в команде Контента на портале поставщиков Wildberries, поделился опытом применения фаззинга для нагрузочных и интеграционных тестирований.

Вы узнаете про генерацию текстов на армянском языке, тестирование SQL-запросов, возможность использования фаззера и unit-тестирование бок о бок.

👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍31🥱1
👩‍💻 Как команда Dolt использует GitHub Actions для создания оптимизированных сборок, ориентированной на производительность

Взгляд за кулисы процесса сборки Dolt и того, как команда внедрила PGO в пайплайн.

👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥31
🧼 Применение чистой архитектуры: гайд по использованию Go и концепций чистой архитектуры для создания простого блога

👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥5🌚3🤔21
🚀 С нуля до продакшена: путь Go в Google

Автор девять лет проработал SRE в Google и делится историей о том, как Go рос и был принят за годы его становления. Это история о гонке за простоту, надежность и скорость.

👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍1
💬 Удается ли вам отдыхать вне работы?

👍 — да, почти всегда
🙏 — да, иногда
🤔 — нет, всегда работа в голове
🥱 — какой отдых? Я же айтишник

#холивар
🙏106🥱71👍65🤔40😁2
👩‍💻 Две причины, по которым стоит передавать указатели на структуры в Go

Как вы решаете, использовать ли указатель при передаче структур в функции? У Preslav Rachev есть несколько надежных критериев, основанных на принципах предметно-ориентированного проектирования, которые могут дать вам новый, более удобный в сопровождении подход.

👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
👍163
🤖 Токены для LLM: byte pair encoding на Go

Основной элемент в современных языковых моделях — это токен. Новые захватывающие LLM обладают длинными контекстными окнами, измеряемыми миллионами токенов.

🤔 Но что это такое?

Eli Bendersky разобрался и рассмотрел наиболее часто используемый алгоритм для разделения текста на токены, предоставил полную реализацию на Go и показал площадку для экспериментов.

Полученная реализация не нацелена на скорость, но она совместима с библиотекой tiktoken от OpenAI и генерирует идентичные результаты, работая с теми же файлами словаря.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥4
🧰🚀 Sonic — Go-библиотека для асинхронной сетевой и I/O разработки, которая предоставляет согласованную асинхронную модель с упором на достижение минимально возможной задержки в Go (не путайте с одноименным инструментом для ведения блогов или JSON-библиотекой).

👩‍💻 Исходники библиотеки открыла компания Talos, специализирующаяся на торговой инфраструктуре. «Sonic — это альтернатива пакету net. Она устраняет необходимость использования нескольких горутин для обработки нескольких соединений и операций чтения/записи в одном процессе».

🔗 Подробнее & GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
16👍4🔥4
🖼️ Обработка ошибок при написании REST, gRPC или других сервисов на Go: алгоритм от Jonathan Hall

Традиционные методы обработки ошибок в HTTP-обработчиках могут быть повторяющимися и неидиоматичными. Например, часто приходится вручную обрабатывать HTTP-статусы для каждой ошибки, что увеличивает вероятность ошибок и делает код громоздким.

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

👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍3
🏃 🏃 🏃 Самоучитель по Go для начинающих. Часть 12. Обобщенное программирование. Дженерики

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


👉 Читать гайд

📌 Остальные части в серии:

1. Особенности и сфера применения Go, установка, настройка
2. Ресурсы для изучения Go с нуля
3. Организация кода. Пакеты, импорты, модули. Ввод-вывод текста.
4. Переменные. Типы данных и их преобразования. Основные операторы
5. Условные конструкции if-else и switch-case. Цикл for. Вложенные и бесконечные циклы
6. Функции и аргументы. Области видимости. Рекурсия. Defer
7. Массивы и слайсы. Append и сopy. Пакет slices
8. Строки, руны, байты. Пакет strings. Хеш-таблица (map)
9. Структуры и методы. Интерфейсы. Указатели. Основы ООП
10. Введение в ООП. Наследование, абстракция, полиморфизм, инкапсуляция
11. Обработка ошибок. Паника. Восстановление. Логирование
16👍2
👩‍💻 Эволюция стандартной библиотеки Go с math/rand/v2

С момента первого релиза Go в марте 2012 года изменения в стандартной библиотеке ограничивались обещанием совместимости Go. Хотя это и обеспечивало стабильность для Go-разработчиков, со временем стало ясно, что в первоначальных API были допущены ошибки, которые невозможно исправить без нарушения совместимости. В некоторых случаях изменились лучшие практики и соглашения. В связи с этим возникла необходимость в плане внесения важных, разрушающих изменений.

Статья Расса Кокса посвящена новому пакету math/rand/v2 в Go 1.22, который является первым "v2" в стандартной библиотеке. Он вносит необходимые улучшения в API math/rand, но что более важно, он служит примером того, как команда Go может пересматривать другие пакеты стандартной библиотеки по мере необходимости.

👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
👍136🥰1
😉 55 промтов для ChatGPT, которые помогут подготовиться к собеседованию

Вы когда-нибудь задумывались, как можно использовать искусственный интеллект для того, чтобы подготовиться к техническим собеседованиям лучше, быстрее и эффективнее? Мы вот — да! И поэтому подготовили 55 промтов, которые помогут сделать это.

В статье собраны шаблоны запросов, которые желательно «докрутить» под себя.

🔗 Читать статью
🔗 Зеркало
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🤔3
🤩 Awesome Ebitengine — коллекция фреймворков, библиотек и софта для гоферов, использующих Ebitengine.

Ebitengine — опенсорсная библиотека с простым API, позволяющим быстро и легко писать 2D-игры, которые можно деплоить на нескольких платформах.

👉 GitHub
👏15
🅾️ Что такое «О» большое: объясняем на простых примерах

«О» большое (Big O notation) — это математическая нотация, которая позволяет оценить, как изменяется время выполнения алгоритма или объём используемой памяти в зависимости от размера входных данных.

Мы написали подробный гайд по видам сложности, проиллюстрировав их понятными примерами.

🔗 Читать статью
🔗 Зеркало
👍4🥰2
This media is not supported in your browser
VIEW IN TELEGRAM
🔔 gorush — сервер push-уведомлений, основанный на Gin и поддерживающий APNS (Apple Push Notification Service), Firebase и HMS Push Server (Huawei).

👉 GitHub
👏122👍2😁1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
👁️💼 Открытые и скрытые вакансии в IT: как найти работу мечты

Существует целый пласт скрытых вакансий, о которых знает ограниченный круг лиц. Как найти эти вакансии и не упустить свой шанс? Читайте в нашей статье.

🔗 Читать статью
🔗 Зеркало
😁51
🙇‍♂️ Остаться в живых (keepalive) feat. HTTP/2, Go & gRPC-Go

Бэкенд-разработчик из Ozon Tech разбирается с механизмами, которые позволяют проверять стабильность соединения между клиентом и сервером в случае, когда обычные TCP keepalive из-за сложности архитектуры не могут определить состояние сервера.

👉 Читать
👍17😁2🔥1
🎊 Представлены релизы Go 1.22.3 и 1.21.10

🔏
cmd/go: выполнение произвольного кода во время сборки на darwin
🕸️
net: неправильно сформированное сообщение DNS может вызвать бесконечный цикл

📣 Подробнее
📦 Скачать

#новости
👍14🔥7
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🎭 7 типов программистов, которых вы встретите на собеседовании

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

🔗 Читать статью
🔗 Зеркало
😁20👍5