Тулзовины и хреновины 28
Немного задержавшийся в пути выпуск "тулзовин", в котором много ссылок на статьи и проекты. Если вы еще не полностью погрязли в праздновании хэллоуина, то можете узнать последние новости из мира Go, послушать подкаст GolangShow и напрячь мозги для решения свежего Go Challenge.
Всем страшных выходных!
Новости
- Новый выпуск Go Newsletter 82.
- Свежий "Go Challenge" для желающих попрактиковаться. Теперь будем решать судоку.
- Русскоязычный подкаст о Go. Выпуск 024 о SpaceX и net/context. И выпуск 025 о medium и RTB.
- В elastic написали свою тулзу для сбора логов. Как Logstash Forwarder, только лучше.
- Для тестирования плагина SublimeText Go нужны добровольцы.
- Предложение по улучшению Go GC "Proposal: Dense mark bits and sweep-free allocation".
- Пора заказывать книгу "The Go Programming Language".
Проекты
- bidderd - Набор инструментов для работы с RTBKIT через HTTP интерфейс.
- goherokuname - Генератор рандомных имен в стиле heroku.
- stemmer - Реализация алгоритма PorterStemmer для работы со словами.
- statsd - Простой и эффективный клиент для statsd. Кушает память более разумно.
- apollo - Пакет который упрощает работу с net/context. Работает как миделваре.
- udger - Клиент к базе юзер агентов. Можете получать информацию по UA в удобной форме.
- micro - Тулкит для построения микросервисов на Go.
- modules - Пакет реализующий паттерн внедрение зависимости.
- gobgp - Открытая реализация BGP на языке Go.
- imaginary - Микросервис для обработки изображений, написанный на Go.
- vegeta - Инструмент для нагрузочного тестирования HTTP.
- etcd-mesos - Запускаем Apache Mesos на coreos кластере. Пока альфа версия.
- ghkeys - Простая тулза для получения публичных ключей пользователей с GitHub.
- go-lambda-geoip - Простой пример Go приложения для AWS Lambda с использованием обертки на Node.js.
- vcs - Пакет предоставляющий единый интерфейс для работы с различными системами контроля версий.
- goss - Тулза для быстрой проверки сервера по заданным параметрам.
- lego - Простой клиент для Encrypt и обетрка на ACME либой.
- gitgo - Предоставляет набор функций на чистом Go для работы с git репозиториями.
- grbgo - Пакет, который упрощает работу с вашим git репозиторием. Например, добавляет поиск по веткам.
- gorpc - Обертка над стандартной net/rpc либой, но с дополнительными плюшками.
- goofys - Быстрая файловая система для S3, написанная на Go.
- Fabio - Быстрый, модный, молодежный и легко конфигурируемый балансер HTTP(s) для микросервисов.
- readeef - Свой собственный агрегатор фидов. Для всех, кто скучает по GoogleReader.
- fast-elliptic-curve-p256 - Усовершенствованная либа для работы с elliptic curve от Влада Краснова и Shay Gueron.
- sharding - В пакет для работы с PostgreSQL вкрутили шардинг
- siberite - Сервер для очередей сообщений с бекендом на leveldb.
- stats - Набор типов и методов для работы с статистическими данными.
- vibrant - Либа для получения палитры по изображению. Порт Vibrant.js на Go.
- qpm - Менеджер пакетов для... Qt! Помогает искать, устанавливать и публиковать Qt компоненты.
- prettybenchmarks - Пакет, который выводит результаты бенчмарков в значительно более красивом виде.
- govisor - Фреймворк для управления сервисами. Как supervisord, только на Go.
- go-telnet - Аналог всем известного телнета. Но может ждать ответа и читать байты со стандартного ввода.
- dockerpc - Пакет, который позволяет реализовать JSON-RPC поверх Docker плагина.
- drive - Консольный клиент для Google Drive написанный на Go.
- helen - Пакет для работы с ассетами в веб-приложениях на Go.
- megos - Пакет для доступа к информации Apache Mesos кластера.
- hraftd - Пример использования хешикорповской реализации Raft для создания распределенного хранилища.
- Go Peerflix - Порт джаваскриптового торрент клиента peerflix.
- dnsseeder - DNS сидер для сетей организованных по Bitcoin технологии.
- limiter - Простое миделваре которое ограничивает количество запросов к вашему приложению.
- gabs - Пакет, который упрощает работу с JSON. Идеально подходит для случаев, когда мы точно не знаем схему получаемого JSON.
- resty - Простой HTTP клиент для работы с REST. Вдохновлен рубишным REST клиентом.
- go-minilock - Порт системы шифрования файлов minilock на чистый Go. Консольные тулзы идут в комплекте.
- factory-go - Пакет для генерации фикстур. Написан под впечатлением от factory_boy и factory_girl.
- go-ini - Пакет для работы с ini файлами в Go(чтение, запись). Вот это все.
- gunter - Система конфигурации для Go приложений построенная по KISS принципу.
- TinyWM - Порт TinyWM на язык программирования Go.
- validator - Пакет для валидации полей структуры.
- passlib - Либа для работы с паролями. Написана под вдохновением от питоновской passlib.
- rayito - Трейсер для освещения. Написан на Go. Полезный проект, если вы хотите занимаетесь компьютерной графикой.
- aproxy - Обратная прокси с авторизацией и красивой админкой.
- go-bitmap - Реализация потокобезопасной bitmap и некоторые полезные абстракции.
- gore - Еще один REPL для Go. Выглядит неплохо.
- filetype - Небольшой пакет для проверки типов файлов и MIME по магическим номерам.
- gorx - Пакет, реализующий Reactive eXtensions в языке программирования Go.
- utron - Еще один легковесный MVC фреймворк на Go.
Статьи
- Кажется, поиск в map дороже чем O(1). Перевод статьи "Go Maps Don’t Appear to be O(1)".
- Диспетчер Go. Перевод статьи "The Go scheduler" от Daniel Morsing.
- Учимся использовать FlatBuffers в своих Go приложениях.
- Хабрастатья "Почему Go это хорошо продуманный язык программирования".
- Статья в блоге couchbase "Performing Bulk Operations in Couchbase Using Golang "
- Упражнения по Golang Concurrency. Учимся думать параллельно.
- Хорошая статья о том как уcтроен medium. Они там Go используют.
- go-web-seed - Репозиторий с базовой структурой веб-проекта на Go. Отправная точка для старта.
- Хабрастатья "С чего начать новичку в Go".
- Используем Autocode при разработке на Go. Автоматизируем все.
- Пишем быстрый дедупликатор для стримов на Go.
- Guartz - простой планировщик с серверным API. Учимся использовать.
- Распаковываем git packfiles с помощью Go.
- Хабрастатья "Изучаем net/context в Go".
- Моноиды для гоферов. Больше функциональщины и умных слов.
- Пытаемся прикрутить дженерики к Go. Боль и мучения. Слезы.
- Запускаем наше Go приложение на Azure App Service.
- Пишем простую игру с использованием GoMobile
- Повторное использование Go кода и как в этом могут помочь шаблоны(не дженерики).
- Небольшой пятничный пост от Dave Cheney: "Bootstrapping Go 1.5 on non Intel platforms".
- Возвращаем ошибки из функции. Какие есть способы.
- Использование встраивания и композиции для написания боле тестируемого кода.
- Красиво обрабатываем и отдаем HTTP ошибки в веб приложения.
- Хабраперевод "Тайна финализаторов в Go".
- Учимся работать с HTTP/2 на Go. Пример сервера и клиента.
- Статья "A look at Go scanner packages". Работаем с парсерами и лексерами.
- Асинхронный ридер на Go и специальный пакет для этого.
- Все видосы с GolangUK 2015. Пост в официальном блоге Go.
- Хабраперевод "Бенчмарки в Go". Ускоряем свои приложения.
- Используем Go для написания плагинов к Ruby. Чуть более углубленное понимание темы.
- Настраиваем и используем gore. Это такой удобный REPL для Go.
- Новая статья от Dave Cheney про пагинацию памяти и насколько все не просто.
- Хабрастатья "Разработка менеджера закачек на GO".
- Хабраперевод "Перевод: Один год с Go".
- Изучаем Go, работу с GraphQL и Relay. Первая статья в серии про фейсбуковскую GraphQL и Go.
- В InfluxDB появилось новое хранилище с новыми плюшками и улучшениями.
- Toy Spelling Corrector - Игрушечная проверка орфографии, основанная на статье "How to Write a Spelling Corrector".
- "Consuming JSON APIs with Go" - Пример использования Go для работы со сторонним АПИ.
- Используем Go в связке с Swift. Разбираемся с gomobile для iOS.
- Интеграция Go приложения с сишной либой на примере Wordnet.
- "Go Maps Don’t Appear to be O(1)" - замечательная статья про Go мапы и их устройство.
- Пример запуска вашего сервиса в Docker. Сервис, конечно, на Go.
- Использование ZeroMQ в Go приложениях. И какие проблемы ждут вас на этом пути.
- Пример не очевидного рейса в Go приложении.
- Использование defer, проверка ошибок и всякие проблемы связанные с этим.
- Небольшой сюрприз в производительности GopherJS.
- Перехватываем события нажатия клавиш в Go приложении.
Видео
- Go в автобусе. Максим Чечель на Go Meetup SPb 01.10.2015 рассказывает о использовании Go в транспорте.
- O дебагере delve и его интеграции. Сергей Игнатов рассказывает о дебагере delve и его интеграции
- Как ВКонтакте использует Go. Алексей Акулович про ВКонтакте и использование Go. Слайды.
- Введение в gb. Dave Cheney рассказывает про правильное использование написанного им gb - инструмента для управления зависимостями.
- Строим банк на Go. Matt Heath на Golang UK Conference 2015 рассказывает о том как строить банковскую систему на Go и как ее потом сопровождать, какие подводные камни встречаются на этом пути.
Инструменты
- helm - Менеджер пакетов для Kubernetes. Написан, конечно же, на Go.
- Удобный онлайн инструмент для проверки регулярок , используемых в Go приложениях.
- gobenchui - UI для бенчмарков. Позволяет очень наглядно сравнивать результаты.
- Src - Тулза, которая быстро поможет найти где в исходниках функция
main
. - Используем Makefile для работы с gotools. Некоторые приемы и хитрости.
- stack - Легковесное не фреймворочное RESTful API, которое позволит вам быстро начать свой проект.
Всякое
- dailymotion рассказывают как они пришли к использованию Go в продакшене.
- Воу-воу-воу! В SpaceX тоже используют Go. Полетит?
- Сайт с темами для Hugo. Теперь можно сначала посмотреть превью темы.
- Небольшой опрос для проверки своих знаний по Go.
- prime - Либа для расчета простых чисел на Go. Использует все доступные процессоры для расчета.
- juke - Еще один вариант терминальной змейки.
- Пример применения паттерна Dependency Injection в Go.