Ловите плейлист с мини-лекциями от Go-разработчика Ильдара Карымова или смотрите интересующую тему отдельно:
🌐 Тесты: что нужно знать разработчику
🌐 Всё про конкурентность в Go
🌐 Туториал по дженериками Go
🌐 Golangci-lint: повышаем качество кода на Go
🌐 Туториал по интерфейсам в Go
🌐 Завершаем программы изящно: graceful shutdown в Go
🌐 Туториал по работе с пакетом Context в Go
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22💯2🌚1
Это не реклама, а обзор книги «Golang для профи: Создаем профессиональные утилиты, параллельные серверы и сервисы, 3-е изд.»
Третье издание «Golang для профи» исследует практические возможности Go и описывает такие продвинутые темы, как конкурентность и работа сборщика мусора Go, использование Go с Docker, разработка мощных утилит командной строки, обработка данных в формате JSON и взаимодействие с базами данных.
Кроме того, книга дает дополнительные сведения о работе внутренних механизмов Go, знание которых позволит оптимизировать код на Go и использовать типы и структуры данных новыми и необычными способами.
👀 Читать
Третье издание «Golang для профи» исследует практические возможности Go и описывает такие продвинутые темы, как конкурентность и работа сборщика мусора Go, использование Go с Docker, разработка мощных утилит командной строки, обработка данных в формате JSON и взаимодействие с базами данных.
Кроме того, книга дает дополнительные сведения о работе внутренних механизмов Go, знание которых позволит оптимизировать код на Go и использовать типы и структуры данных новыми и необычными способами.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24❤2🌚1
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
GitHub
GitHub - eliben/static-server: A simple, zero-configuration HTTP server CLI for serving static files
A simple, zero-configuration HTTP server CLI for serving static files - eliben/static-server
👍19
Forwarded from Библиотека тестировщика | QA, тестирование, quality assurance, manual testing, autotesting, ручное тестирование, автотесты
🔝 Приоритизация задач по методу MoSCoW: как за 5 минут научиться грамотно расставлять приоритеты
Читать статью
#туториал
Читать статью
#туториал
👍3⚡1🔥1🤔1🥱1
📌Внутри следующие категории:
• 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
Gist
Categorizing Go Interfaces from the StdLib.md
Categorizing Go Interfaces from the StdLib.md. GitHub Gist: instantly share code, notes, and snippets.
🔥13👍5
Скорее всего, вы слышали о книге 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.
🔗 Читать
Пока Искандер Шарипов занимался своими геймдев-задачами, натолкнулся на то, что get и set у sparse map из статьи Расса Кокса довольно медленные. Из-за чего преимущество быстрого reset иногда перекрывались.
То есть: что банальный слайс, что sparse map, давали +/- одинаковое время исполнения. В одном случае reset занимал больше времени, а в другом — время исполнения росло из-за более дорогих get+set.
А вот штука, описанная в статье, умеет и в мгновенный reset, и в более эффективные get+set.
🔗 Читать
Хабр
Битва за производительность: SparseMap vs GenerationsMap
Есть такая занимательная структура данных, описанная в статье Russ Cox — sparse map. Она используется, например, в недрах компилятора Go . А ещё в некоторых пакетах его стандартной библиотеки . У неё...
🔥12❤1
Forwarded from Библиотека девопса | DevOps, SRE, Sysadmin
🦸⚡ 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
👨🔧Антон переписал fx с нуля, добавив новый тематический вид TUI, поиск по регулярным выражениям, нечеткий поиск и поддержку «даже самых массивных JSON-файлов».
🤩Поистине крутой инструмент и отличный пример использования преимуществ Go.
🔗fx 30.0.0
👍21🔥8
Практический взгляд на пакет slogtest
В пакете slog есть обработчик, который определяет формат вывода логов по умолчанию: один выводит JSON, а другой key=value. В дополнение к ним slog позволяет относительно легко создать кастомные обработчики. Если хотите погрузиться в тему подробнее, есть целое руководство по написанию последних.
Но как протестировать этот самый кастомный обработчик? На помощь приходит пакет testing/slogtest. Он очень прост в использование и помогает среди прочего убедиться, что ваш обработчик соблюдает все необходимые правила. Под катом — практический взгляд на достоинства и недостатки тестирования обработчика с помощью slogtest👇
🔗 Читать
В пакете slog есть обработчик, который определяет формат вывода логов по умолчанию: один выводит JSON, а другой key=value. В дополнение к ним slog позволяет относительно легко создать кастомные обработчики. Если хотите погрузиться в тему подробнее, есть целое руководство по написанию последних.
Но как протестировать этот самый кастомный обработчик? На помощь приходит пакет testing/slogtest. Он очень прост в использование и помогает среди прочего убедиться, что ваш обработчик соблюдает все необходимые правила. Под катом — практический взгляд на достоинства и недостатки тестирования обработчика с помощью slogtest👇
🔗 Читать
GitHub
example/slog-handler-guide/README.md at master · golang/example
Go example projects. Contribute to golang/example development by creating an account on GitHub.
👍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
👍13❤1
⚡️Команда Go наконец-то представила свою позицию относительно организации модуля Go
Распространенный вопрос, который возникает у начинающих Go-разработчиков: «Как организовать проект?» с точки зрения расположения файлов и каталогов.
Цель документа — предоставить некоторые рекомендации, которые помогут ответить на этот вопрос. Чтобы максимально эффективно его использовать, убедитесь, что вы знакомы с основами модулей Go.
Распространенный вопрос, который возникает у начинающих Go-разработчиков: «Как организовать проект?» с точки зрения расположения файлов и каталогов.
Цель документа — предоставить некоторые рекомендации, которые помогут ответить на этот вопрос. Чтобы максимально эффективно его использовать, убедитесь, что вы знакомы с основами модулей Go.
👍45🔥12
This media is not supported in your browser
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥65🥱28❤6👍3😁3
$
go get modernc.org/sqlite@none
Эта команда удалит модуль из go.mod.
#tip
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥63❤7🙏6🌚1
⚒️Failsafe-go — новая библиотека для создания отказоустойчивых Go-приложений. Она позволяет обернуть код различными «политиками», которые можно комбинировать и составлять по мере необходимости. Политики включают: Retry, Circuit Breaker, Rate Limiter, Timeout, Bulkhead, and Fallback.
👉 Подробнее
👉 Подробнее
Failsafe-go
Policies
Failsafe-go website
👍15🔥5
🌐 Cross-origin resource sharing (CORS) — механизм современных браузеров, который позволяет предоставить веб-страницам доступ к ресурсам другого домена.
Eli Bendersky разбирается с CORS и показывает, что нужно знать Go-разработчику про этот механизм при разработке веб-приложений.
🔗 Читать
Eli Bendersky разбирается с CORS и показывает, что нужно знать Go-разработчику про этот механизм при разработке веб-приложений.
🔗 Читать
👍11❤1
💬Если бы вы начали разработку крупномасштабного веб-приложения на Go с нуля со всеми новомодными фичами, какой фреймворк вы бы использовали?
#холивар
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Forwarded from Библиотека шарписта | C#, F#, .NET, ASP.NET
👀 Повышаем качество код-ревью: 7 полезных советов
В данной статье мы рассмотрим 7 практических советов, следуя которым можно значительно повысить качество проверки кода.
🔗Читать статью
🔗Зеркало
В данной статье мы рассмотрим 7 практических советов, следуя которым можно значительно повысить качество проверки кода.
🔗Читать статью
🔗Зеркало
👍7😁2