Библиотека Go-разработчика | Golang
23.3K subscribers
2.08K photos
42 videos
87 files
4.45K links
Все самое полезное для Go-разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/32d20779

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a4a8c2468
Download Telegram
Это не реклама, а обзор книги «Golang для профи: Создаем профессиональные утилиты, параллельные серверы и сервисы, 3-е изд.»

Третье издание «Golang для профи» исследует практические возможности Go и описывает такие продвинутые темы, как конкурентность и работа сборщика мусора Go, использование Go с Docker, разработка мощных утилит командной строки, обработка данных в формате JSON и взаимодействие с базами данных.

Кроме того, книга дает дополнительные сведения о работе внутренних механизмов Go, знание которых позволит оптимизировать код на Go и использовать типы и структуры данных новыми и необычными способами.

👀Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
👍242🌚1
🧰 static-server — как python -m SimpleHTTPServer <port>, только на Go.

Развернуть статический файловый сервер на Go всегда было просто:

package main

import "net/http"

func main() {
port := ":8080"
handler := http.FileServer(http.Dir("."))
http.ListenAndServe(port, handler)
}


Но у Eli Bendersky есть другой способ. Стоит попробовать:

$ go run github.com/eliben/static-server@latest
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19
🔝 Приоритизация задач по методу MoSCoW: как за 5 минут научиться грамотно расставлять приоритеты

Читать статью

#туториал
👍31🔥1🤔1🥱1
Категоризация интерфейсов Go из стандартной библиотеки v1.21 — документ, который является частью большой работы (видимо, книги) и представляет собой отличный способ разобраться с работой интерфейсов под капотом.

📌Внутри следующие категории:

• Algorithms
• Data
• Drivers
• File systems
• Getting and/or Setting
• Implementation
• Membership
• Parsing
• Process control
• Protocols
• Reading and/or Writing
• Representation
• Subtypes

🔗 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍5
📖 100 ошибок в Go и как их избежать

Скорее всего, вы слышали о книге Teiva Harsanyi 100 Go Mistakes and How to Avoid Them. Возможно, вы не знаете, что в общем доступе есть сокращенная версия книги. В ней собраны все ошибки из книги.

🔗GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17
Битва за производительность: SparseMap vs GenerationsMap

Пока Искандер Шарипов занимался своими геймдев-задачами, натолкнулся на то, что get и set у sparse map из статьи Расса Кокса довольно медленные. Из-за чего преимущество быстрого reset иногда перекрывались.

То есть: что банальный слайс, что sparse map, давали +/- одинаковое время исполнения. В одном случае reset занимал больше времени, а в другом — время исполнения росло из-за более дорогих get+set.

А вот штука, описанная в статье, умеет и в мгновенный reset, и в более эффективные get+set.

🔗 Читать
🔥121
🦸 9 способов настройки градиента цели для поддержания мотивации

Разбираемся, как настроить себя идти до конца, преодолевая препятствия и лень.

Читать статью

#саморазвитие
🔥1🥱1
This media is not supported in your browser
VIEW IN TELEGRAM
🧰fx долгое время был полезным инструментом для просмотра JSON-файлов, но за дело взялся SRE из Google Антон Медведев.

👨‍🔧Антон переписал fx с нуля, добавив новый тематический вид TUI, поиск по регулярным выражениям, нечеткий поиск и поддержку «даже самых массивных JSON-файлов».

🤩Поистине крутой инструмент и отличный пример использования преимуществ Go.

🔗fx 30.0.0
👍21🔥8
Практический взгляд на пакет slogtest

В пакете slog есть обработчик, который определяет формат вывода логов по умолчанию: один выводит JSON, а другой key=value. В дополнение к ним slog позволяет относительно легко создать кастомные обработчики. Если хотите погрузиться в тему подробнее, есть целое руководство по написанию последних.

Но как протестировать этот самый кастомный обработчик? На помощь приходит пакет testing/slogtest. Он очень прост в использование и помогает среди прочего убедиться, что ваш обработчик соблюдает все необходимые правила. Под катом — практический взгляд на достоинства и недостатки тестирования обработчика с помощью slogtest👇

🔗 Читать
👍10🤔1
💬Есть ли у вас собственный проект на Go с открытым исходным кодом? Неважно, где и как вы его используете: для рабочих проектов или в личных целях. Это в любом случае интересно. Если их несколько, расскажите об одном, который больше всего достоин внимания.

🫶Ждем ваши проекты в комментариях👇

#инструменты
👍13🌚1
🚀Интересные докладчики и не менее интересные темы. Погнали:

🌐Дмитрий Логовский, руководитель группы разработки «Оформление заказа».  

Доклад «Как заставить вашу базу-данных держать 20K RPS, варианты масштабирования и их минусы» о том, как правильно скейлить вашу БД от 1 RPS до 20К RPS, какие подходы к масштабированию существуют и какие неочевидные минусы есть в этих подходах.

🌐Антон Коновалов, руководитель отдела разработки продукта «Сегменты и триггерные коммуникации».

Доклад «RoaringBitmap: что это такое и как мы это используем» о том, что такое битмапы и как устроены RoaringBitmap, как с ними работать в Go и как это используется в Ozon при работе с сегментами.

🌐Владислав Сидоров, руководитель группы разработки «Инструменты поисковой оптимизации».

Доклад «Protocol Buffers: про то что все знают или не знают» про protobuf: типы данных, сообщения, нумерация полей, перечисления, коллекции, возможности безопасного обновления контракта и многое другое.

⏱️Таймкоды:

5:15 Приветствие

7:13 «Как заставить вашу БД держать 20к RPS: варианты масштабирования и их минусы» - Дмитрий Логовский
8:22 1. Репликация
19:09 2. Партиционирование
25:19 3. Шардирование
31:09 Вопросы

44:21 «RoaringBitmap: что это и как мы это используем» — Антон Коновалов
45:55 1. Что такое битмапы
51:01 2. При решении каких задач мы используем bitmap в отделе «Сегменты и триггерные коммуникации»
58:52 Как написать свой маленький bitset на Go
1:08:12 3. RoaringBitmap
1:19:20 Вопросы

1:32:46 «Protocol Buffers: про то, что все знают или не знают» — Владислав Сидоров
1:33:09 Введение
1:35:55 Style guide
1:37:36 Скалярные типы
1:39:00 Enum'ы
1:40:05 Коллекции
1:42:32 Демонстрация
1:48:17 Базовые правила
2:02:05 OneOf
2:05:30 Вопросы

2:17:20 QR с фидбеком

#чтопроисходит
Please open Telegram to view this post
VIEW IN TELEGRAM
👍131
⚡️Команда Go наконец-то представила свою позицию относительно организации модуля Go

Распространенный вопрос, который возникает у начинающих Go-разработчиков: «Как организовать проект?» с точки зрения расположения файлов и каталогов.

Цель документа — предоставить некоторые рекомендации, которые помогут ответить на этот вопрос. Чтобы максимально эффективно его использовать, убедитесь, что вы знакомы с основами модулей Go.
👍45🔥12
This media is not supported in your browser
VIEW IN TELEGRAM
🤩🖼️ Рай для Go-разраба выглядит примерно так
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥65🥱286👍3😁3
💡Вам нужно быстро удалить модуль? Используйте none:

$ go get modernc.org/sqlite@none

Эта команда удалит модуль из go.mod.

#tip
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥637🙏6🌚1
⚒️Failsafe-go — новая библиотека для создания отказоустойчивых Go-приложений. Она позволяет обернуть код различными «политиками», которые можно комбинировать и составлять по мере необходимости. Политики включают: Retry, Circuit Breaker, Rate Limiter, Timeout, Bulkhead, and Fallback.

👉 Подробнее
👍15🔥5
🌐 Cross-origin resource sharing (CORS) — механизм современных браузеров, который позволяет предоставить веб-страницам доступ к ресурсам другого домена.

Eli Bendersky разбирается с CORS и показывает, что нужно знать Go-разработчику про этот механизм при разработке веб-приложений.

🔗 Читать
👍111
🖼️ Go продолжает развиваться, а вместе с ним развивается и вся экосистема. В частности, появляются новые и обновляются существующие фреймворки.

💬Если бы вы начали разработку крупномасштабного веб-приложения на Go с нуля со всеми новомодными фичами, какой фреймворк вы бы использовали?

#холивар
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
👀 Повышаем качество код-ревью: 7 полезных советов

В данной статье мы рассмотрим 7 практических советов, следуя которым можно значительно повысить качество проверки кода.

🔗Читать статью
🔗Зеркало
👍7😁2