38.2K subscribers
1.54K photos
39 videos
5 files
1.7K links
Download Telegram
⭐️ Cerbos

Выпущена новая версия v0.30 Cerbos, масштабируемого #opensource проекта для реализации ролей и разрешений.

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

Github

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍223🔥2
🚀 Automaxprocs

Automatically set GOMAXPROCS to match Linux container CPU quota.

Automaxprocs позволяет выставить максимальное количество ядер для контейнеров.Хороший варинат, чтобы уменьшить тротлинг cpu.

go get -u go.uber.org/automaxprocs

Github

@Golang_google
👍84🔥2🤔1
👣 Что возвращать в Go: структуры или интерфейсы?

Возвращение структур
Рассмотрим преимущества возвращения структур из функций Go: эксплицитность, гибкость, прямой контроль над полями и методами объекта.
Изучим потенциальный недостатоксильную связанность — и выработаем стратегии эффективного ограничения его влияния.

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

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

Получая прямой доступ к свойствам структуры, мы имеем четкое представление о том, что внутри нее, поэтому работа с данными, манипулирование ими упрощаются.

Рассмотрим пример:

type Person struct {
Name string
Age int
Email string
}

func NewPerson(name string, age int, email string) Person {
return Person{
Name: name,
Age: age,
Email: email,
}
}

func main() {
person := NewPerson("John Doe", 30, "[email protected]")
fmt.Println("Name:", person.Name)
fmt.Println("Age:", person.Age)
fmt.Println("Email:", person.Email)
}

В функции NewPerson возвращается структура Person с информацией о человеке. Возвращая структуру напрямую, мы получаем явный доступ к ее полям Name, Age, Email в вызывном коде.

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

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

Благодаря возможности адаптировать ее к конкретным требованиям, код получается чище, целенаправленнее и с точным соответствием задачам приложения.

Продемонстрируем эту гибкость, обновив пример выше:

type Person struct {
Name string
Age int
Email string
}

func (p Person) Greet() {
fmt.Println("Hello, my name is", p.Name)
}

func main() {
person := Person{
Name: "John Doe",
Age: 30,
Email: "[email protected]",
}
person.Greet()
}

В структуру Person добавили метод Greet. Возвращая структуру, мы определяем конкретное поведение прямо в ее типе. В методе Greet приветствие персонализируется полем Name структуры Person.

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

📌Читать далее

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22👎43🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
👣 Crafting a Language Server in Golang: A VSCode LSP for Lama2

Lama2 - это менеджер API, ориентированный на работу с текстом и оптимизированный для совместной работы через Git.

В этой статье подробно с рассказывается о разработке функционала для VSCode с Lama2 на Go. От проблем, с которыми разработчики столкнулись во время разработки до инсайтов, которые были реализованы за год работы.


Статья
Lama2

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍101🔥1
👣 Failsafe-go

Failsafe-go - новая библиотека для создания отказоустойчивых приложений на Go. Она работает путем обертывания исполняемой логики одной или несколькими функциями отказоустойчивости, которые можно комбинировать и компоновать по мере необходимости. Функции включают в себя Retry, Circuit Breaker, Rate Limiter, Timeout, Bulkhead и Fallback.

Failsafe-go поможет построить гибкую, простую в использовании реализацию retry и circuit breaker, а также возможность комбинировать их с другими стратегиями отказоустойчивости, что предлагают библиотеки на других языках.

Project
Github

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22🔥61
Бесплатные курсы: DevOps и Cloud:

Бесплатный онлайн-курс DevOps
https://academiait.ru/course/devops/

Golang бесплатный курс с нуля
https://stepik.org/course/179158/promo

Youtube
https://www.youtube.com/playlist?list=PLysMDSbb9HcxpAb8lhnMaRpX890wSLz66

Linux
https://mygreatlearning.com/academy/learn-for-free/courses/linux-tutorial

Основы программирования для Linux
https://stepik.org/course/548/promo


Основы Linux
https://stepik.org/course/762/promo

Основы Linux
https://stepik.org/course/762/promo

GIT
https://simplilearn.com/learn-git-basics-skillup

DevOps
https://openclassrooms.com/courses/7853556-discover-the-devops-methodology

CI/CD
https://simplilearn.com/free-ci-cd-online-training-course-skillup

Docker
https://cognitiveclass.ai/courses/docker-essentials

Kubernetes
https://simplilearn.com/learn-kubernetes-basics-free-course-skillup

GitHub
https://mygreatlearning.com/academy/learn-for-free/courses/github-tutorial-for-beginners

Cloud Computing
https://cognitiveclass.ai/courses/introduction-to-cloud

AWS
https://openclassrooms.com/courses/7864796-discover-cloud-with-amazon-web-services

Azure
https://mygreatlearning.com/academy/learn-for-free/courses/microsoft-azure-essentials

GCP
https://simplilearn.com/learn-google-cloud-platform-fundamentals-free-course-skillup

Serverless
https://mygreatlearning.com/academy/learn-for-free/courses/serverless-computing

Jenkins
https://mygreatlearning.com/academy/learn-for-free/courses/jenkins-tutorial

Puppet
https://simplilearn.com/free-course-to-learn-puppet-basics-skillup

Chef
https://simplilearn.com/chef-in-devops-basics-free-course-skillup

Ansible
https://simplilearn.com/learn-ansible-basics-free-course-skillup

Selenium
https://mygreatlearning.com/academy/learn-for-free/courses/selenium-basics

VirtualBox & vSphere
https://openclassrooms.com/courses/7163136-set-up-virtual-machines-using-virtualbox-and-vsphere

Специализация Python Scripting for DevOps
https://www.coursera.org/specializations/python-scripting-devops

@Golang_google
14👍11🔥8😁2
👣 WASI support in Go

В Go 1.21 добавлен новый порт, ориентированный на API системных вызовов WASI preview. Этот порт основан на существующем порте WebAssembly, представленном в Go 1.1.

WebAssembly (или Wasm) — это бинарный формат, запускаемый в браузере, виртуальная машина, и результат компиляции с языка высокого уровня.

Wasm это не язык программирования, подобно тому как байт-код Java это не язык программирования, а результат компиляции и запускаемый блок кода.

Кто-то очень умный сказал, что название web assembly (то есть «ассемблер для веба») полностью неправильное, потому что это не ассемблер (не язык программирования) и он никак не связан с вебом (потому что это просто виртуальная машина).

https://go.dev/blog/wasi

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍132🔥1
👣 Hoverfly

Hoverfly - это легкий инструмент с открытым исходным кодом для моделирования API, написанный на Go.

С помощью Hoverfly можно создавать реалистичные симуляции работы с API.

git clone https://github.com/SpectoLabs/hoverfly.git

Github

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72🔥1
👣 Zep: Fast, scalable building blocks for LLM apps

Zep - это платформа с открытым исходным кодом для создания приложений c большими языковыми моделями.

Фреймворк позволяет осуществить переход от прототипа, построенного на LangChain или LlamaIndex, или пользовательского приложения к продакшену за считанные минуты без переписывания кода

Githib
Docs

https://t.iss.one/Golang_google?boost - проголосуйте за канал, чтобы видеть премиум контент
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🏗 Bubble Tea

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

package main

import (
"fmt"
"os"

tea "github.com/charmbracelet/bubbletea"
)

Github
Примеры с кодом
Docs

@Golang_google
👍69🔥117
👣 Go-hcaptcha

Go-hcaptcha — библиотека, написанная на GO для решения капчи.

Для решения необходим URL сайта (не домена!), а также ключ сайта, который можно найти в HTML-файле сайта с вызовом hCaptcha.

c, err := NewChallenge(siteUrl, siteKey)
if err != nil {
panic(err)
}
err = c.Solve(&GuessSolver{})
if err != nil {
panic(err)
}
fmt.Println(c.Token()) // P0_eyJ0eXAiOiJKV1QiLC...


GitHub

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20👍72
👣 go-exploit: Go Exploit Framework

go-exploit - это фреймворк для разработки эксплойтов на языке Go.

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

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

Github
Docs

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍194🔥3🤔2
⚡️ 7 репозиториев GitHub для DevOps специалистов.

1. 𝗞𝘂𝗯𝗲𝗿𝗻𝗲𝘁𝗲𝘀 𝗧𝗵𝗲 𝗛𝗮𝗿𝗱 𝗪𝗮𝘆
Пошаговое руководство по настройке кластеров Kubernetes с нуля, позволяющее получить глубокое представление о внутреннем устройстве Kubernetes.
🔗 https://github.com/kelseyhightower/kubernetes-the-hard-way

2. 𝗗𝗶𝘃𝗲
Dive - это инструмент для изучения образов Docker, помогающий DevOps специалистам анализировать содержимое образов для их дальнейшей оптимизации.
🔗 https://github.com/wagoodman/dive

3. 𝗮𝘄𝗲𝘀𝗼𝗺𝗲-𝗽𝗿𝗼𝗺𝗲𝘁𝗵𝗲𝘂𝘀
Список ресурсов, инструментов и интеграций с Prometheus, популярного инструмента мониторинга , используемого в DevOps.
🔗 https://github.com/roaldnefs/awesome-prometheus

4. 𝗚𝗼𝗥𝗲𝗹𝗲𝗮𝘀𝗲𝗿
Проект, который позволяет легко и быстро создавать deb пакеты.
🔗 https://github.com/goreleaser/goreleaser

5. 𝗗𝗲𝘃𝗢𝗽𝘀 𝗘𝘅𝗲𝗿𝗰𝗶𝘀𝗲𝘀
Предоставляет коллекцию упражнений и задач, связанных с различными DevOps топиками, для практики.
🔗 https://github.com/bregman-arie/devops-exercises

6. 𝗠𝗼𝗹𝗲𝗰𝘂𝗹𝗲
Фреймворк для тестирования кода инфраструктуры с помощью Ansible, помогающий в разработке и проверке ролей и плейбуков.
🔗 https://github.com/ansible/molecule

7. 𝗦𝗢𝗣𝗦
SOPS (Secrets Operator for Kubernetes) упрощает управление безопасностью для Kubernetes.
🔗 https://github.com/mozilla/sops

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍136🔥3👎2
👣 Redis-operator

Redis-operator - инструмент , написанный на Go, позволяющий создавать/мониторить работу Redis в автономном и кластерном режиме на базе Kubernetes.

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

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥31
🖥 100Days OfContainers And Orchestration

Опенсорс репозиторий с для изучения контейнеров (Docker, Podman и т.д.) и оркестровки (Kubernetes, ECS и т.д.) от нуля и до профи.

Github

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
19👍9🔥3
👣 Wails

Create beautiful applications using Go.

Wails - это библиотека, для создания настольных приложения на Go.

Традиционный способ создания веб-интерфейсов на языке Go - это использование встроенного веб-сервера. Wails предлагает иной подход: он позволяет упаковать в один бинарник и Go-код, и веб-интерфейс. Для облегчения этой задачи предоставляются инструменты, позволяющие создавать, компилировать и упаковывать проекты.

Доступны готовые шаблоны для быстрого создания интерфейсов
Унифицированная система обработки событий между Go и Javascript
Мощный инструмент cli для быстрой генерации и создания проектов
Поддерживает многоплатформенность
Доступны собственные диалоговые окна, меню,и
Поддержка темного/светлого режима
Wails использует собственные механизмы рендеринга и не использует встроенные браузеры

go install github.com/wailsapp/wails/v2/cmd/wails@latest

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

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

Почитать:
Статья команды об организации модуля Go
Rust против Go: практическое сравнение
Некоторые советы, которые я почерпнул из книги «100 ошибок в Go»
Golang глазами PHP-программиста
Визуализация исходного кода на языке golang
Реверс бинарных файлов Golang с использование GHIDRA. Часть 2
Golang error updates
Understanding HMAC Authentication for Secure APIs
Control Windows with Your Voice and the Magic of ChatGPT
Go Hacktoberfest Issues
Managing Firecracker microVMs in Go
Build a Serverless Application for entity detection on AWS
Your first API with GO & Nitric
Getting Started with Golang: An Introduction for Beginners
Qual a diferença de usar um receiver com ou sem ponteiro em Go?
Building RESTful API with Hexagonal Architecture in Go

Посмотреть:
🌐 Архитектура проекта на Golang ( 1:45)
🌐 Удаленка на 2 000 000 рублей в месяц ( 09:59)
🌐 Популярная задача с собеседования в Яндекс #python #задача #программирование #собеседование ( 01:00)
🌐 Grinding Leetcode for 24 hours (learning Golang)
🌐 Задача из Собеседования в Яндекс с зарплатой 85000 рублей #python #собеседование #задача #yandex ( 00:59)
🌐 Levenue 2.0 Golang, Svelte And Programming Q&A ( 01:39:35)

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

@Golang_google
6👍4🔥3😁1
👣 GoReSym

GoReSym - это парсер символов Go, который извлекает метаданные программы (такие как архитектура процессора, ОС, версия компилятора и т.д.) метаданные имени файла, а также встроенные структуры и типы.

Github

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥21
👣Интерфейс подключения к базе данных

При разработке программного обеспечения часто приходится работать с несколькими базами данных, такими как MySQL, PostgreSQL или другими. Управление этими соединениями может быть непростым из-за различий в конфигурациях. Вот один из примеров решения этой проблемы.

Полный код

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17👎12🔥32🤔1