Category : golang

golang
Популярные ошибки в Golang и как их избежать

Всем привет! Меня зовут Дмитрий Королёв, я бэкенд-разработчик в Авито. Go известен своей лаконичностью и простотой синтаксиса, но даже в нём есть множество подводных камней, с которыми можно столкнуться в работе. В этой статье я сделаю разбор распространённых ошибок с примерами и расскажу, как их можно избежать.Массивы и слайсыНачнём с базовых концепций:Массив — последовательность элементов определённого типа и фиксированной длины. Это неизменяемая структура данных и его capacity всегда равна е…

  • суббота, 18 мая 2024 г. в 00:00:07
golang
Генерация надёжных псевдослучайных чисел с ChaCha8Rand в Go

Привет, Хабр!В версии Go 1.22 пакет math/rand/v2претерпел значительные изменения, а в частности - переход на ChaCha8Rand. Этот новый генератор представляет собой модификацию широко известного и проверенного временем шифра ChaCha8, который используется в протоколах TLS и SSH.Немного про сам генераторChaCha8Rand основывается на алгоритме ChaCha8, который сам по себе является облегченной версией шифра ChaCha20. ChaCha8 выполняет восемь раундов перестановок и замен ключа и блока данных, что гарант…

  • четверг, 16 мая 2024 г. в 00:00:12
golang
Динамическая функция для генерации excel файла на Golang

Привет! Я Сино, бэкенд разрабочик на языке Golang. Работаю 1,5 года в банковской сфере.Так как я работаю в команде B2B, из-за этого часто приходится работать с отчётностью, платежами и файлами.В связи с тем, что часто приходится генерировать отчёт в разных файловых форматах, таких как xlsx, pdf, doc и т.п., мне приходится знать все тонкости работы с файлами. Самая частый формат из перечисленного это - excel формат (xlsx), так как, основная работа B2B - это работа с мерчантами (мерчант - это юр…

  • пятница, 10 мая 2024 г. в 00:00:08
golang
database/sql: плохой, хороший, злой

Многие Golang-разработчики  пробовали работать с БД в Go, и у каждого — свои боли. В этой статье поисследуем библиотеку database/sql для работы с абстрактной СУБД и нашу имлементацию database/sql драйвера под СУБД YDB. Рассмотрим трудности эксплуатации при использовании драйвера database/sql на проде. А также расскажем, что мы делали для решения проблем.Меня зовут Алексей Мясников, я — руководитель Application Team в команде разработки YDB. Я очень люблю git blame за то, что с его помощью можно…

  • среда, 8 мая 2024 г. в 00:00:08
golang
Библиотека GopherJS в Golang

Привет, Хабр!GopherJS позволяет переводить Go-код в JavaScript — он предоставляет полноценную совместимость с большинством пакетов стандартной библиотеки Go. Также Gopher поддерживает горутины и каналы!В статье в общих деталях рассмотрим эту замечательную библиотеку.Установим:go get -u github.com/gopherjs/gopherjsОсновы работыgopherjs build - с этой командой можно компилировать Go-код в JavaScript. Она аналогична команде go build, но вместо создания исполняемого файла Go она генерирует файл .js…

  • воскресенье, 5 мая 2024 г. в 00:00:10
golang
Суслик и пингвин: кодим на Go под Linux

Язык ядра Linux, его модулей и утилит написаны на языке C. Хоть он и является старым языком и прародителем многих других, но его до сих пор используют. В экосистему линукса постепенно проникают и более молодые языки — например, Rust. Но сегодня мы поговорим об детище Google — GoLang. Я много пишу про этот замечательный язык и в этой статье предлагаю изучить основы системного программирования на Go, мы изучим как работать с ядром, юзерспейсом линукса. Расскажу об стандарте POSIX, а также узнаем,…

  • четверг, 2 мая 2024 г. в 00:00:13
golang
Обработка ошибок в web apps не должна быть такой сложной

Зачем? В процессе работы с Go я столкнулся с ещё одной проблемой — обработкой ошибок в хендлерах. Как можно сделать этот процесс удобным и эффективным для 150+ обработчиков? Как обеспечить консистентность и поддержку при обработке ошибок? Разумеется, мои поиски палочки-выручалочки закончились ничем. Есть протокол RFS7807, есть библиотека, есть масса противоречивых статей - выбирай, но как будто чего-то не хватает... По существу статья ниже полностью не отвечает на мои вопросы, но в ней достаточ…

  • среда, 1 мая 2024 г. в 00:00:16
golang
Коробки — российский аналог Docker

Хочу представить вам новую технологию, которую создали русские программисты — «Коробка». Основную роль в её разработке сыграл Александр Коробкин и его команда. Для нас она интересна тем, что в некотором роде является российской альтернативой Docker. В ней они объединили доступные инновационные возможности с национальными спецификамЧто такое Коробка?Аналогично Docker, Коробка представляет собой платформу для разработки, развертывания и управления контейнеризированными приложениями. Технология ба…

  • среда, 1 мая 2024 г. в 00:00:16
golang
Дайджест полезных материалов из мира Golang за неделю (21.04.24 -28.04.24)

Подборка полезных материалов и находок из мира Go за неделю. 🛠 Инструменты недели:  • go-size-analyzer - инструмент для анализа размера зависимостей в скомпилированных бинарных файлах Go. • Go-mongox - пакет Go Mongo, поддерживающий операции по работе с документами и эффективным компоновщиком данных BSON с использованием различных типов данных. • Dendy - это эмулятор NES/Famicom, написанный на Go и названный в честь советского клона Famicom, который был у многих в детстве.• Аутентификация и OAu…

  • понедельник, 29 апреля 2024 г. в 00:00:08