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
82 - Telegram Web
Telegram Web
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😊 Go-клиент для API Deepseek — простой, полноценный, надёжный и производительный.
Гитхаб

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 EzBookkeeping
Это приложение для ведения личных финансов с открытым исходным кодом, предназначенное для самостоятельного хостинга!

🟠 Оно поддерживает работу с базами данных SQLite, MySQL и PostgreSQL, а также развертывание через Docker. Приложение адаптировано для работы как на десктопах, так и на мобильных устройствах, обеспечивая удобный пользовательский интерфейс.
Гитхаб

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Как устроены контексты в Go?

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

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
100 ошибок Go.pdf
6.8 MB
#книги
100 ошибок Go и как их избежать

Автор: Харшани Тейва
Год: 2024

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#новости
😊 Приятное улучшение качества жизни в Go 1.24

Команда go build теперь устанавливает версию главного модуля (BuildInfo.Main.Version) в скомпилированном бинарнике на основе тега или коммита из системы контроля версий.

Если есть несохранённые изменения, добавляется суффикс +dirty

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
#видео
🛞 Выжимаем из Go максимум производительности / Никита Галушко (VK, ВКонтакте)

Этот доклад о том, как писать код на Go так, чтобы выжимать максимум производительности.
Смотреть ютуб

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Зачем нужны транзакции?

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

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤯 Minecraft from scratch

Этот проект представляет собой клон Minecraft, разработанный «с нуля» на Go с использованием только современного OpenGL.

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

Основные возможности проекта
🟠 Процедурная генерация мира
Используется многократно применяемый Perlin noise для создания бесконечного, процедурно генерируемого ландшафта. Присутствует система биомов, генерация пещер, деревьев и даже простейших систем формирования рельефа.

🟠 Физический движок
Реализована своя физика с обнаружением столкновений, обработкой столкновений и динамикой твердых тел. Это позволяет корректно обрабатывать прыжки, столкновения игрока с окружающими объектами и другие физические взаимодействия.

🟠 Графика и рендеринг
Приложение написано с использованием OpenGL 4.1. Реализованы собственные шейдерные программы для отрисовки блоков, UI-элементов и эффектов, а также применяются методы отсечения (view frustum culling) для оптимизации рендеринга.

🟠 Игровой цикл и механика
В проекте присутствует смена дня и ночи, динамическое освещение, а также возможность размещения и удаления блоков, что имитирует базовую механику игры Minecraft. Также предусмотрены такие элементы, как инвентарь игрока и режим полёта.

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

Архитектура
Код организован по принципу компонентного подхода:

🔴 World и World Generator отвечают за генерацию чанков, ландшафта и размещение объектов (деревьев, пещер и т.д.).
🔴 Physics Engine содержит реализацию динамики, обработки столкновений и расчётов движения.
Рендеринг: система отрисовки, которая включает шейдеры, оптимизацию через отсечение невидимых объектов и поддержку динамического освещения.
🔴 Система управления включает обработку ввода с клавиатуры и мыши, что позволяет управлять персонажем, переключать режимы (например, полёта) и взаимодействовать с миром.
Гитхаб

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#ЛитКод
Задача: 639. Decode Ways II

Сообщение, содержащее буквы от A-Z, может быть закодировано в цифры с помощью следующего отображения: 'A' -> "1" 'B' -> "2" ... 'Z' -> "26" Чтобы декодировать закодированное сообщение, все цифры должны быть сгруппированы, а затем снова преобразованы в буквы с помощью обратного отображения (может быть несколько способов). Например, "11106" может быть преобразовано в: "AAJF" с группировкой (1 1 10 6) "KJF" с группировкой (11 10 6) Обратите внимание, что группировка (1 11 06) недействительна, поскольку "06" не может быть преобразовано в "F", так как "6" отличается от "06". В дополнение к вышеуказанным преобразованиям кодированное сообщение может содержать символ "*", который может представлять любую цифру от "1" до "9" ("0" исключается). Например, кодированное сообщение "1*" может представлять любое из кодированных сообщений "11", "12", "13", "14", "15", "16", "17", "18" или "19". Декодирование "1*" эквивалентно декодированию любого из кодированных сообщений, которые оно может представлять. Если задана строка s, состоящая из цифр и символов '*', верните количество способов ее декодирования. Поскольку ответ может быть очень большим, верните его по модулю 109 + 7.

Пример:
Input: s = "*"
Output: 9


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

1⃣Инициализация
Создайте массив dp, где dp[i] представляет количество способов декодирования подстроки s[0:i]. Установите начальные значения dp[0] = 1 (пустая строка имеет один способ декодирования).

2⃣Обход строки
Используйте цикл для обхода строки и вычисления количества способов декодирования для каждого символа, включая обработку символа '*'.

3⃣Модульное вычисление
Поскольку количество способов декодирования может быть большим, вычисляйте результаты по модулю 10^9 + 7.

😎 Решение:
package main

import (
"fmt"
)

func numDecodings(s string) int {
const MOD = 1000000007
n := len(s)
dp := make([]int, n+1)
dp[0] = 1

for i := 1; i <= n; i++ {
if s[i-1] == '*' {
dp[i] = 9 * dp[i-1]
} else if s[i-1] != '0' {
dp[i] = dp[i-1]
}

if i > 1 {
if s[i-2] == '*' {
if s[i-1] == '*' {
dp[i] += 15 * dp[i-2]
} else if s[i-1] >= '0' && s[i-1] <= '6' {
dp[i] += 2 * dp[i-2]
} else {
dp[i] += dp[i-2]
}
} else if s[i-2] == '1' {
if s[i-1] == '*' {
dp[i] += 9 * dp[i-2]
} else {
dp[i] += dp[i-2]
}
} else if s[i-2] == '2' {
if s[i-1] == '*' {
dp[i] += 6 * dp[i-2]
} else if s[i-1] >= '0' && s[i-1] <= '6' {
dp[i] += dp[i-2]
}
}
}

dp[i] %= MOD
}

return dp[n]
}


👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👍 Репозитории

Простое веб-приложение, которое демонстрирует случайные репозитории на GitHub, написанные на Go
Гитхаб

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 В чем разница процесса и потока в рамках операционной системы?

Процесс - это независимая программа, выполняющаяся в памяти, у которой есть собственное адресное пространство. Поток — это единица выполнения внутри процесса, которая использует общее адресное пространство. Потоки легче создавать и переключать, но процессы изолированы друг от друга.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤓 Google OAuth 2.0 в Go и React.js

OAuth 2.0 — популярный протокол аутентификации, который позволяет безопасно работать с аккаунтами Google. Сейчас разберём как настроить проект с его использованием.

🚩 Настройка Google Cloud:

Создайте OAuth-клиент в Google Cloud Console. Сохраните client_id и client_secret.

🚩 Бэкенд на Go:

🟡Используйте пакет golang.org/x/oauth2.

🟡Настройте маршруты: /login, /callback, /logout.

🟡Храните access_token и refresh_token в httpOnly cookies.

Пример

conf := &oauth2.Config{ClientID: "...", RedirectURL: "..."}
url := conf.AuthCodeURL("state")


🚩 Фронтенд на React:

🔵Создайте AuthProvider с контекстом.

🔵Настройте Axios-интерцепторы для обновления токенов:
axios.interceptors.response.use(resp => resp, async error => { ... });


🚩 Ошибки и нюансы:

🟣 Используйте httpOnly cookies для безопасности.

🟣 Не храните client_secret на фронтенде.

🟣 Обновляйте токены до их истечения, чтобы избежать разлогина пользователей.
Подробный гайд

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
😊 Параллельный шаблон потоковой обработки в Go: как значительно быстрее сканировать большие хранилища S3 или GCS

Статья объясняет, как ускорить перечисление файлов в S3 и GCS, используя параллельную обработку в Go.

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

В статье приводится пример реализации с библиотекой Rill, а также советы по настройке количества потоков для максимальной производительности.
Подробности здесь

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤓 Kong – мощный и удобный command-line парсер для Go

Если вы разрабатываете CLI-приложения на Go, то наверняка сталкивались с необходимостью поддерживать сложные иерархии команд с минимальными усилиями. Именно для этого создан Kong.

Основные преимущества
🟠 Поддержка сложных структур команд: Kong позволяет легко реализовать вложенные команды, флаги и аргументы, обеспечивая гибкость даже для очень сложных CLI-интерфейсов.
🟠 Минимальные усилия для разработчика: Благодаря декларативному синтаксису и использованию структур с тегами, настройка и расширение функционала осуществляется с минимальными затратами кода.
🟠 Автоматическая генерация справки: Инструмент автоматически формирует подробные сообщения о использовании (help), что упрощает поддержку и документацию вашего приложения.
🟠 Высокая производительность и надёжность: Kong спроектирован с учётом лучших практик Go-разработки, что делает его быстрым и стабильным решением для ваших проектов.

Разработка CLI-интерфейсов может быть утомительной, особенно когда требуется реализовать поддержку множества команд и опций.

Kong решает эту проблему, сводя настройку сложных структур к минимально необходимому коду, позволяя сконцентрироваться на бизнес-логике приложения.

Этот инструмент подойдёт как для небольших утилит, так и для крупных проектов, требующих продвинутого управления командами.
Гитхаб

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Как работает Select?

select в Go используется для выбора одного из доступных каналов, готовых к отправке или получению данных. Он блокируется до тех пор, пока хотя бы один канал не станет доступным, или выполняет случайный выбор, если доступно несколько каналов.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😇 Machbase Neo

Это высокопроизводительная база данных временных рядов, специально разработанная для приложений Интернета вещей (IoT)!

🟠 Она объединяет в себе функции хранения временных данных, поддержку протоколов MQTT и HTTP, а также инструменты для визуализации данных, что делает её универсальным решением для построения IoT-платформ.
Гитхаб

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
2025/07/04 11:01:32
Back to Top
HTML Embed Code: