Эта статья дает структурированную основу и раскрывает ряд неочевидных особенностей кэширования.
▪ Читать
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Удобный инструмент для реализации сессии в вашем проекте. Для этого пакета нужна версия Go 1.12 и выше.
$ go get github.com/alexedwards/scs/v2
#golang
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
15 Курсов по Go для начинающих
Мы собрали ссылки на полезные курсы Golang для начинающих.
▪Читать
#golang #junior
@Golang_google
Мы собрали ссылки на полезные курсы Golang для начинающих.
▪Читать
#golang #junior
@Golang_google
Мы рассмотрим библиотеки для машинного
обучения, обработки естественного языка, компьютерного зрения и других задач ИИ.
Python Golang Описание
NumPy
NumPy - популярная библиотека Python для обработки многомерных массивов и матриц, выполняющая множество математических операций, что делает ее идеальной для проектов искусственного интеллекта. Gonum предоставляет аналогичную функциональность в Go.
Scikit-learn
Scikit-learn - это библиотека машинного обучения, построенная на NumPy и SciPy, поддерживающая алгоритмы контролируемого и неконтролируемого обучения. Golearn - это аналогичная библиотека для Go, предлагающая ряд моделей и утилит.
Pandas
Pandas - это библиотека Python для подготовки высокоуровневых наборов данных для машинного обучения и тренировки моделей. Dataframe-go предоставляет аналогичную функциональность для манипулирования данными в Go.
TensorFlow
TensorFlow библиотека с открытым исходным кодом Python используется для разработки и оценки моделей машинного обучения и глубокого обучения. Gorgonia - это аналогичная библиотека для машинного обучения на Go.
Seaborn
Seaborn - это библиотека Python, используемая для визуализации данных в проектах ML. Gonum/plot предоставляет аналогичные возможности визуализации данных в Go.
Theano
Theano - это библиотека Python для численных вычислений и машинного обучения. Gorgonia предоставляет аналогичные возможности в Go.
Keras
Keras - это библиотека Python для разработки нейронных сетей для ML-моделей. Gorgonia предоставляет аналогичные возможности для создания нейронных сетей на Golang.
PyTorch
PyTorch - это Python-библиотека машинного обучения с открытым исходным кодом, которая в основном используется в приложениях, связанных с обработкой естественного языка или компьютерного зрения. Gorgonia - это библиотека для машинного обучения на языке Go.
Matplotlib
Matplotlib - это библиотека Python, ориентированная на визуализацию данных и используемая в основном для создания графиков, диаграмм, гистограмм и тд. Gonum/plot предоставляет аналогичные возможности визуализации данных в Go.
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
LinGoose (Lingo + Go + Goose ) библиотека Go для создания LLM-моделей.(больших языковых моделей).
▪Github
▪Проект
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Сложность задачи: Hard
Условие задачи:
Определим функцию
countUniqueChars(s)
, которая возвращает количество уникальных символов в s.Например, вызов countUniqueChars(s), если s = "LEETCODE", тогда "L", "T", "C", "O", "D" являются уникальными символами, поскольку они появляются только один раз в s, поэтому countUniqueChars(s ) = 5.
Для строки s вернуть сумму countUniqueChars(t), где t — подстрока s. Тестовые примеры генерируются таким образом, чтобы ответ помещался в 32-битное целое число.
Обратите внимание, что некоторые подстроки могут повторяться, поэтому в этом случае вам также придется считать повторяющиеся.
Строка s состоит только из заглавных английских букв.
Пример:
Ввод:
s = "ABC"
Вывод: 10
Объяснение: Все возможные подстроки: «A», «B», «C», «AB», «BC» и «ABC».
Каждая подстрока состоит только из уникальных букв.
Сумма длин всех подстрок равна 1 + 1 + 1 + 2 + 2 + 3 = 10
Ввод:
s = "ABA"
Вывод: 8
Решение.
Пишите свое решение в комментариях 👇@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Создание CRUD-приложения с чистой архитектурой в Go
В этой статье мы создадим API с CRUD функциональностью (Create, Read, Update, Delete), используя Clean Architecture.
В проекте мы будем использовать MySQL в качестве базы данных, Echo в качестве фреймворка и GORM в качестве ORM.
▪Читать
@Golang_google
В этой статье мы создадим API с CRUD функциональностью (Create, Read, Update, Delete), используя Clean Architecture.
В проекте мы будем использовать MySQL в качестве базы данных, Echo в качестве фреймворка и GORM в качестве ORM.
▪Читать
@Golang_google
Продвинутая библиотека для реализации авторизации на сайте, которая поддерживает ACL, RBAC и многое другое.
▪Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Удобный анализатор логов на предмет подозрительной активности.
▪Github
▪Документация
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Среда выполнения Docker отслеживается для определения производительности и поведения контейнеров и хост-систем.: Покажем, как при этом используются Prometheus и Grafana.
Потребуется установить в хост-системе (все загружается с официальных сайтов):
▪Docker для запуска контейнеров.
▪Prometheus для сбора метрик среды Docker.
▪Grafana для визуализации метрик, собранных с Prometheus.
📌 Читать дальше
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
В статье мы обсудим один вопрос, который считается фундаментальным принципом разработки ПО и программирования в целом: внедрение зависимостей (англ. Dependency Injection, сокр. DI). Всегда полезно освежить в памяти первоосновы, поскольку они уже апробированы, проверены на практике и утверждены в качестве стандартов индустрии.
Данный материал раскрывает тему DI, акцентируя внимание на реализации этой концепции в Go. По итогам ее изучения вы получите полное понимание целей и принципов работы DI. Кроме того, вы узнаете, как именно фреймворк Wire помогает экономить время при настройке зависимостей.
▪Читать дальше
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡ Наглядная шпаргалка по основным темам в области Backend-разработки
Весь материал разбит на главы, которые включают в себя разные темы. В каждой теме можно выделить три основные части:
▪Визуальная часть - различные изображения/таблицы/шпаргалки для лучшего понимания (может отсутствовать). Все рисунки и таблицы сделаны с нуля, специально для этого репозитория.
▪Краткое описание - очень краткая выжимка информации с перечнем основных терминов и понятий. На термины навешиваются гиперссылки ведущие на соответствующий раздел в Википедии или подобном справочном ресурсе.
▪Ссылки на источники - ресурсы, где можно найти полную информацию по конкретному вопросу (они скрыты под спойлером, который раскрывается при нажатии). По возможности, указываются максимально авторитетные источники, либо же те, которые предоставляют информацию максимально простым и понятным языком.
▪Github
@Golang_google
Весь материал разбит на главы, которые включают в себя разные темы. В каждой теме можно выделить три основные части:
▪Визуальная часть - различные изображения/таблицы/шпаргалки для лучшего понимания (может отсутствовать). Все рисунки и таблицы сделаны с нуля, специально для этого репозитория.
▪Краткое описание - очень краткая выжимка информации с перечнем основных терминов и понятий. На термины навешиваются гиперссылки ведущие на соответствующий раздел в Википедии или подобном справочном ресурсе.
▪Ссылки на источники - ресурсы, где можно найти полную информацию по конкретному вопросу (они скрыты под спойлером, который раскрывается при нажатии). По возможности, указываются максимально авторитетные источники, либо же те, которые предоставляют информацию максимально простым и понятным языком.
▪Github
@Golang_google
⚡ Google Cloud Platform Go Samples
Примеры приложений и код, написанный для Google Cloud на Golang.
▪Github
@Golang_google
Примеры приложений и код, написанный для Google Cloud на Golang.
▪Github
@Golang_google
📌 Задача нахождение вершины списка.
Сложность: Средняя
Условие задачи: вершина списка - элемент, который больше как соседа слева, так и соседа справа.
Дается целочисленный массив (проиндексированный с 0), необходимо вычислить элемент, который является вершиной списка, а после вернуть его индекс. В случае нескольких таких элементов можно вернуть любой из вариантов.
Алгоритм должен иметь временную сложность O (log n).
Пример:
Ввод:
Вывод:
Ввод:
Вывод:
Пишите свое решение в комментариях👇
@Golang_google
Сложность: Средняя
Условие задачи: вершина списка - элемент, который больше как соседа слева, так и соседа справа.
Дается целочисленный массив (проиндексированный с 0), необходимо вычислить элемент, который является вершиной списка, а после вернуть его индекс. В случае нескольких таких элементов можно вернуть любой из вариантов.
Алгоритм должен иметь временную сложность O (log n).
Пример:
Ввод:
nums = [1,2,3,1]
Вывод:
2
Ввод:
nums = [1,2,1,3,5,6,4]
Вывод:
5
func findPeakElement(nums []int) int {
return findPeakRecursive(nums, 0, len(nums)-1)
}
func findPeakRecursive(nums []int, left, right int) int {
if left == right {
return right
}
midpoint := (left + right) / 2
if isPeak(nums, midpoint) {
return midpoint
}
if nums[midpoint] != 0 && nums[midpoint] < nums[midpoint+1] {
return findPeakRecursive(nums, midpoint+1, right)
}
return findPeakRecursive(nums, left, midpoint-1)
}
func isPeak(nums []int, midpoint int) bool {
if midpoint == 0 {
return nums[midpoint+1] < nums[midpoint]
}
if midpoint == len(nums)-1 {
return nums[midpoint-1] < nums[midpoint]
}
return nums[midpoint-1] < nums[midpoint] && nums[midpoint+1] < nums[midpoint]
}
Пишите свое решение в комментариях👇
@Golang_google
Mailpit - это многоплатформенный инструмент тестирования электронной почты и API для разработчиков, написанный на Go.
Он действует как SMTP-сервер и предоставляет веб-интерфейс для просмотра писем.
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Подборка полезных папок с каналами для датасаентисов
Папки, где вы найдете каналы с разбором лучших практик написания кода на Python и Golang до каналов по машинному обучению и нейросетям (папки работают на последних версиях тг).
https://yangx.top/addlist/MUtJEeJSxeY2YTFi - Golang
https://yangx.top/addlist/2Ls-snqEeytkMDgy - Машинное обучение
https://yangx.top/addlist/8vDUwYRGujRmZjFi - Python
Папки, где вы найдете каналы с разбором лучших практик написания кода на Python и Golang до каналов по машинному обучению и нейросетям (папки работают на последних версиях тг).
https://yangx.top/addlist/MUtJEeJSxeY2YTFi - Golang
https://yangx.top/addlist/2Ls-snqEeytkMDgy - Машинное обучение
https://yangx.top/addlist/8vDUwYRGujRmZjFi - Python
🔥 22 библиотеки Go для повседневной работы
Список полезных и проверенных в боях библиотеках, которые вы можете использовать в своей работе.
HTTP
📌Echo / doc
📌chi / doc
Генерация сервера и клиентов Go
📌deepmap/oapi-codegen
Клиент для JavaScript/TypeScript
📌 openapi-generator-cli
Alternative types of communication
gRPC
📌protoc
Передача сообщений
📌 Watermill
Базы данных SQL
📌 sqlx
📌SQLBoiler
Migrations
📌 sql-migrate
📌 goose
Логирование
📌Logrus
📌 zap
Метрики
📌 opencensus-go
Конфиги
📌 caarlos0/env
📌 koanf
CLI
📌urfave/cli
Тестирование
📌testify
📌 go-cmp
📌gofakeit
Mocking
📌 google/uuid
📌 oklog/ulid
📌 shopspring/decimal
Обработка ошибок
📌hashicorp/go-multierror
Полезные инструменты
📌samber/lo
📌Task
Тулзы для кодинга
📌reflex
Линтеры
📌golangci-lint
📌go-cleanarch
Formatters
📌go fmt
📌goimports
📌gofumpt
Примеры проектов
DDD & Чистая архитектура
📌Wild Workouts Go DDD Example application
📌Modern Go Application by Márk Sági-Kazár
👉 Статья с разбором инструментов
@Golang_google
Список полезных и проверенных в боях библиотеках, которые вы можете использовать в своей работе.
HTTP
📌Echo / doc
📌chi / doc
Генерация сервера и клиентов Go
📌deepmap/oapi-codegen
Клиент для JavaScript/TypeScript
📌 openapi-generator-cli
Alternative types of communication
gRPC
📌protoc
Передача сообщений
📌 Watermill
Базы данных SQL
📌 sqlx
📌SQLBoiler
Migrations
📌 sql-migrate
📌 goose
Логирование
📌Logrus
📌 zap
Метрики
📌 opencensus-go
Конфиги
📌 caarlos0/env
📌 koanf
CLI
📌urfave/cli
Тестирование
📌testify
📌 go-cmp
📌gofakeit
Mocking
📌 google/uuid
📌 oklog/ulid
📌 shopspring/decimal
Обработка ошибок
📌hashicorp/go-multierror
Полезные инструменты
📌samber/lo
📌Task
Тулзы для кодинга
📌reflex
Линтеры
📌golangci-lint
📌go-cleanarch
Formatters
📌go fmt
📌goimports
📌gofumpt
Примеры проектов
DDD & Чистая архитектура
📌Wild Workouts Go DDD Example application
📌Modern Go Application by Márk Sági-Kazár
👉 Статья с разбором инструментов
@Golang_google
🔥 Материалы для изучения Docker за 10 шагов для начинающих
Шаг 1: Введение в Docker
▪Docker Documentation: Get Started with Docker
▪Docker YouTube Channel: Docker for Beginners — Full Course
Шаг 2: Работа с образами Docker
▪Docker Documentation: Working with Images
▪Docker Deep Dive eBook by Nigel Poulton: Глава 2 - Изображения
Шаг 3: Управление контейнерами Docker
▪Docker Documentation: Working with Containers
▪Docker Mastery: The Complete Toolset from a Docker Captain (Udemy Course)
Шаг 4: Тома Docker и работа с сетью
▪Docker Documentation: Using Volumes
▪Docker Documentation: Networking Overview
Шаг 5: Докеризация приложений
▪Docker Documentation: Dockerize an Application
▪Docker for Developers (Pluralsight Course)
Шаг 6: Docker Compose и оркестровка
▪Docker Documentation: Docker Compose
▪Docker Swarm Mode Introduction (YouTube)
Kubernetes Basics (Kubernetes.io)
Шаг 7: Сетевое взаимодействие и безопасность Docker
▪Docker Documentation: Networking in Compose
▪Docker Security (Docker Mastery Course)
Шаг 8: Продвинутые темы Docker
▪Docker Documentation: Healthcheck
▪Docker Logging Guide
▪Docker Monitoring Guide
Шаг 9: Развертывание Docker и CI/CD
▪Docker Documentation: Deploying Applications
▪Docker and Continuous Integration (DZone Article)
▪Docker and CI/CD with Jenkins (Medium Article)
Шаг 10: Устранение ошибок и лучшие практики работы с Docker
▪Docker Documentation: Troubleshoot Common Issues
▪Docker Best Practices (Docker Documentation)
▪Awesome Docker (GitHub Repository with curated resources)
@Golang_google
Шаг 1: Введение в Docker
▪Docker Documentation: Get Started with Docker
▪Docker YouTube Channel: Docker for Beginners — Full Course
Шаг 2: Работа с образами Docker
▪Docker Documentation: Working with Images
▪Docker Deep Dive eBook by Nigel Poulton: Глава 2 - Изображения
Шаг 3: Управление контейнерами Docker
▪Docker Documentation: Working with Containers
▪Docker Mastery: The Complete Toolset from a Docker Captain (Udemy Course)
Шаг 4: Тома Docker и работа с сетью
▪Docker Documentation: Using Volumes
▪Docker Documentation: Networking Overview
Шаг 5: Докеризация приложений
▪Docker Documentation: Dockerize an Application
▪Docker for Developers (Pluralsight Course)
Шаг 6: Docker Compose и оркестровка
▪Docker Documentation: Docker Compose
▪Docker Swarm Mode Introduction (YouTube)
Kubernetes Basics (Kubernetes.io)
Шаг 7: Сетевое взаимодействие и безопасность Docker
▪Docker Documentation: Networking in Compose
▪Docker Security (Docker Mastery Course)
Шаг 8: Продвинутые темы Docker
▪Docker Documentation: Healthcheck
▪Docker Logging Guide
▪Docker Monitoring Guide
Шаг 9: Развертывание Docker и CI/CD
▪Docker Documentation: Deploying Applications
▪Docker and Continuous Integration (DZone Article)
▪Docker and CI/CD with Jenkins (Medium Article)
Шаг 10: Устранение ошибок и лучшие практики работы с Docker
▪Docker Documentation: Troubleshoot Common Issues
▪Docker Best Practices (Docker Documentation)
▪Awesome Docker (GitHub Repository with curated resources)
@Golang_google
Сложность задачи: Средняя
Условие задачи:
Даны две строки s и t. Необходимо вернуть true, если обе они находятся на расстоянии редактирования друг от друга, в противном случае вернуть false.
Говорят, что строка s находится на расстоянии редактирования от строки t, если вы можете:
• Вставить ровно один символ в s, чтобы получить t.
• Удалить ровно один символ из s, чтобы получить t.
• Заменить ровно один символ s другим символом, чтобы получить t.
Пример:
Ввод:
s = "ab", t = "acb"
Вывод: true
Объяснение: Мы можем вставить 'c' в s, чтобы получить t.Ввод:
s = "", t = ""
Вывод: false
• Решение задачиПишите свое решение в комментариях👇
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM