38.2K subscribers
1.54K photos
39 videos
5 files
1.7K links
Download Telegram
👣 [Тестовое Google] Простые множители произведения массива

Задача
Дан массив целых положительных чисел nums, верните количество различных простых множителей в произведении элементов nums. Функция должна называться distinctPrimeFactors.

Обратите внимание, что:

Число, большее 1, называется простым, если оно делится только на 1 и само на себя.
Целое число val1 является множителем другого целого числа val2, если val2 / val1 является целым числом.
Пример

nums = [2,4,3,7,10,6]
distinctPrimeFactors(nums)
# 4


# Пояснение:
Произведение всех элементов в `nums` равно: `2 * 4 * 3 * 7 * 10 * 6 = 10080 = 25 * 32 * 5 * 7`.
Существует 4 различных простых множителя, поэтому мы возвращаем 4.

nums = [2,4,8,16]
distinctPrimeFactors(nums)
# 1

# Пояснение:
Произведение всех элементов в `nums` равно: `2 * 4 * 8 * 16 = 1024 = 210`.
Существует 1 различный простой множитель, поэтому мы возвращаем 1.

#junior #задача #golang

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

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👎9👍52🔥2
🌟 Выпущены версии Go 1.20.7 и 1.19.12!

🔐 Security: Includes a security fix for crypto/tls (CVE-2023-29409)

📣 Announcement: https://groups.google.com/g/golang-announce/c/X0b6CsSAaYI

📦 Download: https://go.dev/dl/#go1.20.7

@Golang_google
👍17🔥43
StateTrooper

StateTrooper - это пакет Go, в котором реализован конечный автомат (FSM) Он позволяет определять и реализовывать переходы между состояниями на основе заранее заданных правил.

go get github.com/hishamk/statetrooper

Github

@Golang_google
13🔥5👍1
👣 Cmd-stream-go

Высокопроизводительная библиотека RCX (Remote Command Execution), применяющая паттерн проектирования Command к архитектуре клиент-сервер и поддерживающая функции reconnect и keepalive.

Github
Пример

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83🔥2
🟡 Дайджест полезных материалов из мира Golang за неделю

Почитать:
Хакните HL и заработайте 125.000 рублей
- Шбалон стратегия в Go
Используем Hashicorp Vault для хранения секретов
От C до Go. Как Golang объединил лучшие черты своих предшественников
Отранжированные и смешные: создаем систему выстраивания пользовательской ленты
В Go 1.21 существенно расширяется стандартная библиотека
Как протестировать код на Go с базой данных?
Golang — архитектурный линтер
Сравниваем скорость и оверхеды библиотек Deep Copy для Go
Добавляем Starlark в приложение на Go
Как построить систему, способную выдерживать нагрузку в 5 млн rps
Understanding the Singleton Pattern in Go
Bringing Go Templates everywhere
Minimum Cost for Tickets LeetCode
Using Golang for your AWS Lambda Functions
Unlocking AI Potential: Integrating OpenAI API into GoLang Microservices
Designing Microservices RESTful API using Go with CRUD Operations: A Practical Guide
Actors and Workflows: Building a Customer Loyalty Program with Temporal
S1E3: Mastering Concurrency with Worker Pool in GoLang: A Scalable Solution for Efficient Task Processing
Inspection, on the go
Resolving type parameter ambiguities

Посмотреть:
🌐 Уроки Golang с нуля /#20 - Методы ( 6:54)

Хорошего дня!

@Golang_google
🔥224👍4
This media is not supported in your browser
VIEW IN TELEGRAM
👣 gophernotes - это инстремнт Go для блокнотов Jupyter и nteract.

gophernotes позволяет использовать Go в интерактивном режиме в браузере, ноутбуке или десктопном приложении.

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

go install github.com/gopherdata/[email protected]
mkdir -p ~/.local/share/jupyter/kernels/gophernotes
cd ~/.local/share/jupyter/kernels/gophernotes
cp "$(go env GOPATH)"/pkg/mod/github.com/gopherdata/[email protected]/kernel/* "."
chmod +w ./kernel.json # in case copied kernel.json has no write permission
sed "s|gophernotes|$(go env GOPATH)/bin/gophernotes|" < kernel.json.in > kernel.json


Github

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥31
🦫Создание оркестратора для событийно-ориентированного приложения с Golang и RabbitMQ

Определение требований
Номера в гостинице бронируются по мере доступности.

Создадим конвейер передачи запроса на бронирование номера по различным сервисам: резервирования, проверки, зачисления средств, бронирования.

Сервисам не нужно ждать ответа друг от друга — они даже не «знают», откуда запрос: у каждого сервиса только одна задача, и он хорошо с ней справляется. Это называется снижением связанности. Не нужно задумываться о причине запроса и ждать ответа других сервисов — используем все преимущества архитектуры микросервисов.

Сначала создадим блок-схему:
показано в картинке.

Как видите, всего четыре этапа:
1. Проверка: в некоторых сценариях гостиницами обслуживаются не все желающие, например кому-то закрыт доступ или определенный номер резервируется только для конкретной группы. Это сложные правила, отделим их от веб-API.
2. Резервирование: одновременное бронирование номера несколькими людьми предотвращается глобальной блокировкой, подобной Redis.
3. Списание: зарезервировав номер, списываем средства.
4. Бронирование: завершив процесс списания, удаляем резервирование и бронируем номер.

Но в любом сервисе случаются ошибки.

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

Действия требуются при очевидных ошибках:
Недостаточно средств: удаляем резервирование.
Ошибка при бронировании: возвращаем средства и удаляем резервирование.

Настройка RabbitMQ
Не знакомы с RabbitMQ? Посмотрите руководство для начинающих, хотя основы мы разберем.

RabbitMQ, как и Apache Kafka, — это приложение с отправителями и получателями сообщений. В приложении-чате отправителями сообщение отправляется, получателями — получается.

Как сообщению попасть к моему другу, а не случайному человеку в другой группе? Это сложная часть.

📌 Читать

@Golang_google
👍204🔥3
🖼️ Выпущен Go 1.21.0!

👍Лайк, если ждал

📌GitHub
Скачать

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍113🔥12🤔32
🗺 Google maps scraper

Это Golang парсер, на основе фреймворка scrapemate который позволяет удобно парсить данные из Google Maps.

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

Все данные сохраняются в файл CSV для удобства анализа и обработки.

Содержит код для быстрого запуска с использованием Docker.

Github

@Golang_google
👍105🔥2
🐾 Goblin

Goblin позволяет использовать команду curl для установки бинарников Go без самого Go.

Инструмент позволяет устанавливать бинарные файлы Go, указывая желаемую версию и другие параметры.

Это особенно полезно, если вы хотите быстро установить библиотеку без установки всего Go SDK.

curl -sf https://goblin.run/<package>[@version] | [...options] sh

Ставь 👍, если пользовался, только старым Go Binaries.

Проект
Github

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21👎41🔥1
🎨 Awesome Software Architecture

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

https://awesome-architecture.com/

@Golang_google
👍16🔥32
😂 Отправляй той самой.

@Golang_google
😁46👍17🔥43
👣 Go-Pattern

Pattern Matching библиотека для Go.

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

Github

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍122🔥1
🤓 Shiori

Shiori - это простой менеджер закладок, написанный на языке Go. Представляет собой простой клон Pocket. Его можно использовать как приложение командной строки или как веб-приложение.

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

Github

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍3🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
👣 Gat

gat — полноценная альтернатива cat, написанная на Go и с дополнительными функциями: подсветки синтаксиса на разных языках, поддержки разных тем и форматирования.

$ go install github.com/koki-develop/gat@latest

Github

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍33🔥73🤔1
Redis Explained

Глубокое техническое погружение во все тонкости Redis.

В статье рассматриваются различные топологии Redis, персистентность данных и форкинг процессов.

Отличная иллюстрированная статья для глубокого понимания Redis.

Читать

@Golang_google
👍18🔥95
👣 REM

Новая ORM библиотека для Go, поддерживающая PostgreSQL, MySQL. Вскоре авторы обещают добавить SQLite.

go get github.com/evantbyrne/rem

Github

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23👎14🔥32