Warning: Undefined array key 0 in /var/www/tgoop/function.php on line 65

Warning: Trying to access array offset on value of type null in /var/www/tgoop/function.php on line 65
204 - Telegram Web
Telegram Web
#статьи
😊 Не допускайте сбоя: паттерн повторной попытки (Retry Pattern) в Go

Статья объясняет, как реализовать паттерн повторных попыток (retry) в Go для обработки временных сбоев — например, сетевых ошибок.

Описываются разные стратегии (фиксированная задержка, экспоненциальный бэкофф с джиттером) и дается пример универсального retry-механизма.
Читать

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#ЛитКод
Задача: 1518. Water Bottles

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

Операция питья полной бутылки воды превращает её в пустую бутылку.

Даны два целых числа numBottles и numExchange. Верните максимальное количество бутылок с водой, которые вы можете выпить.

Пример:
Input: numBottles = 9, numExchange = 3
Output: 13
Explanation: You can exchange 3 empty bottles to get 1 full water bottle.
Number of water bottles you can drink: 9 + 3 + 1 = 13.


👨‍💻 Алгоритм:

1️⃣ Инициализируйте переменную ответа consumedBottles значением 0.

2️⃣ Продолжайте выполнять следующие действия, пока количество numBottles больше или равно numExchange:
— Выпейте numExchange количество полных бутылок, т.е. добавьте numExchange к consumedBottles.
— Уменьшите numExchange от доступных полных бутылок numBottles.
— Обменяйте пустые бутылки на одну полную бутылку, т.е. увеличьте numBottles на одну.

3️⃣ Верните consumedBottles + numBottles.

😎 Решение🐍
func numWaterBottles(numBottles int, numExchange int) int {
consumedBottles := 0

for numBottles >= numExchange {
consumedBottles += numExchange
numBottles -= numExchange
numBottles++
}

return consumedBottles + numBottles
}


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #redis
🤔 Основные различия между RDB и AOF.

RDB (Redis Database): Создаёт периодические снимки данных. Подходит для быстрого восстановления, но может привести к потере данных, изменённых после последнего снимка.
AOF (Append Only File) : Логирует каждую операцию записи. Гарантирует минимальные потери данных, но работает медленнее и создаёт более крупные файлы.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Инструмент, который сканирует указанные организации или учетные записи пользователей на GitHub в поиске публичных Go-модулей, парсит их прямые зависимости из файлов go.mod и генерирует граф зависимостей в формате DOT или топологически отсортированный список
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👨‍💻 Функционально насыщенный, быстрый и гибкий контроллер входящего трафика, нативный для Kubernetes, и шлюз API следующего поколения, построенный на базе Envoy, реализованный на Go.
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
🤓 Объяснение CPU requests и limits в контейнерах с настройкой GOMAXPROCS

Одна из самых интересных статей, которые я читал в последнее время

В ней объясняется:

🟠Как на самом деле работают CPU requests и limits, включая внутренние механизмы

🟠Почему установка GOMAXPROCS важна для Go-приложений, работающих в контейнеризованных средах

🟠Как на самом деле работает uber-go/automaxprocs

🟠Какие метрики можно использовать, чтобы определить, подвергается ли контейнер throttling'у
Читать

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #redis
🤔 Объясните концепцию транзакций в Redis.

Транзакции в Redis позволяют выполнять группу команд как единое целое. С помощью команд MULTI, EXEC, DISCARD И WATCH можно гарантировать, что все команды либо выполняются успешно, либо не выполняются вовсе. Это обеспечивает целостность данных без традиционных механизмов, таких как откаты операций.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
😬 Использование сигналов в Go

Статья рассказывает, как обрабатывать системные сигналы в Go с помощью пакета os/signal: как подписываться на сигналы (например, SIGINT при Ctrl+C), зачем это нужно (например, для graceful shutdown), и как отключить обработку сигналов с помощью signal.Stop
Читать

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🛞 Утилита для парсинга лог-файлов в форматах Common и Combined Log Format (CLF) и сохранения их в SQLite для последующего анализа. Разработана с учетом конкурентности.
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Dbmate — инструмент для миграций БД без привязки к языку.

Это самодостаточный бинарник, который не требует интеграции с конкретным фреймворком и одинаково хорошо работает с Go.

Главная фишка Dbmate — простота. Вместо сложных DSL миграции пишутся на чистом SQL, а для подключения к БД используется привычное DATABASE_URL. При этом инструмент не забывает о важных деталях: атомарности выполнения, версионировании по времени и возможности быстрого создания/удаления тестовых БД.
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #redis
🤔 Как обеспечить устойчивость данных в Redis?

Redis поддерживает два механизма сохранения данных: - RDB (Redis Database Backups): Создание моментальных снимков данных через определённые интервалы времени.
- AOF (Append Only File): Запись каждой операции изменения данных в лог, который может быть воспроизведён для восстановления.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😎 gRPC в Go: Потоковые RPC, перехватчики и метаданные

Это самое полное базовое руководство, охватывающее типы RPC, перехватчики, заголовки, трейлеры и многое другое
Тык сюда

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👍 "Go Docs Syntax Highlighter" - это полезное для Гоферов Chrome расширение, которое
добавляет синтаксическую подсветку (раскрашивает ключевые слова, типы данных, строки, комментарии и т.д.) к блокам кода Go на различных сайтах и документах.

Расширение делает примеры кода значительно более наглядными и легкими для восприятия.
Скачать

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#ЛитКод
Задача: 643. Maximum Average Subarray I

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

Пример:
Input: nums = [1,12,-5,-6,50,3], k = 4
Output: 12.75000


👨‍💻 Алгоритм:

1⃣Инициализация скользящего окна
Вычислите сумму первых k элементов массива nums. Это будет начальное значение максимальной суммы.

2⃣Перемещение окна
Перемещайте окно длиной k по массиву, добавляя следующий элемент и убирая предыдущий, чтобы поддерживать сумму текущего окна.

3⃣Обновление максимальной суммы
На каждом шаге обновляйте максимальную сумму, если текущая сумма больше, и в конце верните среднее значение этой суммы.

😎 Решение:
package main

func findMaxAverage(nums []int, k int) float64 {
currentSum := 0
for i := 0; i < k; i++ {
currentSum += nums[i]
}
maxSum := currentSum

for i := k; i < len(nums); i++ {
currentSum += nums[i] - nums[i - k]
if currentSum > maxSum {
maxSum = currentSum
}
}

return float64(maxSum) / float64(k)
}


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #redis
🤔 Что такое Pub/Sub в Redis?

Pub/Sub — это механизм обмена сообщениями в Redis, где издатели (publishers) отправляют сообщения в каналы, а подписчики (subscribers), подписанные на эти каналы, получают их. Этот механизм используется для реализации систем реального времени, таких как чаты, уведомления или системы трансляции данных.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👋 depgraph

Инструмент для анализа зависимостей Go-модулей (на GitHub).

Что делает:
🟠 Сканирует указанные GitHub-аккаунты или организации
🟠 Ищет публичные репозитории с Go-кодом
🟠 Читает их go.mod файлы (в них указаны зависимости)
🟠 Строит граф зависимостей между модулями

Выводит:
Граф зависимостей в формате DOT (можно визуализировать через Graphviz)

Или топологическую сортировку — порядок, в котором модули зависят друг от друга (например, для правильной сборки)

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

go install github.com/ldemailly/depgraph@latest
Github

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤯 mcp-golang — это реализация Model Context Protocol (MCP) на языке Go, предназначенная для быстрой разработки серверов MCP!

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

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
❤️‍🔥 Лёгкая очередь сообщений, реализованная на Go, с поддержкой SQLite, PostgreSQL и ORM в качестве постоянного хранилища
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #redis
🤔 Может ли Redis использоваться в многопоточных приложениях, и как он обрабатывает конкурентность?

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

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😱 Ninjabot — фреймворк для алгоритмического трейдинга на крипторынке, написанный на Go.

Он позволяет тестировать стратегии на исторических данных и запускать их в реальной торговле на Binance (спот и фьючерсы).

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

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2025/06/30 11:35:45
Back to Top
HTML Embed Code: