#полезное
🫠 Jessy — ультрабыстрая JSON-библиотека для Go
✅ Поддержка новых map на базе Swiss Table
✅ Тег omitzero для пропуска нулевых значений
✅ Интерфейсы TextAppender и JsonAppender
✅ Ускоренный Unmarshal через jessy.UnmarshalTrusted
✅ Кастомные энкодеры: AddValueEncoder, AddUnsafeEncoder
Как это работает:
При первом проходе Jessy анализирует тип, и запоминает стек вызовов для каждого поля и всех возможных ветвлений.
Дальнейшая работа — просто прямой маршаллинг из памяти, без лишней логики.
Подходит для high-load систем, realtime-сервисов и микросервисной архитектуры.
Jessy — не просто быстрее. Быстрее всех.
Главное отличие от конкурентов
Поддержка новых версий Go, минимальный overhead, никакой автогенерации и никакого ассемблера.
Гитхаб
👉 Новости 👉 База вопросов
Как это работает:
При первом проходе Jessy анализирует тип, и запоминает стек вызовов для каждого поля и всех возможных ветвлений.
Дальнейшая работа — просто прямой маршаллинг из памяти, без лишней логики.
Подходит для high-load систем, realtime-сервисов и микросервисной архитектуры.
Jessy — не просто быстрее. Быстрее всех.
Главное отличие от конкурентов
Поддержка новых версий Go, минимальный overhead, никакой автогенерации и никакого ассемблера.
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
#полезное
🥺 brewkit — инструмент для контейнеризации сборки приложений.
Инструмент основан на движке BuildKit и дополняет его полезными фишками:
🟠 "Агрессивное" кеширование всех этапов сборки;
🟠 Простой формат конфигурации в JSONNET.
Главное преимущество brewkit в том, что сборка полностью независима от платформы и не требует дополнительно устанавливать на хосте все необходимые компиляторы, кодогенераторы, линтеры и т.д., ведь всё подтягивается из Docker-образов.
Проект — open-source разработка компании iSpring, в которой он повсеместно используется для сборки приложений на Go, как локально, так и в CI/CD.
GitHub
👉 Новости 👉 База вопросов
Инструмент основан на движке BuildKit и дополняет его полезными фишками:
Главное преимущество brewkit в том, что сборка полностью независима от платформы и не требует дополнительно устанавливать на хосте все необходимые компиляторы, кодогенераторы, линтеры и т.д., ведь всё подтягивается из Docker-образов.
Проект — open-source разработка компании iSpring, в которой он повсеместно используется для сборки приложений на Go, как локально, так и в CI/CD.
go install github.com/ispringtech/brewkit/cmd/brewkit@latest
GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #kubernetes
🤔 Что такое API Server в Kubernetes?
API Server - это центральный компонент Kubernetes, который обрабатывает команды пользователей и взаимодействует с другими компонентами кластера. Он принимает запросы от
👉 Новости 👉 База вопросов
API Server - это центральный компонент Kubernetes, который обрабатывает команды пользователей и взаимодействует с другими компонентами кластера. Он принимает запросы от
kubectl
, контроллеров и сервисов, а затем изменяет состояние кластера.Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
👍 Golang sync.Pool — не серебряная пуля
Когда речь заходит об оптимизации производительности в Go, sync.Pool часто выглядит как заманчивое решение. Он обещает сократить количество аллокаций памяти и снизить нагрузку на сборщик мусора за счёт повторного использования объектов. Но всегда ли это правильный выбор? Давайте углубимся в эту интересную тему.
Читать
👉 Новости 👉 База вопросов
Когда речь заходит об оптимизации производительности в Go, sync.Pool часто выглядит как заманчивое решение. Он обещает сократить количество аллокаций памяти и снизить нагрузку на сборщик мусора за счёт повторного использования объектов. Но всегда ли это правильный выбор? Давайте углубимся в эту интересную тему.
Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👨💻 NATS.go — клиент для облачного обмена сообщениями на Go. Официальный Go-клиент от команды NATS.io предоставляет простой интерфейс для работы — от базовой pub/sub до персистентных JetStream-сообщений.
Достаточно трёх строк кода, чтобы подписаться на топик и обрабатывать сообщения асинхронно. Клиент поддерживает все фишки NATS: wildcard-подписки, TLS-аутентификацию и даже сервисный API для создания микросервисов.
Гитхаб
👉 Новости 👉 База вопросов
Достаточно трёх строк кода, чтобы подписаться на топик и обрабатывать сообщения асинхронно. Клиент поддерживает все фишки NATS: wildcard-подписки, TLS-аутентификацию и даже сервисный API для создания микросервисов.
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
❤️🔥 Stateless Postgres Query Router — это система шардирования для PostgreSQL-кластера, доступная с открытым исходным кодом. Её основной компонент, роутер, анализирует запросы и определяет, на каком конкретном PostgreSQL-кластере следует выполнить транзакцию или запрос.
Ключи шардирования могут передаваться в запросе как явно, так и неявно, в виде комментариев.
В SPQR реализованы функции транзакционного и сессионного пулинга, автобалансировки шардированных таблиц, а также поддержка всех возможных методов аутентификации, сбора статистики и динамической перезагрузки конфигурации.
SPQR поддерживает как запросы к определённому шарду, так и запросы ко всем шардам. В ближайших планах — добавить поддержку двухфазных транзакций и референсных таблиц.
Исходный код SPQR распространяется под лицензией PostgreSQL Global Development Group
Ссылки:
🟠 https://github.com/pg-sharding/spqr
🟠 https://pg-sharding.tech/
👉 Новости 👉 База вопросов
Ключи шардирования могут передаваться в запросе как явно, так и неявно, в виде комментариев.
В SPQR реализованы функции транзакционного и сессионного пулинга, автобалансировки шардированных таблиц, а также поддержка всех возможных методов аутентификации, сбора статистики и динамической перезагрузки конфигурации.
SPQR поддерживает как запросы к определённому шарду, так и запросы ко всем шардам. В ближайших планах — добавить поддержку двухфазных транзакций и референсных таблиц.
Исходный код SPQR распространяется под лицензией PostgreSQL Global Development Group
Ссылки:
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #kubernetes
🤔 Что такое управляющая плоскость (Control Plane Kubernetes?
Control Plane - это набор компонентов, которые управляют кластером Kubernetes. В него входят API Server, etcd, Scheduler и Controller Manager. Эти компоненты отвечают за обработку запросов, хранение данных о состоянии кластера, распределение нагрузок и контроль за работой узлов.
👉 Новости 👉 База вопросов
Control Plane - это набор компонентов, которые управляют кластером Kubernetes. В него входят API Server, etcd, Scheduler и Controller Manager. Эти компоненты отвечают за обработку запросов, хранение данных о состоянии кластера, распределение нагрузок и контроль за работой узлов.
Please open Telegram to view this post
VIEW IN TELEGRAM
#ЛитКод
Задача: 645. Set Mismatch
У вас есть набор целых чисел s, который изначально содержит все числа от 1 до n. К сожалению, из-за какой-то ошибки одно из чисел в s продублировалось в другое число в наборе, что привело к повторению одного числа и потере другого. Вам дан целочисленный массив nums, представляющий состояние данных в этом наборе после ошибки. Найдите число, которое встречается дважды, и число, которое отсутствует, и верните их в виде массива.
Пример:
👨💻 Алгоритм:
1⃣ Пройдите по массиву, используя набор для отслеживания чисел, чтобы определить дублированное число.
2⃣ Определите отсутствующее число, используя сумму чисел от 1 до n и текущую сумму массива.
3⃣ Верните дублированное и отсутствующее числа в виде массива.
😎 Решение:
👉 Новости 👉 База вопросов
Задача: 645. Set Mismatch
У вас есть набор целых чисел s, который изначально содержит все числа от 1 до n. К сожалению, из-за какой-то ошибки одно из чисел в s продублировалось в другое число в наборе, что привело к повторению одного числа и потере другого. Вам дан целочисленный массив nums, представляющий состояние данных в этом наборе после ошибки. Найдите число, которое встречается дважды, и число, которое отсутствует, и верните их в виде массива.
Пример:
Input: nums = [1,2,2,4]
Output: [2,3]
func findErrorNums(nums []int) []int {
numSet := make(map[int]bool)
duplicate := -1
n := len(nums)
for _, num := range nums {
if numSet[num] {
duplicate = num
}
numSet[num] = true
}
sum := 0
for num := range numSet {
sum += num
}
missing := (n * (n + 1)) / 2 - sum
return []int{duplicate, missing}
}
Please open Telegram to view this post
VIEW IN TELEGRAM
LeetCode
Set Mismatch - LeetCode
Can you solve this real interview question? Set Mismatch - You have a set of integers s, which originally contains all the numbers from 1 to n. Unfortunately, due to some error, one of the numbers in s got duplicated to another number in the set, which results…
#полезное
🛞 RoadRunner — высокопроизводительный application server на Go. Этот проект заменяет связку Nginx+PHP-FPM, позволяя запускать PSR-7-совместимые приложения с поддержкой HTTP/3, WebSockets и даже Temporal workflow.
Конфигурация через
GitHub
👉 Новости 👉 База вопросов
Конфигурация через
.rr.yaml
напоминает docker-compose: можно подключать очереди, кеш и метрики как плагины. Рабочие процессы PHP остаются в памяти, что даёт до 10x прирост скорости против традиционного FPM. Особенно радует встроенная система мониторинга и автоматические рестарты упавших воркеров. GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤓 OneUptime — open-source-платформа для мониторинга всего и сразу. Этот инструмент предлагает готовый комплект: от мониторинга uptime до управления инцидентами. Редкий случай, когда open-source-проект не уступает коммерческим аналогам по функционалу.
Особенность проекта в глубокой интеграция компонентов. Например, при падении сервиса система автоматически создаёт инцидент, уведомляет ответственных через эскалацию и обновляет статус-страницу. Есть даже встроенный APM с трейсами и метриками производительности. Развернуть можно на Kubernetes или через Docker Compose.
Гитхаб
👉 Новости 👉 База вопросов
Особенность проекта в глубокой интеграция компонентов. Например, при падении сервиса система автоматически создаёт инцидент, уведомляет ответственных через эскалацию и обновляет статус-страницу. Есть даже встроенный APM с трейсами и метриками производительности. Развернуть можно на Kubernetes или через Docker Compose.
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #kubernetes
🤔 Что такое Pod в Kubernetes?
Pod - это наименьшая развертываемая единица в Kubernetes, представляющая собой один или несколько контейнеров, работающих вместе. Контейнеры внутри Pod-а разделяют сеть и файловую систему, что позволяет им взаимодействовать друг с другом. Kubernetes управляет Pod-ами, назначая их узлам (nodes) и обеспечивая их работу.
👉 Новости 👉 База вопросов
Pod - это наименьшая развертываемая единица в Kubernetes, представляющая собой один или несколько контейнеров, работающих вместе. Контейнеры внутри Pod-а разделяют сеть и файловую систему, что позволяет им взаимодействовать друг с другом. Kubernetes управляет Pod-ами, назначая их узлам (nodes) и обеспечивая их работу.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😎 Важные аспекты при использовании пакета
При работе со значениями времени в Go одной из самых распространённых операций является сравнение двух временных меток.
Однако эта на первый взгляд простая задача может привести к скрытым ошибкам, если не учитывать разницу между использованием оператора сравнения == и методом
👉 Новости 👉 База вопросов
time
в Go 9/10При работе со значениями времени в Go одной из самых распространённых операций является сравнение двух временных меток.
Однако эта на первый взгляд простая задача может привести к скрытым ошибкам, если не учитывать разницу между использованием оператора сравнения == и методом
Equal()
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🛞 Ужасно подробные ошибки в API: пишем на Go инструмент для работы с ними
Меня зовут Александр Лырчиков, я разрабатываю систему хранения данных TATLIN.UNIFIED в YADRO. СХД — сложная система, и, если при работе произошла ошибка, она должна своевременно и понятно сообщать пользователю об этом. В большинстве веб-сервисов для этого используют баннер с надписью «Что-то пошло не так», но такой способ уведомления нам не подходит.
Мы столкнулись с проблемой, когда переданных сообщений и HTTP-кодов уже не хватает. Поэтому разработали собственный инструмент для обработки ошибок Terror (TATLIN + error). В результате работа с кодом стала проще, мы получили красивый API, а пользователи — понятное описание ошибки и локализацию текста на разные языки. В этой статье расскажу, как мы создавали Terror, чтобы вы смогли повторить решение.
Хабр
👉 Новости 👉 База вопросов
Меня зовут Александр Лырчиков, я разрабатываю систему хранения данных TATLIN.UNIFIED в YADRO. СХД — сложная система, и, если при работе произошла ошибка, она должна своевременно и понятно сообщать пользователю об этом. В большинстве веб-сервисов для этого используют баннер с надписью «Что-то пошло не так», но такой способ уведомления нам не подходит.
Мы столкнулись с проблемой, когда переданных сообщений и HTTP-кодов уже не хватает. Поэтому разработали собственный инструмент для обработки ошибок Terror (TATLIN + error). В результате работа с кодом стала проще, мы получили красивый API, а пользователи — понятное описание ошибки и локализацию текста на разные языки. В этой статье расскажу, как мы создавали Terror, чтобы вы смогли повторить решение.
Хабр
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2❤1
#статьи
🥺 Централизованная обработка HTTP-ошибок в Go
Статья от Алексиса Буше предлагает простой и эффективный способ централизовать обработку ошибок в HTTP-хендлерах на Go, чтобы избежать повторяющегося кода и улучшить читаемость.
Основная идея проста: изменить обработчики так, чтобы они возвращали ошибки, а не обрабатывали их напрямую.
Полный текст статьи с примерами кода доступен на сайте автора
👉 Новости 👉 База вопросов
Статья от Алексиса Буше предлагает простой и эффективный способ централизовать обработку ошибок в HTTP-хендлерах на Go, чтобы избежать повторяющегося кода и улучшить читаемость.
Основная идея проста: изменить обработчики так, чтобы они возвращали ошибки, а не обрабатывали их напрямую.
Полный текст статьи с примерами кода доступен на сайте автора
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Собес #kubernetes
🤔 Что такое узел (node) в Kubernetes?
Узел (node) - это сервер в кластере Kubernetes, который выполняет контейнеры. Он может быть физическим или виртуальным. В каждом узле работает агент
👉 Новости 👉 База вопросов
Узел (node) - это сервер в кластере Kubernetes, который выполняет контейнеры. Он может быть физическим или виртуальным. В каждом узле работает агент
kubelet
, который управляет Pod-ами и взаимодействует с управляющей плоскостью кластера. Узлы объединяются в кластер для совместной работы и балансировки нагрузки.Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
#полезное
😇 Stoolap — лёгкая и быстрая SQL-база данных на чистом Go без зависимостей
Stoolap — это современный HTAP-движок (Hybrid Transactional/Analytical Processing), сочетающий OLTP и OLAP в одном ядре. Подходит как для транзакционных задач, так и для аналитики.
🚩 Возможности:
• Полностью написан на Go — никаких внешних зависимостей
• ACID-транзакции через MVCC
• Колонковое хранение с SIMD-ускорением
• Поддержка SQL: JOIN, агрегаты, оконные функции
• Встроенный тип JSON
• Поддержка
• CLI-режим и in-memory база
Установка:
Быстрый старт (CLI):
Репозиторий: https://github.com/stoolap/stoolap
Сайт: https://stoolap.io
👉 Новости 👉 База вопросов
Stoolap — это современный HTAP-движок (Hybrid Transactional/Analytical Processing), сочетающий OLTP и OLAP в одном ядре. Подходит как для транзакционных задач, так и для аналитики.
• Полностью написан на Go — никаких внешних зависимостей
• ACID-транзакции через MVCC
• Колонковое хранение с SIMD-ускорением
• Поддержка SQL: JOIN, агрегаты, оконные функции
• Встроенный тип JSON
• Поддержка
database/sql
и интеграция с GORM • CLI-режим и in-memory база
Установка:
go get github.com/stoolap/stoolap
Быстрый старт (CLI):
stoolap -db memory://
Репозиторий: https://github.com/stoolap/stoolap
Сайт: https://stoolap.io
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#полезное
👍 Мощный уровень автоматизации, построенный поверх FFmpeg — разработан для того, чтобы сделать перекодирование видео и аудио проще, умнее и удобнее для интеграции.
Гитхаб
👉 Новости 👉 База вопросов
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#полезное
📞 Обрабатывайте 8 байт за раз, используя старую технику под названием Simd Within a Register (SWAR), на Go
Гитхаб
👉 Новости 👉 База вопросов
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Собес #kubernetes
🤔 Что такое кластер Kubernetes?
Кластер Kubernetes - это группа узлов (серверов), на которых запускаются контейнеризированные приложения. В кластере есть управляющий компонент (control plane) и рабочие узлы (worker nodes), которые выполняют контейнеры. Kubernetes управляет кластером, обеспечивая автоматическое развертывание, масштабирование и балансировку нагрузки.
👉 Новости 👉 База вопросов
Кластер Kubernetes - это группа узлов (серверов), на которых запускаются контейнеризированные приложения. В кластере есть управляющий компонент (control plane) и рабочие узлы (worker nodes), которые выполняют контейнеры. Kubernetes управляет кластером, обеспечивая автоматическое развертывание, масштабирование и балансировку нагрузки.
Please open Telegram to view this post
VIEW IN TELEGRAM
YeaHub
YeaHub — тренажер собеседований по IT
5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
👍1
#полезное
👋 godump — удобный Go-инструмент для дампа объектов в читаемом виде
Инструмент помогает красиво и наглядно выводить внутреннее содержимое структур, карт, срезов и других объектов.
Что умеет godump:
• Красиво форматирует вложенные структуры и срезы
• Поддерживает карты, интерфейсы, указатели, циклы
• Вывод в цвете (ANSI) и с отступами
• Умеет обходить циклические ссылки
• Простой API:
Отлично подходит для:
🟠 Отладки и логирования сложных структур
🟠 Инспекции JSON-данных после анмаршалинга
🟠 Быстрой визуальной проверки содержимого без IDE
Пример использования:
Установка:
Гитхаб
Если
👉 Новости 👉 База вопросов
godump
— это мощная альтернатива fmt.Printf("%#v")
и spew.Dump
для Go-разработчиков. Инструмент помогает красиво и наглядно выводить внутреннее содержимое структур, карт, срезов и других объектов.
Что умеет godump:
• Красиво форматирует вложенные структуры и срезы
• Поддерживает карты, интерфейсы, указатели, циклы
• Вывод в цвете (ANSI) и с отступами
• Умеет обходить циклические ссылки
• Простой API:
godump.Dump(anyObject)
Отлично подходит для:
Пример использования:
import "github.com/goforj/godump"
type User struct {
Name string
Tags []string
}
func main() {
user := User{"Alice", []string{"dev", "golang"}}
godump.Dump(user)
}
Установка:
go get github.com/goforj/godump
Гитхаб
Если
fmt.Println
уже не справляется — попробуй godump
. Красиво. Быстро. Глубоко.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1🔥1