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
495 - Telegram Web
Telegram Web
👣 Как сделать обработку ошибок в веб-приложениях на Go удобной.

В статье описан довольно элегантный паттерн обработки ошибок, при написании REST,gRPC и других сервисов на Go.

📌Читать

@golangprofi
Комбинация сумм II

Сложность: Средняя

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

Каждое число из списка кандидатов должно содержаться в конечном подсписке из ответов ровно один раз.

Результирующий ответ не должен содержать в себе дубликатов.

Пример:

Ввод:
candidates = [10,1,2,7,6,1,5], target = 8
Вывод: [
[1,1,6],
[1,2,5],
[1,7],
[2,6]
]

Ввод: candidates = [2,5,2,1,2], target = 5
Вывод: [
[1,2,2],
[5]
]

Пишите свое решение в комментариях👇

Решение
👣 Service

Начальный набор для создания веб-сервисов на Go с использованием возможностей Kubernetes.

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

▪️Github
▪️Docs

@golangprofi
Задача: Взлом замка

Условие: даётся замок, состоящий из четырёх вращающихся дисков, на каждом из которых имеется 10 цифр: от 0 до 9. При этом за раз можно перемещать только одно колесо и на одно значение.

Изначально замок находится на значении «0000».

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

Помимо этого даётся шифр открывающий замок, необходимо вычислить наименьшее число перемещений дисков механизма для открытия замка.

Пример:

Ввод:
deadends = ["0201","0101","0102","1212","2002"], target = "0202"
Вывод:
6
Объяснение:
последовательность, открывающая замок: "0000" -> "1000" -> "1100" -> "1200" -> "1201" -> "1202" -> "0202".

Решение задачи

Пишите свое решение в комментариях👇
This media is not supported in your browser
VIEW IN TELEGRAM
🎩 Enola Holmes

OSINT
инструмент, написанный на Go, который не поддерживает сбор и анализ информации по опреленном никнейму в сети.

Благодаря данному методу сбора можно построить цепочку всех упоминаний в интернете, в соц сетях, на сайтах и формумах.

go install github.com/theyahya/enola/cmd/enola@latest

▪️Github
👣 Clink - это HTTP-клиент со множеством конфигураций для Go, разработанный с учетом простоты использования, расширяемости и надежности.

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

go get -u github.com/davesavic/clink

▪️Github
▪️Примеры
Добавьте в свое портфолио кейс по решению задачи с микросервисной архитектурой бесплатно и всего за пару часов

На практическом уроке «Масштабируемая архитектура для систем обработки платежей».

На вебинаре:

- рассмотрим решение задачи по построению масштабируемой отказоустойчивой системы обработки платежей;
- обсудим применения шардирования, паттерна Saga, двухфазного коммита и выбор уровня изоляции транзакций;
- получим описание верхнеуровневой архитектуры.

Занятие пройдёт 24 апреля в 20:00 мск в рамках курса «Microservice Architecture». Доступна рассрочка на обучение!

Чтобы посетить открытый урок, зарегистрируйтесь: ссылка

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Что выведет код ?

package main

import "fmt"

func reverse(arr [6]int) {
for i, j := 0, len(arr)-1; i < j; i, j = i+1, j-1 {
arr[i], arr[j] = arr[j], arr[i]
}
}

func main() {
arr := [...]int{5: 0}
for i := 1; i < 5; i++ {
arr[i] = i + 1
}
reverse(arr)
fmt.Println(arr)
}

Решение
🖥 DBChaos

Проведите стресс-тестирование своей базе данных с помощью заранее заданных запросов.

Библиотека поможет найти медленные и неэффективные запросы, которые мешают работе.

go install github.com/adaptive-scale/dbchaos@v0.4.1

▪️Github
💡 Hamlet

Шаблонный движок Haml для Go.

Haml (язык абстрактной разметки HTML) основан на одном главном принципе: разметка должна быть красивой. Это не просто красота ради красоты: Haml ускоряет и упрощает создание шаблонов.

go install github.com/stackus/hamlet/cmd/hamlet@latest

▪️Github
▪️Документация Haml
👣 Gtkcord4

Gtkcord4 - клиент Discord на Go и GTK4.

go install -v github.com/diamondburned/gtkcord4@latest

▪️Github
Задача с Leetcode. Поиск в двумерной матрице

Сложность: Средняя

Условие задачи: напишите эффективный алгоритм для поиска наличия нужного числа в двумерной матрице, которая имеет следующие свойства:

▪️ в строке элементы отсортированы по возрастанию (слева - направо);
▪️ в столбце элементы отсортированы по возрастанию (снизу - вверх).

Пример:

Ввод:
matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 5
Вывод: true

Решение:

func searchMatrix(matrix [][]int, target int) bool {
m, n := len(matrix), len(matrix[0])
i, j := 0, n-1
for i < m && j >= 0 {
if matrix[i][j] == target {
return true
}
if matrix[i][j] < target {
i++
} else {
j--
}
}
return false
}



Временная сложность: O(m + n)
Пространственная сложность: O(1)


Пишите свое решение в комментариях👇
2025/07/01 03:20:08
Back to Top
HTML Embed Code: