37.2K subscribers
1.47K photos
34 videos
5 files
1.62K links
加入频道
Elem-go

elem - это легковесная библиотека на языке Go для программного создания HTML-элементов.

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

Она упрощает создание HTML-кода, предоставляя простой и интуитивно понятный способ создания элементов и задания их атрибутов, свойств и содержимого.

go get github.com/chasefleming/elem-go

content := elem.Div(elem.Attrs{
attrs.ID: "container",
attrs.Class: "my-class",
},
elem.H1(nil, elem.Text("Hello, Elem!")),
elem.H2(nil, elem.Text("Subheading")),
elem.P(nil, elem.Text("This is a paragraph.")),
)


📌 Github

@Golang_google
⚡️ System design 101

На прошлой неделе был создан репозиторий GitHub "System Design 101", который только что достиг 36к + звезд.

Объяснение сложных систем с помощью наглядных примеров и простых терминов.

Готовитесь ли вы к собеседованию по проектированию систем или просто хотите понять, как работают системы под поверхностью, мы надеемся, что этот репозиторий поможет вам в этом.

Что включено в репозиторий GitHub:
- 100 + концепций систем с наглядными примерами.
- Примеры с кодом из реальной практики.
- Советы по подготовке к собеседованиям по проектированию систем.
- SOAP vs. REST vs. GraphQL vs. RPC
- HTTP 1.0 -> HTTP 1.1 -> HTTP 2.0 -> HTTP 3.0 (QUIC)
- CI/CD Pipeline
- Структуры данных, обеспечивающих работу баз данных
- Лучшие практики кэширования
- Примеры микросервисных архитектур

Github

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

Почитать:
Playground. Как сэкономить время на настройке локальной среды
Schemaless для Uber.
Yet Another Easyjson. Как я не устаю делать велосипеды, а главное зачем
Kafka, go и параллельные очереди
Мониторинг и трассировка в Go: от Prometheus до Jaeger
Визуализация результатов Telegram-опросов в Grafana
Go 1.21: пакет slices
A Comprehensive Introduction to Golang
Grogue: A Roguelike Tutorial in Go (Part 3)
Experimenting on the Edge with Turso and Go 🧪
Have multiple config file types in a project? Here’s a single tool to validate them all!
Building a Fargate API Server with Go, Gin, Docker, and AWS Copilot
Distribuindo uma aplicação Go sem o Docker
ltag: A little CLI tool for tagged text searching
Use Gozz to Manage Your Golang Struct Field Tags Formats Automatically
Storing Secrets Securely for Go Cloud Applications 🔑
Building a global deployment platform is hard, here is why

Посмотреть:


🌐 Идеальный мир программиста ( 04:03)
🌐 Качества хорошего программиста #айти #программирование #программист ( 00:45)
🌐 Plunge into Zig by Solving a Coding Challenge ( 14:13)
🌐 Прогнозирование цены биткоина при помощи VAR, XGBoost, FB Prophet ( 20:29)
🌐Learn Golang: Build High-Performance Applications with Go | The basics | Part 1

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

Шахматный движок, написанный на Go

Если передать аргумент командной строки "-c", то будет запущен консольный интерфейс для игры в шахматные партии из командной строки.

Шахматная доска с графическим интерфейсом HTML взята с сайта https://chessboardjs.com/.

Github

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Gofr

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

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

Ключевые особенности
Middleware для реализации общей функциональности, такой как протоколирование, кэширование и аутентификация.

Поддержка различных типов ответов, таких как JSON, XML, TEXT, HTML и FILE.
Встроенная обработка ошибок для типичных ситуаций, включая ошибки базы данных и ошибки проверки параметров.
Заголовки и параметы запроса и обрабатываются динамически.
Проверка работоспособности и мониторинг для контроля непрерывной доступности сервиса.
Встроенный планировщик cron для планирования повторяющихся задач.
Метрики для мониторинга и анализа с помощью Prometheus, мониторинг производительности с помощью Grafana.
Возможность трассировки для отслеживания хода выполнения запросов пользователей.
Поддержка логирования на основе уровней для эффективной отладки и мониторинга.
Фильтры для манипулирования и преобразования данных.
Поддержка внутренних URL-адресов для безопасного взаимодействия внутри кластера.

📌Github
📌 Документация

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🦫10 проектов для изучения Golang в 2023 году

Оптимальный способ освоить Golang — создавать проекты. Исследованиями показано, что учиться лучше на практике, это подтверждается и моим опытом. Вопрос в том, какие именно проекты создавать?

10 идей проектов на Golang для начинающих (с курсами):

1. Создание веб-сервера

Это отличный проект для начала веб-разработки на Golang. Настраивая сервер для обработки HTTP-запросов и отправки ответов обратно клиентам, вы узнаете о маршрутизации, обработке HTTP-методов, парсинге параметров запроса, работе со статическими файлами.

Начните со встроенного пакета net/http, этого надежного каркаса для создания HTTP-серверов. Настроив сервер, добавьте конечные точки для обработки GET-, POST-, PUT- и DELETE-запросов.

2. Создание системы управления книгами YSQL


Это проект для эффективного управления книжными фондами.

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

В целом это отличный проект для создания масштабируемых приложений баз данных, эффективный и простой в сопровождении благодаря Golang и YSQL.

3. Создание «Slackbot» для загрузки файлов

Это проект для загрузки файлов на канал Slack, доступ к каналу получается через его API. Создается приложение Slackbot с настройкой его разрешений, а также сервер для обработки загрузки файлов, который интегрируется со Slackbot.

Ваша команда часто обменивается файлами в Slack? Тогда проект для вас: здесь это делается быстро и легко, не выходя из интерфейса Slack.

4. Создание «AWS Lambda»

📌 Продолжение
🛠Утилиты на Go для запуска старых Unix-программы, на современных компьютерах.

rsc.io/unix - содержит программы для запуска старых Unix-программ на современных компьютерах.

pdp11 - симулятор PDP-11.

v6unix - симулятор Research Unix Sixth Edition (V6). Он представляет собой перенос логики ядра V6 на Go, используя симулятор PDP11 для запуска пользовательских программ. По большей части ядро является точной имитацией ядра V6, но оно написано с использованием структур данных в памяти и других упрощающих допущений, и в нем нет необходимости заботиться о специфических деталях дисков, терминалов и другого оборудования PDP11. Это позволяет пользователям сосредоточиться на том, как работают программы Unix и каково это - пользоваться системой, а не изучать конфигурацию симулированных дисковых пакетов RK05.

v6run - это интерфейс командной строки к v6unix. go run rsc.io/unix/v6run@latest запустит симулятор. Нажатие Control-Backslash приведет к выходу из симулятора.

v6web - это интерфейс на основе веб-браузера.

Github

@Golang_google
⚡️ Впечатляющая монолитная архитектура Stack Overflow

Компания Stack Overflow, поддерживает тенденцию развития микросервисов их сервис обрабатывает 1,3 млрд. просмотров страниц в месяц на своих 200 сайтах, используя удивительно эффективную монолитную архитектуру с минимальной инфраструктурой.

Веб-серверы:

- Используется всего 9 локальных веб-серверов IIS.
- Каждый сервер имеет 64 ГБ оперативной памяти и работает на высокооптимизированном коде .NET
- Обработка 450 пиковых запросов в секунду на каждом сервере при использовании всего 12% процессорной мощности
- Код минимизирует потребление памяти и настроен на ограничения сбора мусора

Серверы SQL:

- Организованы в 2 отказоустойчивых кластера по 2 сервера в каждом
- Первый кластер: 1,5 ТБ оперативной памяти на сервер
- Второй кластер: 768 ГБ оперативной памяти на сервер
- Около трети массива данных Q&A находится в памяти.
- Каждый кластер обрабатывает более 10 000 пиковых запросов в секунду при ~15% CPU

Redis:

- Один основной сервер с репликой на 256 ГБ.
- Обработка 60000 пиковых операций в секунду при 2% CPU

Stack Overflow эффективно масштабирует монолитное приложение.

📌 Архитектура наглядно
📌 Подкаст об архитектуре Stack Overflow

@Golang_google
⚡️ Конвейер параллельной обработки файлов, написанный на языке Go.

Простота настройки
Высокая степень кастомизации
Широкий спектр операций по обработке файлов

Github

@Golang_google
👣 Ultimate Golang Blueprint Library 🚀

Если вам надоело начинать проекты на Golang с нуля, бороться с несовместимыми структурами и переписывать один и тот же код?

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

Преимущества:
Простота настройки и установки
Вся структура для Go проекта уже создана
Легкая настройка Go HTTP-сервера (или Fasthttp с Fiber)
Интеграция с популярными фреймворками


go install github.com/melkeydev/go-blueprint@latest

📌 Github

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Полезные материалы для успешной подготовки к собеседованию.

📌 Подробнее

@Golang_google
👣 ScratchDB

Scratch - это альтернатива BigQuery, Redshift и Snowflake с открытым исходным кодом, которая работает на платформе Clickhouse.

📌 Github
📌 Проект

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🎯 Хорошая шпаргалка по различным инфраструктурам мониторинга в облачных сервисах.

Эта шпаргалка предлагает краткое, но исчерпывающее сравнение ключевых элементов мониторинга трех основных облачных провайдеров и инструментов с открытым исходным кодом / сторонних производителей.

Давайте рассмотрим основные аспекты мониторинга:
- Сбор данных: Сбор информации из различных источников для принятия решений.
- Хранение данных: Безопасное хранение и управление данными для последующего анализа и использования.
- Анализ данных: Извлечение ценных сведений из данных.
- Оповещение: Получение в реальном времени уведомлений о критических событиях или аномалиях.
- Визуализация: Представление данных в наглядном формате для лучшего понимания.
- Отчетность и соответствие нормативным требованиям: Формирование отчетов и обеспечение соответствия нормативным стандартам.
- Автоматизация: Оптимизация процессов и задач за счет автоматизации рабочих процессов.
- Интеграция: Бесшовное соединение и обмен данными между различными системами и инструментами.
- Инструменты обратной связи: Постоянное совершенствование стратегий на основе обратной связи и анализа эффективности.

Как вы расставляете приоритеты и используете эти важнейшие аспекты мониторинга в своей области для достижения лучших результатов и эффективности?


@Golang_google
🔥 Дайджест полезных материалов из мира Golang за неделю

Почитать:
Проблемы функции Golang init
Мультиплатформенные образы: что это такое и зачем они нужны
Реализация Graceful Shutdown в Go
Midjourney, DALL-E 3 и GPT-4 открыли мир безграничных возможностей.
Использование табличных тестов в go для тестирования запросов к БД + testify
PKI на ENS. Часть 2. Proof-of-Concept
How To Build A Containerized Microservice in Golang: A Step-by-step Guide with Example Use-Case
Desvendando o package fmt do Go
Slog: Zero-dependency structured logging in Go
Type-Safe Infrastructure: Pioneering Simplicity and Stability
Binary Operators in Golang
Serverless Image Generation Application Using Generative AI on AWS
Testable Go Code
Enhancing Code Quality and Maintainability
GoFr - An opinionated Go Microservice Framework
Supercharge Your API Development with GraphQL and Go

Посмотреть:
🌐 Виталий Лихачев, Наталья Саушкина: Публичное собеседование Senior Golang Engineer
🌐 Определение диабета при помощи машинного обучения в 60 строк кода! ( 12:54)
🌐 Golang 1.21: What is new?
🌐 День из жизни программиста в Анталии ( 07:14)
🌐 Как писать код без ошибок? #айти #программирование #программист ( 00:49)
🌐 Implementing IP Address Rate Limiting in Go!? ( 05:35)

@Golang_google
👣 Интересная статья о "Построении высокопроизводительного парсера JSON".

https://dave.cheney.net/paste/gophercon-sg-2023.html

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 75 инженерных блогов, которые стоит прочитать, чтобы улучшить свои навыки в области проектирование систем:

https://github.com/JohnCrickett/SystemDesign/tree/main/engineering-blogs

@Golang_google