Category : golang

golang
Dataloader 3.0: Новый алгоритм для решения проблемы N+1

При реализации Cosmo Router, open-source замена Apollo Router, мы столкнулись с проблемой поддержания нашего кода для решения проблемы N+1. Реализация маршрутизатора для федеративных служб GraphQL в значительной степени зависит от возможности группировать вложенные запросы GraphQL для сокращения числа запросов к подграфам.Чтобы решить эту проблему, мы разработали новый алгоритм, который решает проблему N+1 более эффективно и проще для поддержания, чем наше предыдущее решение, которое было осно…

  • воскресенье, 7 апреля 2024 г. в 00:00:07
golang
Дайджест полезных материалов из мира Golang за неделю

Подборка полезных материалов и находок из мира Go за неделю.Проекты недели.▪ Beego —  новая версия высокопроизводительного Go фреймворка для разработки RESTful API, веб-приложений и бэкенд-сервисов, вдохновленный Tornado, Sinatra и Flask. ▪LLocalSearch —  полностью локально работающий поисковый агрегатор с использованием агентов LLM.▪ Freeze — полезный Go инструмент для генерации изображений кода и вывода терминала.▪Go-cfg — Простой и удобный способ инициализировать конфигурацию в структуры, с…

  • воскресенье, 7 апреля 2024 г. в 00:00:06
golang
Разбираемся в новом роутинге в Go 1.22

В начале февраля 2024 года вышел Go 1.22. Вот, что нового и интересного принёс новый релиз: сделали более безопасное поведение переменных в циклах, добавили функции-итераторы в качестве rangefunc-эксперимента и улучшили шаблоны роутинга. В этой статье я сфокусируюсь на последнем, самом долгожданном, для многих, обновлении — шаблонах http-роутинга. Роутинг в Go — общая проблема, для решения которой уже построили кучу фреймворков, в этом GitHub-репозитории собраны лучшие. Google сама признаётся…

  • суббота, 6 апреля 2024 г. в 00:00:16
golang
Создание серверного Live Chat приложения с использованием Next.js, Fauna и WunderGraph для GraphQL …

Пошаговое руководство по созданию масштабируемого, чат-приложения реального времени с использованием серверных технологий... с небольшой помощью от NextAuth.js для входа через GitHub. Кому нужны WebSockets, когда у вас есть Live Queries? Не нам!Если вы создаете приложения, которые работают с данными в реальном времени, вы, вероятно, используете WebSockets. Они позволяют веб-браузеру и веб-серверу общаться в реальном времени, поддерживая постоянное соединение между ними - данные отправляются кл…

  • суббота, 6 апреля 2024 г. в 00:00:15
golang
Beego в Golang для начинающих

Привет, Хабр!Beego – это фреймворк для разработки веб-приложений на языке Go, ориентированный на быстрое развертывание и простоту использования. В его основе лежит идея создания полнофункциональных приложений с минимум усилиям на настройку и кодирование. Это достигается за счет широкого выбора инструментов, включая ORM, систему маршрутизации, интерфейс кмд и многое другое. Beego придерживается принципов RESTful и MVC.Установим и создадим первый проектУстановить Beego проще пареной репы:go get …

  • суббота, 6 апреля 2024 г. в 00:00:14
golang
Масштабирование подписок GraphQL в Go с использованием Epoll и архитектуры, основанной на событиях

«Сделай работающим, сделай правильным, сделай быстрым». Это мантра, которую вы, вероятно, слышали раньше. Это хорошая мантра, которая помогает вам сосредоточиться на том, чтобы не переусложнять решение. Я пришел к выводу, что обычно достаточно сделать это правильно, обычно это достаточно быстро, если сделать это правильно.Когда мы начали реализацию подписок GraphQL в Cosmo Router, мы сосредоточились на том, чтобы сделать это работающим. Это было несколько месяцев назад. Это было достаточно хор…

  • вторник, 2 апреля 2024 г. в 00:00:10
golang
Интервью Роберта Пайка про Go

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

  • вторник, 2 апреля 2024 г. в 00:00:09
golang
Представляем планировщик Go: Вы никогда не смотрели на горутины с этой стороны

За кулисами рантайма GoНе переживайте о понимании изображения выше прямо сейчас, мы начнем с самых основ.Горутины раcпределяются по потокам, которыми Планировщик Go управляет под капотом. Мы знаем о горутинах следующее:Горутины, если говорить о скорости исполнения, не обязательно быстрее чем потоки, так как они нуждаются в потоках, чтобы ими исполняться.Ключевое преимущество горутин — в таких нюансах как контекст свитчинг, размере занимаемой ими памяти и стоимости создания и «удаления».Вероятн…

  • понедельник, 1 апреля 2024 г. в 00:00:06
golang
Golang: Мои Открытия

В этом посте мы обсудим несколько увлекательных моментов, которые я узнал в процессе своей работы.Мой канал с инструментами Go разработчика, с разбором каверзных вопросов с собеседований, примерами с кодом, обучающими уроками и кучей всего полезного, здесь целая папка для всех, кто любит Golang.Поехали!1. Как используется встраивание (embedding) в Go?В Go директива //go:embed используется для встраивания файлов и папок в бинарный файл Go на этапе компиляции. Эта функция улучшает безопасность, …

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