Ребята из Lamoda рассказывают, какие инструменты на Go они для себя запилили.
Вот некоторые:
Aerospike — это распределённая schema-less key-value база данных, которая работает по принципу хэш-таблицы. Основная её особенность — отсутствие схемы данных. По одному ключу в ней может храниться что угодно, в том числе мапы и списки произвольной вложенности. В итоге в коде много строк и ошибок.
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Держите отличную статью
Внутри такие очевидные и не очень вещи:
run
используется для запуска программы прямо из тестового кода, обеспечивая удобство тестирования.@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Туннельное решение, позволяющее подключать локальные HTTP и TCP-соединения к общедоступному Интернету.
Port в первую очередь предназначен для небольших команд разработчиков, которые хотят предоставить доступ к серверам своего проекта по общедоступному URL-адресу.
#golang
▪Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Что внутри этого бесплатного гайда:
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 GigaAM: класс открытых моделей для обработки звучащей речи
Команда SberDevices показала свое семейство моделей для обработки речи, обученных на русском языке.
⏩GigaAM умеет быстро адаптироваться к разным задачам, от распознавания речи до взаимодействия с различными доменами (колл-центр, подкасты, farfield).
⏩GigaAM-CTC допускает на 20–37% меньше ошибок в словах на коротких русскоязычных запросах по сравнению с такими популярными решениями, как NeMo-Conformer-RNNT и Whisper-Large-v3.
⏩GigaAM-Emo умеет устанавливать связь с рядом паттернов, которые отвечают за эмоциональное состояние говорящего.
📎 Статья
📎 github
@Golang_google
Команда SberDevices показала свое семейство моделей для обработки речи, обученных на русском языке.
⏩GigaAM умеет быстро адаптироваться к разным задачам, от распознавания речи до взаимодействия с различными доменами (колл-центр, подкасты, farfield).
⏩GigaAM-CTC допускает на 20–37% меньше ошибок в словах на коротких русскоязычных запросах по сравнению с такими популярными решениями, как NeMo-Conformer-RNNT и Whisper-Large-v3.
⏩GigaAM-Emo умеет устанавливать связь с рядом паттернов, которые отвечают за эмоциональное состояние говорящего.
📎 Статья
📎 github
@Golang_google
Go — это язык, который проектировался в первую очередь для конкурентных и параллельных вычислений.
Поэтому, если Go — ваш рабочий инструмент, неплохо бы в этом разбираться.
Для этого держите годную статью в тему, а вот некоторые факты из неё:
race detector
.RWMutex
может быть оптимизацией для приложений с высокой частотой операций чтения и записи.sync.Map
является обёрткой над map[any]any
, готовой к конкурентному доступу.@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Для тех, кто ещё не пробовал использовать GoLand для работы с Go — попробуйте, вам понравится)
Вот некоторые фишки:
Ctrl
+Shift
+Space
вызывает список вариантов автодополнения, наиболее подходящих для данного контекста.Alt
+Enter
.Ctrl
+O
, IDE поможет вам реализовать любой интерфейс, сгенерировав его методы.Alt+
) всегда под рукой, если необходимо узнать тип выражения, на котором находится курсор.Ctrl
+Shift
+F7
, установив курсор на ключевом слове func, return или panic. Это поможет быстрее понять, как работает функция.Вот такие классные возможности, так что пользуйтесь GoLand)
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
golang.org/x/crypto/ssh.
А при помощи пакета
github.com/gliderlabs/ssh
можно разработать ssh-сервер легко и быстро. Ssh подразумевает не только доступ к оболочке (shell), но и прочие возможности: файловый сервер (sftp), проброс портов.
package main
import (
"github.com/gliderlabs/ssh"
"io"
"log"
)
func main() {
ssh.Handle(func(s ssh.Session) {
io.WriteString(s, "Hello world\n")
})
log.Fatal(ssh.ListenAndServe(":2222", nil))
}
golang.org/x/term.
Упрощенно обработчик будет выглядеть вот так:
import (
...
terminal "golang.org/x/term"
)
func sessionHandler(s gssh.Session) {
defer s.Close()
if s.RawCommand() != "" {
io.WriteString(s, "raw commands are not supported")
return
}
// создаем терминал
term := terminal.NewTerminal(s,
fmt.Sprintf("/%s/ > ", s.User()))
// добавляем обработку pty-request
pty, winCh, isPty := s.Pty()
if isPty {
_ = pty
go func() {
// реагируем на изменение размеров терминала
for chInfo := range winCh {
_ = term.SetSize(chInfo.Width, chInfo.Height)
}
}()
}
for {
// считываем ввод пользователя
line, err := term.ReadLine()
if err == io.EOF {
_, _ = io.WriteString(s, "EOF.\n")
break
}
// обработаем результат
result = processInput(line)
// выведем в терминал
io.WriteString(term, result)
}
}
▪GitHub
▪Подробнее
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🐇 Gorabbit
Оболочка на GO, обеспечивающая высокоуровневую и надежную работу RabbitMQ с помощью клиента или менеджера.
RabbitMQ — программный брокер сообщений на основе стандарта AMQP — тиражируемое связующее программное обеспечение, ориентированное на обработку сообщений.
• Github
@Golang_google
Оболочка на GO, обеспечивающая высокоуровневую и надежную работу RabbitMQ с помощью клиента или менеджера.
RabbitMQ — программный брокер сообщений на основе стандарта AMQP — тиражируемое связующее программное обеспечение, ориентированное на обработку сообщений.
• Github
@Golang_google
Обратный туннель (с балансировщиком нагрузки) и клиентская библиотека Go-сервера, построенная на основе QUICK и HTTP/3
#golang
▪ Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Здесь вы наверняка найдёте что-то полезное для себя, покрываются практически все темы Go
— Синтаксис и структура программ • Переменные, типы данных, операторы • Управляющие структуры (циклы, условные операторы) • Функции и пакеты.
— Массивы и срезы • Строки и форматирование • Карты • Структуры.
— Обработка ошибок в Go • Пакет
errors
и создание пользовательских ошибок.— Горутины и каналы •
sync
пакет для синхронизации доступа к данным • context
пакет для управления жизненным циклом горутин.— Создание HTTP серверов и клиентов • Работа с TCP и UDP • Использование
net
и net/http
пакетов.— Чтение и запись файлов • Операции с директориями • Использование пакета
os
и io
.— Работа с SQL и NoSQL базами данных • Использование пакетов
database/sql
и go-sql-driver
• Интеграция с ORM, например, GORM.— Написание и запуск тестов • Использование пакета
testing
• Тестирование с помощью моков и заглушек.@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Go Migrate может считывать файлы миграции из различных источников и применять их к базе данных в правильном порядке. Он поддерживает различные драйверы баз данных и источники миграции.
PostgreSQL • Cassandra • SQLite • MariaDB • MongoDB • ClickHouse
import (
"github.com/golang-migrate/migrate/v4"
_ "github.com/golang-migrate/migrate/v4/database/postgres"
_ "github.com/golang-migrate/migrate/v4/source/github"
)
func main() {
m, err := migrate.New(
"github://mattes:personal-access-token@mattes/migrate_test",
"postgres://localhost:5432/database?sslmode=enable")
m.Steps(2)
}
Этот код инициализирует Go Migrate с указанным источником и базой данных, затем применяет 2 миграции, используя метод
Steps
.@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
https://benhoyt.com/writings/go-version-performance-2024/
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Benhoyt
Go performance from version 1.0 to 1.22
Shows how much the performance of Go has improved from version 1.0 through to 1.22 (including PGO) -- in its compiler, runtime, and libraries.
🔥 Дайджест полезных материалов из мира Golang за неделю
Инструменты недели:
• xgo — библиотека, которая позволяет добавить функцию Trap и предоставляет такие инструменты, как Mock и Trace. xgo помогает разработчикам писать юнит-тесты и отлаживать их проще и быстрее.
•portr - туннельное решение, позволяющее подключать локальные HTTP и TCP-соединения к общедоступному Интернету.
• reverst - обратный туннель (с балансировщиком нагрузки) и клиентская библиотека Go-сервера, построенная на основе QUICK и HTTP/3
#golang
• gorabbit - оболочка на GO, обеспечивающая высокоуровневую и надежную работу RabbitMQ с помощью клиента или менеджера.
• househunt — полноценное веб-приложение на Go, которое научит вас создавать правильную структуру проекта.
Почитать:
— Аутентификация go с использованием токенов PASETO
— Годный самоучитель по CI/CD и Kubernetes для Go-разработчиков
— Нативные подписки с роутером Cosmo
— Odinbit, игра моей мечты и процесс её создания. С нуля до первой публичной версии
— GoLand и его фишки
— Конкурентность и параллелизм в Go
— Go повышение производительности в версиях с 1.0 по 1.22
— Введение в Router Cosmo — потрясающе быстрый шлюз с открытым исходным кодом Federation V1/V2
— Пространство имен для GraphQL: Бесконфликтное объединение любого количества API
— Building "Journal Buddy": A Custom GPT for Personal Reflection
— Progress in My P2P Library: A Work in Progress
— What Happens After Agile Dies?
— Why should you try GoCfg or yet another Go config manager
— Exploiting HTTP/2 CONTINUATION frames for DoS attacks
— Gorabbit: RabbitMQ supercharged for Go Applications
— Build a CLI tool : Generating hex dumps with Golang
Посмотреть:
🌐Создание Redis с нуля на Golang (⏱ 02:49:24)
🌐 Mastering And Taming NIL Pointers in Golang For Beginners (⏱ 13:24)
🌐 How To Build A Complete Distributed File Storage In Golang (⏱ 09:57:01)
🌐 If U Use GitHub CO-PILOT I Wont Hire You!? (⏱ 11:21)
🌐 Programming Career Paths, Roadmaps, LeetCode, And Salaries (⏱ 02:28:42)
🌐 Building Redis In Golang And NeoVim Setup With ThePrimeagen (⏱ 03:28:48)
🌐 Building Redis From Scratch In Golang - Learn Go Like A PRO (⏱ 02:49:29)
🌐 Developers Do NOT Understand the POWER Of HTMX (⏱ 10:31)
Хорошего дня!
@Golang_google
Инструменты недели:
• xgo — библиотека, которая позволяет добавить функцию Trap и предоставляет такие инструменты, как Mock и Trace. xgo помогает разработчикам писать юнит-тесты и отлаживать их проще и быстрее.
•portr - туннельное решение, позволяющее подключать локальные HTTP и TCP-соединения к общедоступному Интернету.
• reverst - обратный туннель (с балансировщиком нагрузки) и клиентская библиотека Go-сервера, построенная на основе QUICK и HTTP/3
#golang
• gorabbit - оболочка на GO, обеспечивающая высокоуровневую и надежную работу RabbitMQ с помощью клиента или менеджера.
• househunt — полноценное веб-приложение на Go, которое научит вас создавать правильную структуру проекта.
Почитать:
— Аутентификация go с использованием токенов PASETO
— Годный самоучитель по CI/CD и Kubernetes для Go-разработчиков
— Нативные подписки с роутером Cosmo
— Odinbit, игра моей мечты и процесс её создания. С нуля до первой публичной версии
— GoLand и его фишки
— Конкурентность и параллелизм в Go
— Go повышение производительности в версиях с 1.0 по 1.22
— Введение в Router Cosmo — потрясающе быстрый шлюз с открытым исходным кодом Federation V1/V2
— Пространство имен для GraphQL: Бесконфликтное объединение любого количества API
— Building "Journal Buddy": A Custom GPT for Personal Reflection
— Progress in My P2P Library: A Work in Progress
— What Happens After Agile Dies?
— Why should you try GoCfg or yet another Go config manager
— Exploiting HTTP/2 CONTINUATION frames for DoS attacks
— Gorabbit: RabbitMQ supercharged for Go Applications
— Build a CLI tool : Generating hex dumps with Golang
Посмотреть:
🌐Создание Redis с нуля на Golang (⏱ 02:49:24)
🌐 Mastering And Taming NIL Pointers in Golang For Beginners (⏱ 13:24)
🌐 How To Build A Complete Distributed File Storage In Golang (⏱ 09:57:01)
🌐 If U Use GitHub CO-PILOT I Wont Hire You!? (⏱ 11:21)
🌐 Programming Career Paths, Roadmaps, LeetCode, And Salaries (⏱ 02:28:42)
🌐 Building Redis In Golang And NeoVim Setup With ThePrimeagen (⏱ 03:28:48)
🌐 Building Redis From Scratch In Golang - Learn Go Like A PRO (⏱ 02:49:29)
🌐 Developers Do NOT Understand the POWER Of HTMX (⏱ 10:31)
Хорошего дня!
@Golang_google
🔥Подборка лучших обучающих каналов для программистов.
➡️ Делитесь с коллегами и сохраняйте себе, чтобы не потерять
⚡Машинное обучение
Machine Learning - запускаем лучшие ИИ модели, пишем код, погружаемся в нейросети
Ml Собеседование - подготовка к собесу по мл, алгоритмам, коду
Ml ru - актуальные статьи, новости, код и обучающие материалы
Ml Jobs - вакансии ML
ML Книги - актуальные бесплатные книги МО
ML чат
🏆 Golang
Golang
Golang собеседование - разбор задач и вопросов с собесов
Golang вакансии -работа для Go разработчика
Golang книги библиотека книг
Golang задачи и тесты
Golang чат
Golang news - новости из мира go
Golang дайджест
💥 Linux /Этичный хакинг
Linux Academy - гайды, секреты и лучшие материалы по Linux
Kali linux - погрузись в мир этичного хакинга и кибербезопасности
linux_kal - kali чат
Информационная безопасность
🚀 Data Science
Анализ данных - полезные фишки, код, гайды и советы, маст-хэв датасаентиста
Data Jobs - ds вакансии
Аналитик данных
Data Science книги - актуальные бесплатные книги
Big data
🛢Базы данных
Sql базы данных - научим работе с базами данных профессионально
Библиотека баз данных
SQL чат
Вакансии Sql аналитик данных
#️⃣C#
С# академия - лучший канал по c#
С# заметки — код, лучшие практики, заметки программиста c#
С# задачи и тесты
С# библиотека - актуальные бесплатные книги
C# вакансии - работа
🐍 Python
Python/django - самый крупный обучающий канал по Python
Python Собеседование - подготовка к собеседовению python и разбор алгоритмов
Pro python - статьи, новости, код и обучающие материалы
Python Jobs - вакансии Python
Python чат
Python книги
☕ Java
Java академия - java от Senior разработчика
Java вакансии
Java чат
Java вопросы с собеседований
Java книги
💻 C++
C++ академия
С++ книги
C++ задачи - подготовка к собеседовению мл, алгоритмам
C++ вакансии
⚡️ Frontend
Javascript академия - крупнейший js канал
React - лучшие гайды и советы по работе с react
Frontend - тутрориалы, уроки, гайды, код
PHP
Книги frontend
Задачи frontend
🦀 Rust
Rust программирование
Rust чат
Rust книги для программистов
📲 Мобильная разработка
Android разработка
Мобильный разработчик гайды и уроки
🇬🇧 Английский для программистов
🧠 Искусственный интеллект
ИИ и технологии
Neural - нейросети для работы и жизни
Книги ИИ
Artificial Intelligence
🔥 DevOPs
Devops для программистов
Книги Devops
🌟 Docker/Kubernets
Docker
Kubernets
📓 Книги
Библиотеки Книг для программситов
💼 Папка с вакансиями:
Папка Go разработчика:
Папка Python разработчика:
Папка Data Science
Папка Java разработчика
Папка C#
Папка Frontend
➡️ Делитесь с коллегами и сохраняйте себе, чтобы не потерять
⚡Машинное обучение
Machine Learning - запускаем лучшие ИИ модели, пишем код, погружаемся в нейросети
Ml Собеседование - подготовка к собесу по мл, алгоритмам, коду
Ml ru - актуальные статьи, новости, код и обучающие материалы
Ml Jobs - вакансии ML
ML Книги - актуальные бесплатные книги МО
ML чат
🏆 Golang
Golang
Golang собеседование - разбор задач и вопросов с собесов
Golang вакансии -работа для Go разработчика
Golang книги библиотека книг
Golang задачи и тесты
Golang чат
Golang news - новости из мира go
Golang дайджест
💥 Linux /Этичный хакинг
Linux Academy - гайды, секреты и лучшие материалы по Linux
Kali linux - погрузись в мир этичного хакинга и кибербезопасности
linux_kal - kali чат
Информационная безопасность
🚀 Data Science
Анализ данных - полезные фишки, код, гайды и советы, маст-хэв датасаентиста
Data Jobs - ds вакансии
Аналитик данных
Data Science книги - актуальные бесплатные книги
Big data
🛢Базы данных
Sql базы данных - научим работе с базами данных профессионально
Библиотека баз данных
SQL чат
Вакансии Sql аналитик данных
#️⃣C#
С# академия - лучший канал по c#
С# заметки — код, лучшие практики, заметки программиста c#
С# задачи и тесты
С# библиотека - актуальные бесплатные книги
C# вакансии - работа
🐍 Python
Python/django - самый крупный обучающий канал по Python
Python Собеседование - подготовка к собеседовению python и разбор алгоритмов
Pro python - статьи, новости, код и обучающие материалы
Python Jobs - вакансии Python
Python чат
Python книги
☕ Java
Java академия - java от Senior разработчика
Java вакансии
Java чат
Java вопросы с собеседований
Java книги
💻 C++
C++ академия
С++ книги
C++ задачи - подготовка к собеседовению мл, алгоритмам
C++ вакансии
⚡️ Frontend
Javascript академия - крупнейший js канал
React - лучшие гайды и советы по работе с react
Frontend - тутрориалы, уроки, гайды, код
PHP
Книги frontend
Задачи frontend
🦀 Rust
Rust программирование
Rust чат
Rust книги для программистов
📲 Мобильная разработка
Android разработка
Мобильный разработчик гайды и уроки
🇬🇧 Английский для программистов
🧠 Искусственный интеллект
ИИ и технологии
Neural - нейросети для работы и жизни
Книги ИИ
Artificial Intelligence
🔥 DevOPs
Devops для программистов
Книги Devops
🌟 Docker/Kubernets
Docker
Kubernets
📓 Книги
Библиотеки Книг для программситов
💼 Папка с вакансиями:
Папка Go разработчика:
Папка Python разработчика:
Папка Data Science
Папка Java разработчика
Папка C#
Папка Frontend