DevGang
Авторизоваться

Обработка ошибок в веб-приложениях на Go должна быть удобнее!

В этом посте я опишу паттерн обработки ошибок, который показался мне довольно элегантным при написании REST, gRPC и других сервисов на Go. При написании этого поста я преследовал три цели:

Оптимизация образов Docker с помощью многоэтапных сборок и бездистрибутивного подхода

Когда мы перевели наше приложение с Node.js (Express) на Go, нам удалось уменьшить размер образа Docker с 2,8 ГБ до 400 МБ, что изначально нас устраивало. Однако, стремясь к более эффективному использованию ресурсов и более быстрому развертыванию, мы поняли, что все еще есть возможности для дальнейшего уменьшения размера изображения, поэтому мы решили попробовать новый подход.

Возможно, это знакомая территория для инженеров с опытом работы в DevOps, но для новичков я поделюсь улучшениями, которые мы внесли.

Создавайте образы Docker быстрее, используя кэш сборки

Знание того, как оптимизировать сборки образов Docker, чтобы использовать кэш сборки как можно чаще, имеет решающее значение для ускорения ваших сборок. Мы покажем вам, как работает кэш слоев и как эффективно использовать кэш, чтобы вы могли получить максимальную отдачу от своих сборок.

Создание облачного backend на Go с использованием REST и PostgreSQL

В этом руководстве показано, как создать и развернуть серверную часть Go для сокращения URL-адресов. Он состоит из одного сервиса с REST API и использует базу данных PostgreSQL.

Чтобы всего за несколько минут запустить нашу серверную часть Go в облаке, мы будем использовать Encore — платформу разработки серверной части, которая автоматизирует инфраструктуру.

Самый простой способ создать REST API с помощью Go

Go известен тем, что его легко освоить и он обеспечивает самый быстрый путь к созданию продукта. Благодаря встроенной в стандартную библиотеку функциональности HTTP у вас есть все необходимое без каких-либо внешних зависимостей. Низкоуровневый доступ к HTTP может стать глотком свежего воздуха, если вы привыкли к раздутым платформам, но это приводит к появлению большого количества шаблонного кода, который со временем становится утомительным для написания снова и снова. Здесь на помощь приходит babyapi. Я создал эту библиотеку, чтобы обеспечить очень простое создание REST API, не навязывая определенную структуру всему приложению. Это так просто, что справится даже ребенок!

Создание облачного бэкенда в Go с использованием REST и PostgreSQL

💡В этом руководстве показано, как создать, развернуть и перейти на серверную часть для средства сокращения URL. Оно состоит из одной службы, REST API и базы данных PostgreSQL.

Мы будем использовать Encore, чтобы запустить наше приложение в облаке бесплатно за 10 минут!

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

Перехват сообщения об ошибке от nginx

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

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

Создание веб-приложения React с бэкендом Go

Это краткое руководство по созданию и развертыванию веб-приложения с использованием фронтенда React и бэкенда Go. Мы будем использовать Encore, платформу для разработки бэкенда, позволяющую создавать готовые к работе приложения в AWS/GCP без необходимости ручной работы над инфраструктурой.

Это отличный способ узнать, как объединить возможности внутреннего интерфейса Encore с современным веб-фронтендом, чтобы создать более надежное и готовое к производству веб-приложение.

Создайте API GraphQL и разверните его за считанные минуты с помощью Encore 🚀

В этом руководстве показано, как создать API GraphQL с помощью Encore. В качестве примера он реализует серверную часть для сокращения URL-адресов и показывает, как вы развертываете его в бесплатном облаке разработки Encore.

Обрабатываются события только один раз (pub/sub) с использованием Nitric в GO

Шаблон Idempotent Consumer необходим для обработки повторяющихся сообщений в микросервисах, гарантируя, что повторная обработка одного и того же сообщения приводит к тому же результату, что и однократная обработка.

Этого можно достичь путем отслеживания ID сообщений либо в отдельной таблице PROCESSED_MESSAGE, либо внутри бизнес-объектов, на которые влияют сообщения. Записывая ID обработанных сообщений, обработчик сообщений может идентифицировать и удалять дубликаты, обеспечивая идемпотентную обработку и согласованность данных во всех микросервисах.

Присоединяйся в тусовку

Поделитесь своим опытом, расскажите о новом инструменте, библиотеке или фреймворке. Для этого не обязательно становится постоянным автором.

Попробовать

В этом месте могла бы быть ваша реклама

Разместить рекламу