37.1K subscribers
1.46K photos
33 videos
5 files
1.62K links
加入频道
👣 Эта статья объясняет, как реализовать WebSocket-коммуникацию с механизмом heartbeat в приложении на Go с использованием фреймворка GoFrame!

🌟 В статье показано, как настроить WebSocket-сервер, эффективно управлять подключениями и добавить heartbeat для поддержания активных соединений и проверки их состояния.

🔗 Ссылка: *клик*

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Ergo — это современный IRC-сервер, написанный на языке Go!

🌟 Он поддерживает IRCv3, интегрированные сервисы для учётных записей пользователей (NickServ), регистрацию каналов (ChanServ) и бонсер-функции для хранения истории. Библиотека предлагает высокую настраиваемость через конфигурацию в формате YAML, поддержку TLS, SASL, а также расширенные функции безопасности и приватности. Ergo также предоставляет возможность работы с несколькими языками и поддерживает интеграцию с LDAP​.

🔐 Лицензия: MIT

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Smocker — это простой и эффективный сервер-заглушка (mock server) и прокси для HTTP-запросов!

🌟 Он позволяет разработчикам и тестировщикам создавать фальшивые API для тестирования интеграции и функциональности приложений. Smocker поддерживает регистрацию маршрутов с помощью YAML или JSON, имеет пользовательский интерфейс для настройки и предоставляет возможность работы через Docker. Он полезен для имитации серверной логики без реальных backend-ресурсов, что позволяет улучшить процесс разработки и тестирования.

🔐 Лицензия: MIT

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Transactor — библиотека на Go, предназначенная для управления базами данных с использованием транзакций!

🌟 Она упрощает внедрение и использование транзакций, инкапсулируя логику работы с базой данных в сервисах и репозиториях. Библиотека поддерживает работу с несколькими драйверами SQL, включая pgx, sqlx, и стандартный database/sql, а также предоставляет функционал для поддержки вложенных транзакций с помощью различных стратегий, таких как использование точек сохранения в PostgreSQL, MySQL и других СУБД.

🔐 Лицензия: MIT

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Go 1.24 это значительный релиз, который привносит множество улучшений, направленных на повышение производительности, безопасности и удобства работы разработчиков.

Эти нововведения делают язык Go ещё более мощным и эффективным инструментом для разработки современных приложений.

▫️ Повышение производительности

Общий прирост производительности составляет 2–3%, благодаря снижению нагрузки на процессор в ряде репрезентативных тестов.

Достигнуто это за счёт новой встроенной реализации map, более эффективного выделения памяти для мелких объектов и обновлённой внутренней реализации мьютексов времени выполнения. Однако результаты могут различаться в зависимости от конкретного приложения.

▫️Постквантовая криптография

Новый пакет crypto/mlkem, реализующий механизмы ML-KEM-768 и ML-KEM-1024.

ML-KEM — это система постквантового обмена ключами, которая раньше была известна как Kyber и стандартизирована в FIPS 203. Данное обновление готовит Go к будущим вызовам в области криптографии.

▫️Улучшенное шифрование TLS

Теперь поддерживается Encrypted Client Hello (ECH) в протоколе TLS. Для активации этой функции необходимо заполнить поле Config.EncryptedClientHelloKeys, что повысит уровень конфиденциальности и безопасности при установлении TLS-соединений.

▫️Новая Swiss Table Map

Для повышения производительности map введена новая реализация на основе Swiss Tables. Её можно отключить с помощью флага сборки GOEXPERIMENT=noswissmap.

▫️Обновление Sync Map

Повышена эффективность модификации данных в sync.Map. Модификации непересекающихся наборов ключей гораздо менее склонны к конфликтам на больших map, и больше не требуется никакого времени на разгон для достижения низкой загрузки от map. Если вы столкнетесь с проблемами, вы можете вернуться к старой реализации, используя GOEXPERIMENT=nosynchashtriemap.
### Расширенная поддержка JSON-маршалинга

▫️Добавлен новый тег omitempty для более гибкого пропуска нулевых значений полей структур при сериализации в JSON. Поле с этим тегом будет пропускаться, если его значение равно нулю. Если у типа поля есть метод IsZero() bool, он будет использован для проверки значения.

▫️Расширенное маршалирование JSON

Новая опция тега omitempty для более интеллектуального пропуска полей структуры во время маршалирования JSON. При маршалировании поле структуры с опцией omitempty будет пропущено, если его значение равно нулю. Если тип поля имеет метод IsZero() bool, он будет использоваться для определения того, равно ли значение нулю.

▫️Очистка времени выполнения
Введение функции AddCleanup для замены SetFinalizer для лучшего управления ресурсами. В отличие от SetFinalizer, она не воскрешает объект, к которому прикреплена для финализации, и к одному объекту может быть прикреплено несколько очисток. Новый код должен предпочитать AddCleanup вместо SetFinalizer.

Директивы Tool в go.mod
Улучшено отслеживание исполняемых зависимостей с использованием директив tool в go.mod. Это устраняет необходимость в предыдущем обходном решении добавления инструментов в виде пустых импортов в файл, условно названный “tools.go”.

▫️Доступ с ограничением по каталогу
Новый тип os.Root для контролируемых операций с файловой системой.
Тип os.Root предоставляет возможность выполнять операции с файловой системой в пределах определенного каталога, предотвращая доступ за пределы указанного пути.

Улучшения тестирования
Новый пакет testing/synctest для тестирования параллельного кода. Функция synctest.Run запускает группу горутин в изолированном "пузыре", а функция synctest.Wait ожидает, пока все горутины в текущем пузыре не заблокируются. Этот пакет является экспериментальным и должен быть включен путем установки GOEXPERIMENT=synctest во время сборки.

▫️Кэш сборки
Исполняемые файлы go run теперь кэшируются для более быстрого выполнения. Это делает повторные выполнения быстрее за счет увеличения размера кэша.

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Bellman — это Go библиотека для работы с API крупных моделей ИИ (LLM), таких как OpenAI, Anthropic, Gemini (Google), и других!

🌟 Она предоставляет унифицированный интерфейс для взаимодействия с различными поставщиками ИИ, позволяя легко переключаться между ними. Также включает сервис bellmand, который выступает как прокси для API-ключей, упрощая интеграцию с различными моделями. Библиотека поддерживает общие функции, такие как чат, структурированные данные, инструменты и работу с бинарными данными.

🔐 Лицензия: MIT

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Swag — инструмент для автоматического создания документации RESTful API в формате Swagger 2.0 для приложений на языке Go!

🌟 Он преобразует аннотации в коде Go в документацию, упрощая интеграцию Swagger UI с существующими проектами.

🌟 Swag поддерживает популярные веб-фреймворки Go, такие как Gin, Echo и другие. Разработчики могут использовать декларативные комментарии для описания API, включая информацию о маршрутах, параметрах, телах запросов и ответах, а также настройку авторизации. Это делает процесс создания и обновления документации более простым и удобным.

🔐 Лицензия: MIT

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Эта статья обсуждает проблему N+1 запросов — частую причину снижения производительности в веб-приложениях!

🌟 Автор объясняет, как стандартный подход ленивой загрузки ассоциированных данных может привести к множественным запросам к базе данных, что становится проблемой в сложных моделях с многочисленными связями.

🌟 Для решения этой проблемы предлагается двухфазный подход: сначала загружаются все необходимые данные за минимальное количество запросов (batch loading), затем данные отображаются с использованием подготовленных объектов. Статья иллюстрирует, как этот метод применяется в Go, и подчеркивает его преимущества, такие как снижение количества запросов и улучшение производительности.

🔗 Ссылка: *клик*

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Dynamic Notification System — это проект на Go, разработанный для создания масштабируемого и гибкого планировщика уведомлений!

🌟 Он поддерживает отправку уведомлений через различные каналы, такие как Slack, Email, SMS, Webhook и другие. Система позволяет легко добавлять новые платформы с помощью динамической архитектуры плагинов, не требуя перезапуска приложения.

🔐 Лицензия: MIT

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 iocast — это библиотека на языке Go для асинхронного выполнения задач, которая не требует внешних зависимостей!

🌟 Она предоставляет гибкие возможности для работы с задачами, такие как ретраи, пайплайны и поддержка контекстов. Библиотека позволяет передавать пользовательские структуры в качестве параметров задач и легко интегрируется в проекты благодаря своему лёгкому дизайну.

🔐 Лицензия: MIT

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🎄 С Новым годом!

Желаем всем гофферам самого лучшего в году 1³ + 2³ + 3³ + 4³ + 5³ + 6³ + 7³ + 8³ + 9³.

@golang_google
👣 DiffDeck — это инструмент для упрощения анализа различий в коде, который акцентируется на удобстве работы, безопасности и интеграции с современными процессами разработки!

🌟 Он позволяет сравнивать ветки, коммиты или локальные файлы с использованием интеллектуальных алгоритмов, предоставляя удобную визуализацию изменений. DiffDeck поддерживает множество форматов, включая Markdown, XML и MDX, что делает его гибким решением для проектов с разными требованиями. Инструмент также ориентирован на высокую производительность, особенно при работе с большими кодовыми базами.

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

🔐 Лицензия: MIT

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
👣 vgo — это инструмент для генерации базовой структуры проектов на языке Go, созданный с целью ускорить начальный этап разработки!

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

🔐 Лицензия: MIT

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 GoSearch

Мощный OSINT-инструмент для поиска цифровых следов и утечек паролей людей в различных социальных сетях, написанный на языке Go.

▪️ GitHub

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
👣 Zasper — это IDE, разработанная с нуля для поддержки массового параллелизма!

🌟 Она разработана на языке Go для обеспечения высокой параллельности и эффективности использования ресурсов. Zasper отличается низким потреблением памяти и процессора, позволяя работать с большими объемами данных на локальных машинах. Она доступен как в виде приложения Electron, так и как веб-приложение.

🔐 Лицензия: AGPL-3.0

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 wapi.go — библиотека на Go для создания приложений с использованием WhatsApp Business API!

🌟 Этот SDK упрощает интеграцию с WhatsApp, поддерживает работу с несколькими номерами телефонов, отправку сообщений, управление шаблонами сообщений, загрузку медиа и обработку вебхуков для получения уведомлений. Это инструмент для разработчиков, которые хотят быстро строить чат-ботов и приложения для бизнеса, использующие WhatsApp Cloud API.

🔐 Лицензия: AGPL-3.0

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 KeyPub — платформа для регистрации и верификации публичных SSH-ключей с их привязкой к адресам электронной почты!

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

🔐 Лицензия: MIT

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Mercure — это открытый протокол, предназначенный для удобной, быстрой, надежной и энергоэффективной передачи обновлений данных в веб-браузеры и другие HTTP-клиенты!

🌟 Он особенно полезен для публикации асинхронных и реальных обновлений ресурсов, предоставляемых через API, в реактивные веб и мобильные приложения.

🔐 Лицензия: AGPL-3.0

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Machinelearning
🦑 SQL Squid Game: 9 уровней. 1 работа Дата Сайентиста. Ваша жизнь на кону 🔫.

Развлечение на выходные - Игра в Кальмара с SQL. Это бесплатный образовательный тренажер по работе с БД, по мотивам Netflix's Squid Game, SQL Murder Mystery и других известных SQL-игр.

О чем игра?
Вы только что были приняты на работу в качестве Дата Сайентиста в загадочную организацию Squid Game.

Таинственный работодатель, управляющий игрой, пообещал вам полностью удаленную работу, на которой вы будете составлять промпты, работать с pandas и генеративным ИИ

Но, как это обычно бывает в индустрии данных, вас подставили и обманули.

Оказалось, что работа связана с аналитикой данных на SQL, а работа не полностью удаленная, а гибридная: 5 дней в офисе, а 2 дня удаленно.

Не успели вы отказаться от работы , как работодатель приставил к вашей голове пистолет и начал требовать ответов на различные бизнес-вопросы.

Вы должны написать SQL-запросы, чтобы ответить ему - иначе вас ждет печальный конец 💀

📌 Как играть

- На каждом уровне вам будут даны задачи, а также одна или несколько таблиц и их схема.

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

Каждый уровень становится сложнее.

PS: Для прохождения SQL Squid Games, вам нужно хорошо знать SQL.А если хотите освежить свои знания или выучить SQL с нуля, вот 33 интерактивных уроков от Datalemur.

📲 Начать игру

@ai_machinelearning_big_data


#sql #tutorial #educationalgame