Category : golang

golang
Простые правила, которые помогают мне писать на Go без побочных эффектов

Владислав Белогрудов, старший разработчикУспел поработать с роботами, телекомом, поисковиками. В YADRO разрабатываю драйверы для OpenStack и систем хранения данных, модули для Ansible и еще много-много всего.Роб Пайк сказал, что простое лучше, чем сложное. Я бы добавил: простое лучше, чем прикольное. Ведь Go спроектирован, чтобы писать программы в простом стиле. Сегодня я хочу поговорить про такие, казалось бы, очевидные вещи, как функции, интерфейсы и методы. Их особенности в Go. И правила, к…

  • пятница, 14 июля 2023 г. в 00:00:22
golang
Учимся разрабатывать REST API на Go на примере сокращателя ссылок

В этой статье мы напишем полноценный REST API сервис — URL Shortener — и задеплоим его на виртуальный сервер с помощью GitHub Actions. Говоря «полноценный», я имею в виду, что это будет не игрушечный проект, а готовый к использованию: мы выберем для него актуальный http-роутер, позаботимся о логах, напишем тесты: unit-тесты, тесты хэндлеров и функциональные, настроим автоматический деплой через GitHub Actions и др. Но важно понимать, что «готовый к продакшену» != «энтерпрайз». Кратко об…

  • пятница, 14 июля 2023 г. в 00:00:22
golang
Микросервисы в банке: на чем их лучше писать? Java/Kotlin, а может Go?

В июле в офисе РСХБ-Интех (технологической дочки Россельхозбанка) состоялся бесплатный митап для Java-разработчиков — RSHB Backend Dev Meetup. Обсудили Kotlin, Go, маппинг и разные аспекты бэкэнд-разработки. В числе докладчиков выступал Иван Кочергин, руководитель центра собственной разработки РСХБ-Интех. Иван более 10 лет занимается разработкой на Java, последние три года — на Kotlin. В своем докладе он сравнил, на чем лучше писать микросервисы в банке: Java, Kotlin или Go. Делимся расшифровк…

  • пятница, 14 июля 2023 г. в 00:00:21
golang
database/sql биндинги для YDB в Go

YQL — это SQL‑диалект, специфичный для базы данных YDB. YQL требует заранее объявлять имена и типы параметров запроса. Это обеспечивает высокую производительность и корректное поведение. В синтаксисе YQL параметры необходимо перечислять явно с помощью инструкции DECLARE. И этот нюанс YDB может быть неожиданным для пользователей традиционных баз данных.Кроме того, поскольку таблицы YDB находятся в структуре, подобной виртуальной файловой системе, их имена могут быть довольно длинными. Существуе…

  • четверг, 13 июля 2023 г. в 00:00:17
golang
5 книг по Golang для начинающих разработчиков: на что стоит обратить внимание

Привет, Хабр! Сегодня поговорим о Golang, вернее, о хороших книгах, которые написаны для начинающих разработчиков. Возможно, какие-то из этих книг пропустили в своё время и более опытные программисты — если так, стоит обратить на них внимание. Если же вы можете порекомендовать книги по Go, которые понравились именно вам, пишите в комментариях, обсудим и их. Ну а пока — поехали.Head First. Изучаем GoАвтор: Джей Макгаврен Не всем нравится серия Head First, но именно эту книгу хвалят многие. Она …

  • вторник, 11 июля 2023 г. в 00:00:19
golang
Основы Go: функции

Автор статьи: Рустем ГалиевIBM Senior DevOps Engineer & Integration Architect. Официальный DevOps ментор и коуч в IBMПривет, Хабр!Сегодня мы рассмотрим, как писать и вызывать функции в Go. Мы также изучим, как правильно обрабатывать ошибки в функциях, и узнаем об использовании функций в качестве типов данных. Попутно мы будем использовать структуры управления if, for и switch в Go.Функции являются основой структурного программирования и знакомы опытным разработчикам. Однако функции Go имею…

  • пятница, 7 июля 2023 г. в 00:00:14
golang
Обработка ошибок в go в 2023 г

В go нет исключений. Разработчики, начинающие знакомиться с go, часто не знают как лучше всего обработать ошибку, как её отобразить в логах и что с ней делать дальше.Попробуем рассмотреть все варианты, которые можно встретить в проектах на golang в 2023 году.Статья больше рассчитана на начинающих разработчиков. Но, надеюсь, и разработчики с опытом сочтут этот обзор полезным и будут более осознанно выбирать стратегию обработки ошибок для своих проектов.Стандартная библиотекаОсновная идеяНачнем …

  • среда, 5 июля 2023 г. в 00:00:19
golang
Оптимизация памяти и управление сборщиком мусора в Go: GOGC и GOMEMLIMIT

Всем привет, меня зовут Нина Пакшина, я работаю Golang разработчиком в Лента Онлайн.В данной статье я расскажу о том, как управлять сборщиком мусора в Go, как оптимизировать потребление памяти приложением и защититься от ошибки out-of-memory.Стек и куча в GoЯ не буду подробно рассказывать о том, как работает сборщик мусора, поскольку на эту тему уже существует много статей и есть подробная официальная документация (это и это). Но я хочу упомянуть базовые понятия, которые помогут разобраться в …

  • вторник, 4 июля 2023 г. в 00:00:16
golang
Анонимная сеть в 200 строк кода на Go

ВведениеАнонимность — великая штука. Высшее наслаждение. Это что-то, чего ты не можешь оценить до тех пор, пока не потеряешь.(Билл Мюррей)Реализации анонимных сетей всегда стремятся быть как можно проще, доступнее для понимания, как на теоретическом, так и на программном уровнях. Такие условия становятся необходимыми вследствие одного из основных принципов построения безопасных программ — чем проще объяснить, тем легче доказать. Но к сожалению теория часто может расходиться с практикой, и то, …

  • воскресенье, 2 июля 2023 г. в 00:00:13