This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
🤓 Go-Package-Manager — легкий менеджер пакетов для Go-проектов без go.mod
Что это такое?
Go-Package-Manager (GPM) — это минималистичный менеджер пакетов для Go, который:
🟠 копирует зависимости напрямую в папку
🟠 поддерживает установку с GitHub, Gist, Bitbucket и GitLab
🟠 позволяет собирать и запускать проект без конфликта с
Основные команды:
🟣
🟣
🟣
🟣
Пример
Кому будет полезно?
• Новичкам, которые не хотят сразу погружаться в
• Тем, кто работает над однострочными утилитами или экспериментальными скриптами
• Для старых проектов без модулей или в нестандартных окружениях
Репозиторий
👉 Новости 👉 База вопросов
Что это такое?
Go-Package-Manager (GPM) — это минималистичный менеджер пакетов для Go, который:
pkg/
go.mod
Основные команды:
gpm get [repo]
— загрузка зависимости gpm run [main.go]
— сборка и запуск проекта gpm install
— установка всех зависимостей из packages.yaml
gpm clean
— очистка всех пакетовПример
packages.yaml
:
packages:
- github.com/some/package
- gitlab.com/another/dep
Кому будет полезно?
• Новичкам, которые не хотят сразу погружаться в
go mod
• Тем, кто работает над однострочными утилитами или экспериментальными скриптами
• Для старых проектов без модулей или в нестандартных окружениях
Репозиторий
Please open Telegram to view this post
VIEW IN TELEGRAM
#новости
👨💻 Вышел Pion WebRTC v4.1.0 — стабильная поддержка полного AV1, передача больших сообщений через DataChannels и RTP-пейлоадер для H.265
Гитхаб
👉 Новости 👉 База вопросов
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
Release v4.1.0 · pion/webrtc
Pion v4.1.0
New release schedule – a fresh minor version will ship on the last weekend of every month.
AV1 support is complete and stable.
Data Channels now handle payloads larger than 65 535 byte...
New release schedule – a fresh minor version will ship on the last weekend of every month.
AV1 support is complete and stable.
Data Channels now handle payloads larger than 65 535 byte...
#Собес #kubernetes
🤔 Что такое etcd в Kubernetes?
etcd - это распределённое, надёжное хранилище ключ-значение, в котором Kubernetes хранит всю информацию о кластере. Оно гарантирует консистентность данных и обеспечивает отказоустойчивость.
👉 Новости 👉 База вопросов
etcd - это распределённое, надёжное хранилище ключ-значение, в котором Kubernetes хранит всю информацию о кластере. Оно гарантирует консистентность данных и обеспечивает отказоустойчивость.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🛞 Boulder — реализация ACME-совместимого центра сертификации, автоматически проверяющего владение доменом и выпускающего TLS-сертификаты. Именно на нём работает Let’s Encrypt, бесплатно обеспечивая шифрование для миллионов сайтов.
Проект разделён на компоненты: Web Frontend, Registration Authority, Certificate Authority и другие, что позволяет изолировать критичные части системы. Внутри — строгая логика на основе объектов ACME: аккаунтов, авторизаций и сертификатов. Для связи между модулями используется gRPC, а для разработки — Docker-окружение с полным набором зависимостей.
Гитхаб
👉 Новости 👉 База вопросов
Проект разделён на компоненты: Web Frontend, Registration Authority, Certificate Authority и другие, что позволяет изолировать критичные части системы. Внутри — строгая логика на основе объектов ACME: аккаунтов, авторизаций и сертификатов. Для связи между модулями используется gRPC, а для разработки — Docker-окружение с полным набором зависимостей.
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🫠 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
#полезное
🥺 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
#статьи
🥺 Централизованная обработка HTTP-ошибок в Go
Статья от Алексиса Буше предлагает простой и эффективный способ централизовать обработку ошибок в HTTP-хендлерах на Go, чтобы избежать повторяющегося кода и улучшить читаемость.
Основная идея проста: изменить обработчики так, чтобы они возвращали ошибки, а не обрабатывали их напрямую.
Полный текст статьи с примерами кода доступен на сайте автора
👉 Новости 👉 База вопросов
Статья от Алексиса Буше предлагает простой и эффективный способ централизовать обработку ошибок в HTTP-хендлерах на Go, чтобы избежать повторяющегося кода и улучшить читаемость.
Основная идея проста: изменить обработчики так, чтобы они возвращали ошибки, а не обрабатывали их напрямую.
Полный текст статьи с примерами кода доступен на сайте автора
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #kubernetes
🤔 Что такое узел (node) в Kubernetes?
Узел (node) - это сервер в кластере Kubernetes, который выполняет контейнеры. Он может быть физическим или виртуальным. В каждом узле работает агент
👉 Новости 👉 База вопросов
Узел (node) - это сервер в кластере Kubernetes, который выполняет контейнеры. Он может быть физическим или виртуальным. В каждом узле работает агент
kubelet
, который управляет Pod-ами и взаимодействует с управляющей плоскостью кластера. Узлы объединяются в кластер для совместной работы и балансировки нагрузки.Please open Telegram to view this post
VIEW IN TELEGRAM