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
https://github.com/JohnCrickett/SystemDesign/tree/main/engineering-blogs
@Golang_google
GitHub
SystemDesign/engineering-blogs at main · JohnCrickett/SystemDesign
Useful resources on distributed system design. Contribute to JohnCrickett/SystemDesign development by creating an account on GitHub.
Коллекция мини-программ, демонстрирующих различные варианты использования client-go, дополненная предварительно настроенной онлайновой средой разработки. Вдохновлен
client-go/examples.
Цель - протестировать (более или менее) свежую версию Go и пакетов k8s.io на поддерживаемых в настоящее время ветках релизов Kubernetes.
Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - iximiuz/client-go-examples: Collection of mini-programs demonstrating Kubernetes client-go usage.
Collection of mini-programs demonstrating Kubernetes client-go usage. - iximiuz/client-go-examples
🥳 Выпущены версии Go 1.21.4 и 1.20.11!
🔐 Безопасность: Включены исправления безопасности для path/filepath (CVE-2023-45283, CVE-2023-45284).
🗣 Анонс: https://groups.google.com/g/golang-announce/c/4tU8LZfBFkY
🗃 Скачать: https://go.dev/dl/#go1.21.4
@Golang_google
🔐 Безопасность: Включены исправления безопасности для path/filepath (CVE-2023-45283, CVE-2023-45284).
🗣 Анонс: https://groups.google.com/g/golang-announce/c/4tU8LZfBFkY
🗃 Скачать: https://go.dev/dl/#go1.21.4
@Golang_google
Маршрутизации на основе правил: динамические скрипты, домены, IP-адреса, имя процесса и многое другое
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Создать RTS, которая бы хорошо работала в браузере с помощью #golang, сложная задача, но возможная.
Игра написана с использованием движка Ebitengine и даже доступна в Steam.
•Github
•Проект
#ebitengine #gamedev #golang
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
F-jgIg5asAAxB0Q.jpeg
965.2 KB
Шаблон-шпаргалка для решения различных проблем системного дизайна на собеседованиях.
В нем кратко затронуты следующие вопросы:
- Балансировка нагрузки
- API
- Коммуникационные протоколы
- CDN
- База данных
- Кэш
- Очередь сообщений
- Генерация уникальных идентификаторов
- Масштабируемость
- Доступность
- Производительность
- Безопасность
- Отказоустойчивость
- И многое другое
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
go.dev
Fourteen Years of Go - The Go Programming Language
Happy Birthday, Go!
🔥 Дайджест полезных материалов из мира Golang за неделю
Почитать:
— Multipath TCP в Go
— Проблемы функции Golang init
— Мультиплатформенные образы: что это такое и зачем они нужны
— Организация стенда локальной разработки для самых маленьких с автоматической пересборкой приложения (фронтенд + бэкенд)
— 14years Go
— GopherConAU
— Git и GitHub для начинающих
— Реализация Graceful Shutdown в Go
— Использование табличных тестов в go для тестирования запросов к БД + testify
— PKI на ENS. Часть 2. Proof-of-Concept
— Building a fully Type-Safe Event-Driven Backend in Go
— Fundamentals of Go - FARMISS
— Golang or Rust: Which one to choose?
— Building LangChain applications with Amazon Bedrock and Go - An introduction
— Creating Real-Time WebSockets with Go and WebAssembly
— Config-file-validator v1.5.0 Released!
— Considered Harmful - Accept Interfaces, Return Structs
— Example 5, Automatically generate grpc gateway service project code, easy to achieve cross-service grpc calls
— Example 6, Build a simple golang e-commerce microservices framework step by step using tool
— Example 3, Automatically generate generic web service (gin) project code, increasing development efficiency by at least 1x
Посмотреть:
🌐 Automated Weather Polling System in Golang
🌐 Совет Python разработчикам - реши задачу Chain sum с реального собеседования. (⏱ 14:23)
🌐 Automated Weather Polling System in Golang (⏱ 01:40:23)
🌐 Let's Build A Distributed CAS Storage In Golang (⏱ 46:14)
🌐 P2P Protocol In Golang For My Distributed CAS (⏱ 36:09)
🌐 День из жизни программиста в Анталии (⏱ 07:14)
🌐 Самый простой язык программирования #айти #программирование #программист (⏱ 00:42)
🌐 Как писать код без ошибок? #айти #программирование #программист (⏱ 00:49)
🌐 Нужна ли математика программисту? #айти #программирование #программист #математике (⏱ 00:35)
🌐 GoLang Project: Password Generator (⏱ 12:12)
🌐 Object Value Types in Go!? ~ Domain Driven Design (⏱ 05:50)
🌐 Implementing IP Address Rate Limiting in Go!? (⏱ 05:35)
🌐 GoLang Project: Password Generator
Хорошего дня!
@Golang_google
Почитать:
— Multipath TCP в Go
— Проблемы функции Golang init
— Мультиплатформенные образы: что это такое и зачем они нужны
— Организация стенда локальной разработки для самых маленьких с автоматической пересборкой приложения (фронтенд + бэкенд)
— 14years Go
— GopherConAU
— Git и GitHub для начинающих
— Реализация Graceful Shutdown в Go
— Использование табличных тестов в go для тестирования запросов к БД + testify
— PKI на ENS. Часть 2. Proof-of-Concept
— Building a fully Type-Safe Event-Driven Backend in Go
— Fundamentals of Go - FARMISS
— Golang or Rust: Which one to choose?
— Building LangChain applications with Amazon Bedrock and Go - An introduction
— Creating Real-Time WebSockets with Go and WebAssembly
— Config-file-validator v1.5.0 Released!
— Considered Harmful - Accept Interfaces, Return Structs
— Example 5, Automatically generate grpc gateway service project code, easy to achieve cross-service grpc calls
— Example 6, Build a simple golang e-commerce microservices framework step by step using tool
— Example 3, Automatically generate generic web service (gin) project code, increasing development efficiency by at least 1x
Посмотреть:
🌐 Automated Weather Polling System in Golang
🌐 Совет Python разработчикам - реши задачу Chain sum с реального собеседования. (⏱ 14:23)
🌐 Automated Weather Polling System in Golang (⏱ 01:40:23)
🌐 Let's Build A Distributed CAS Storage In Golang (⏱ 46:14)
🌐 P2P Protocol In Golang For My Distributed CAS (⏱ 36:09)
🌐 День из жизни программиста в Анталии (⏱ 07:14)
🌐 Самый простой язык программирования #айти #программирование #программист (⏱ 00:42)
🌐 Как писать код без ошибок? #айти #программирование #программист (⏱ 00:49)
🌐 Нужна ли математика программисту? #айти #программирование #программист #математике (⏱ 00:35)
🌐 GoLang Project: Password Generator (⏱ 12:12)
🌐 Object Value Types in Go!? ~ Domain Driven Design (⏱ 05:50)
🌐 Implementing IP Address Rate Limiting in Go!? (⏱ 05:35)
🌐 GoLang Project: Password Generator
Хорошего дня!
@Golang_google
Go
.go install github.com/kisielk/errcheck@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
⭐️ Две структуры с одинаковыми полями могут иметь разный размер.
Это явление известно как "padding", понятие, заимствованное из языка C++, но применимое и в Go.
Рассмотрим приведенный выше пример.
Структуры
Она увеличивается до
Это явление известно как "padding", понятие, заимствованное из языка C++, но применимое и в Go.
Рассмотрим приведенный выше пример.
Структуры
A
и B
имеют совершенно одинаковые поля, но если просто переставить порядок полей, то структура A станет в два раза больше. Она увеличивается до
32 байт
, в то время как структура B остается меньше - 16 байт.
@Golang_googleВышла новая версия официального драйвера #Redis для Go с поддержкой типа данных JSON
https://github.com/redis/go-redis/releases/tag/v9.3.0
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
1) Список часто используемых команд Git
https://github.com/joshnh/Git-Commands
2) Книга по Git
https://git-scm.com/book/en/v2
3) Git simple guide no deep shit!
https://rogerdudler.github.io/git-guide/
4) Intro to Git and GitHub for Beginners
https://product.hubspot.com/blog/git-and-github-tutorial-for-beginners
5) Понимание потока GitHub
https://docs.github.com/en/get-started/quickstart/github-flow
6) Руководство для начинающих по внесению вклада в проект GitHub
https://akrabat.com/the-beginners-guide-to-contributing-to-a-github-project/
7) Ё**** Git!!!
https://ohshitgit.com/ru
8)LearnGitBranching
https://learngitbranching.js.org/
Делитесь в комментариях свои полезные ресурсы по работе с Git и GitHub
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Это репо содержит примеры переписанных на Golang инструментов и утилит кибербезопасности, которые могут быть использованы в работе "
Red Team
".Главная задача
Red Team
– оценить скорость реагирования, а также эффективность процедур, систем и средств защитRed Teaming — это имитация реальных кибератак с целью тренировки и оценки эффективности людей, процессов и технологий, используемых для защиты информационной инфраструктуры заказчика.
▪ Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Реализация приоритетной очереди, основанная на container/heap.
Этот пакет построен поверх стандартной функциональности, уже предоставляемой container/heap и добавляет различные удобные методы для создания новых приоритетных очередей, предикаты для проверки того, пуста ли очередь, синхронизацию для безопасного использования несколькими горутинами и другое.
go get -v gopkg.in/dnaeon/go-priorityqueue.v1
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Дайджест полезных материалов из мира Golang за неделю
Почитать:
— Как я реверс-инженерил китайский блютуз контроллер
— Лучшие практики Golang (20 лучших)
— Собираем статистику по телеграм-каналу и строим кастомные графики
— Здоровая конкуренция в GO. Главное не перехитрить самого себя
— Как использовать ресурсы Kubernetes по максимуму для работы с Go-приложениями
— Pushing SQLite to its limits with Go while having fun
— Partitioned S3 Bucket from DynamoDB
— Build a Cybersecurity Link-Analyzer with Go
— How to setup ZeptoMail in Golang
— Your Microservices are probably not Type-Safe 🐘
— Building a TypeScript Simple Channel (Like Golang)
— Setting Up the Go Programming Environment on Windows 11
— O poder do CLI com Golang e Cobra CLI
— Goroutines por baixo dos panos
— How to build a desktop markdown editor
— Add context to errors
Посмотреть:
🌐 Попробуем сделать vpn на websocket. заодно tcp/ip подучим. (golang)
🌐 Пишем генератор Shorts видео на Python для заработка на YouTube. (⏱ 11:50)
🌐 Distributed CAS Storage In Golang - RPC Networking (⏱ 26:01)
🌐 This Is Why You Are Stuck In Tutorial Hell (⏱ 04:30)
🌐 Streaming Large Files In Golang But Distributed (⏱ 33:48)
🌐 Coding TCP Transport For My P2P Distributed Storage In GO (⏱ 26:01)
🌐 Message Queue From Scratch In Golang With Only STD LIB (⏱ 01:55:49)
Хорошего дня!
#digest #golang
@Golang_google
Почитать:
— Как я реверс-инженерил китайский блютуз контроллер
— Лучшие практики Golang (20 лучших)
— Собираем статистику по телеграм-каналу и строим кастомные графики
— Здоровая конкуренция в GO. Главное не перехитрить самого себя
— Как использовать ресурсы Kubernetes по максимуму для работы с Go-приложениями
— Pushing SQLite to its limits with Go while having fun
— Partitioned S3 Bucket from DynamoDB
— Build a Cybersecurity Link-Analyzer with Go
— How to setup ZeptoMail in Golang
— Your Microservices are probably not Type-Safe 🐘
— Building a TypeScript Simple Channel (Like Golang)
— Setting Up the Go Programming Environment on Windows 11
— O poder do CLI com Golang e Cobra CLI
— Goroutines por baixo dos panos
— How to build a desktop markdown editor
— Add context to errors
Посмотреть:
🌐 Попробуем сделать vpn на websocket. заодно tcp/ip подучим. (golang)
🌐 Пишем генератор Shorts видео на Python для заработка на YouTube. (⏱ 11:50)
🌐 Distributed CAS Storage In Golang - RPC Networking (⏱ 26:01)
🌐 This Is Why You Are Stuck In Tutorial Hell (⏱ 04:30)
🌐 Streaming Large Files In Golang But Distributed (⏱ 33:48)
🌐 Coding TCP Transport For My P2P Distributed Storage In GO (⏱ 26:01)
🌐 Message Queue From Scratch In Golang With Only STD LIB (⏱ 01:55:49)
Хорошего дня!
#digest #golang
@Golang_google
Uber широко использует Go в качестве основного языка программирования для реализации внутренних сервисов и библиотек благодаря его высокой производительности.
Моно репо Go является самой большой кодовой базой в Uber, насчитывающей
90 млн. строк кода
(и продолжает расти). Это делает инструментарий для написания надежного кода на Go критически важной частью нашей инфраструктуры разработки.Указатели (переменные, хранящие в памяти адреса других переменных, а не их реальные значения) являются неотъемлемой частью языка программирования Go и способствуют эффективному управлению памятью и эффективному манипулированию данными.
Поэтому программисты широко используют указатели при написании программ на языке Go для различных целей, таких как модификация данных, параллельное программирование, обмен данными, оптимизация использования памяти, облегчение работы с интерфейсами и полиморфизм.
Несмотря на то, что указатели являются мощным и широко используемым инструментом, необходимо использовать их аккуратно и разумно, чтобы избежать распространенных ошибок, связанных с nil-паниками в коде.
В этой статье описаны практики решения, а так же о интсрменте от команды Uber NilAway — библиотеке статического анализа для обнаружения возможных nil-паник в коде на Go, который позволяет ловить их во время компиляции, а не во время выполнения.
NilAway похож на nilness, но является гораздо более продвинутым инструментом и содержит мощные методы статического анализа для отслеживания потоков nil как внутри пакета, так и между пакетами.
📌 Читать статью
📌 Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
scdb - это легкий и быстрый механизм хранения данных типа "ключ-значение", отличающийся простотой и скоростью работы, написанная на Go.
Инструмент создан по образцу архитектуры хранения Bitcask, известной своей эффективностью при операциях записи.
▪Основной принцип построения scdb (и Bitcask) основан на файловых системах с лог-структурой. При таком подходе все изменения добавляются в конец журнала, что делает запись исключительно быстрой, поскольку она осуществляется последовательно. Такая конструкция не только обеспечивает быстродействие, но и гарантирует целостность данных: даже в случае сбоя системы можно легко восстановить данные благодаря этому методу, основанному только на приложении.
▪Кроме того, в scdb реализован процесс, известный как объединение файлов журнала. Со временем, когда ваше приложение записывает все больше данных, количество файлов журнала естественным образом увеличивается. Объединение лог-файлов - это техника, которая объединяет файлы для предотвращения фрагментации и поддержания производительности. Это похоже на домашнюю уборку, обеспечивающую организованность и эффективность хранения данных.
▪Таким образом, если вы разрабатываете приложение, требующее быстрой записи данных и простого, но надежного решения для хранения данных, scdb может оказаться именно тем механизмом, который вы ищете. Он создан для того, чтобы обеспечить разработчикам, подобным вам, удобство хранения и извлечения пар ключ-значение.
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM