Шаблон фасад (англ. Facade) — структурный шаблон проектирования, позволяющий скрыть сложность системы путём сведения всех возможных внешних вызовов к одному объекту, делегирующему их соответствующим объектам системы.
Как вы используете шаблон проектирования фасад в своей работе?
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30🔥8👎6🤔4❤3😁2😱2
hydrapp - это небольшой Go-фреймворк, похожий на Electron с уникальной особенностью: Он может использовать (почти) любой браузерный движок для рендеринга фронтенда.
▪ Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍6🔥3
Вакансии направления Go – разрабатывай внутренние и B2B в Kaspersky!
Чем будете заниматься:
● Golang developer (Sandbox) – разрабатывать микросервисы на Go, участвовать в создании нового функционала проекта и подготовке релизов новых версий продукта;
● Go Developer (MSAP) – участвовать в разработке и поддержка бекенд сервисов под Linux/Kubernetes на Go;
● Golang developer – участвовать в разработке микросервисов, работать с имеющимися проектами;
● Golang developer (OSMP) – создавать бекенд сервисы под Linux/Kubernetes на Go, развивать микро-сервисный подход, писать тесты, проводить код-ревью.
Основные требования:
● опыт от 2х лет разработки на GO или другом языке (С++, С#, Java);
● опыт разработки микросервисов;
● опыт разработки под Linux;
● понимание принципов ООП.
Откликайтесь, даже если опыт частично отвечает требованиям. Возможно, у вас есть именно нужные нам навыки.
Чем будете заниматься:
● Golang developer (Sandbox) – разрабатывать микросервисы на Go, участвовать в создании нового функционала проекта и подготовке релизов новых версий продукта;
● Go Developer (MSAP) – участвовать в разработке и поддержка бекенд сервисов под Linux/Kubernetes на Go;
● Golang developer – участвовать в разработке микросервисов, работать с имеющимися проектами;
● Golang developer (OSMP) – создавать бекенд сервисы под Linux/Kubernetes на Go, развивать микро-сервисный подход, писать тесты, проводить код-ревью.
Основные требования:
● опыт от 2х лет разработки на GO или другом языке (С++, С#, Java);
● опыт разработки микросервисов;
● опыт разработки под Linux;
● понимание принципов ООП.
Откликайтесь, даже если опыт частично отвечает требованиям. Возможно, у вас есть именно нужные нам навыки.
👍13👎9🔥2❤1😁1
Наблюдатель (англ. Observer) — поведенческий шаблон проектирования. Также известен как «подчинённые» (англ. Dependents). Реализует у класса механизм, который позволяет объекту этого класса получать оповещения об изменении состояния других объектов и тем самым наблюдать за ними.
Паттерн Наблюдатель определяет зависимость "один-ко-многим" между объектами так, что при изменении состояния одного объекта все зависящие от него объекты уведомляются об этом и обновляются автоматически.
Пример 1: Простое уведомление о событии
Пример 2: Тикер фондового рынка
Пример 3: Погодная станция
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍28❤8👎4🔥3
▪Создание собственного локального прокси с помощью Tor.
Пример в изображении 1.
▪Использование коммерческого сервиса прокси-пулов SmartProxy.
Пример в изображении 2.
▪Создание собственного HTTP-клиента с прокси-функцией.
Пример в изображении 3.
▪ После настройки Tor-клиента мы можем проверить IP-адрес запроса. Затем мы вызываем NewIP, чтобы изменить IP-адрес нашего клиента.
Изображение 4.
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26❤5🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
🧑💻 PLOW
Plow инструмент, который предназначен для нагрузочного тестирования HTTP-серверов.
Он основан на Go-библиотеке fasthttp, которая до десяти раз быстрее стандартной реализации, что делает его каким‑то аномально быстрым.
Plow может отдавать статистику в реальном времени не только в окне терминала, но и в браузере (по стандарту встроенный сервер доступен на 18888-м порте).
Запуск возможен из Docker или установкой из исходников:
Альтернатива:
Аргументы в целом ничего необычного собой не представляют: тут у нас стандартная для таких программ настройка количества потоков (-c), желаемого количества запросов (-n), времени теста (-d 30s или -d 5m, например) и HTTP-метода (--method="GET"). Про другие параметры можно подробно прочитать в справке программы (--help). Цель передается без специальных параметров.
▪ Github
@Golang_google
Plow инструмент, который предназначен для нагрузочного тестирования HTTP-серверов.
Он основан на Go-библиотеке fasthttp, которая до десяти раз быстрее стандартной реализации, что делает его каким‑то аномально быстрым.
Plow может отдавать статистику в реальном времени не только в окне терминала, но и в браузере (по стандарту встроенный сервер доступен на 18888-м порте).
Запуск возможен из Docker или установкой из исходников:
go install github.com/six-ddc/plow@latest
plow <args>
Альтернатива:
docker run --rm --net=host ghcr.io/six-ddc/plow <args>
Аргументы в целом ничего необычного собой не представляют: тут у нас стандартная для таких программ настройка количества потоков (-c), желаемого количества запросов (-n), времени теста (-d 30s или -d 5m, например) и HTTP-метода (--method="GET"). Про другие параметры можно подробно прочитать в справке программы (--help). Цель передается без специальных параметров.
▪ Github
@Golang_google
👍23🔥7❤3🤩1
Golang бросает панику при закрытии уже закрытого канала. Есть несколько способов, чтобы избежать такого рода паники.
Каждый вариант кода инкапсулирует struct и используется как интерфейс (картинка 1).
1) Panic
В примемер реализован интерфейс
(картинка 2)
Второй вызов
2) Простой
(картинка 3)
3) Панику можно перехватить с помощью функции
(картинка 4).
4)
5)В Golang 1.21 появилась функция
Можно также использовать
6)
Напишите свой вариант кода в комментариях👇
@Golang_google
Каждый вариант кода инкапсулирует struct и используется как интерфейс (картинка 1).
1) Panic
В примемер реализован интерфейс
Signal
:(картинка 2)
Второй вызов
Close()
вызывает панику.2) Простой
select
является потокобезопасным вариантом.(картинка 3)
3) Панику можно перехватить с помощью функции
recover()
в defer(картинка 4).
4)
sync.Once
- еще один способ перехвата. Он вызывает close()
только один раз и это элегантный способ обработки закрытия нескольких каналов (картинка 5).5)В Golang 1.21 появилась функция
sync.OnceFunc
, которая лучше подходит для этого случая использования (картинка 6).Можно также использовать
sync.Mutex
, но он не является оптимальным, как sync.Once, поскольку всегда использует блокировку и разблокировку.6)
context.WithCancel
- это еще один вариант, чтобы избежать панику (картинка 7).Напишите свой вариант кода в комментариях👇
@Golang_google
🔥19👍7❤2🥰2😁2🤔2👎1
AcraServer работает как прокси-сервер шифрования/дешифрования с базами данных SQL.
▪ Github
▪Документация
▪Примеры
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤3🔥3🤔1
🎉 Go 1.20.6 and 1.19.11 are released!
🔐 Безопасность: Includes security fixes for CVE-2023-29406 and Go issue https://go.dev/issue/60374
📢 Анонс: https://groups.google.com/g/golang-announce/c/2q13H6LEEx0
📦 Загрузить: https://go.dev/dl/#go1.20.6
@Golang_google
🔐 Безопасность: Includes security fixes for CVE-2023-29406 and Go issue https://go.dev/issue/60374
📢 Анонс: https://groups.google.com/g/golang-announce/c/2q13H6LEEx0
📦 Загрузить: https://go.dev/dl/#go1.20.6
@Golang_google
👍14🔥3❤2
Этот проект поможет вам преодолеть границу Python-Go: расширить возможности Python с помощью Go и наоборот.
▪Github
▪Как использовать
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👎9👍8😁5🔥4❤2🤯2