Страницы

Показаны сообщения с ярлыком Go. Показать все сообщения
Показаны сообщения с ярлыком Go. Показать все сообщения

пятница, 29 марта 2019 г.

Golang RESTful gRPC

Нельзя просто взять и написать структуры (классы) доступа к данным Protocol BuffersgRPC API начинается со спецификации. HTTP API может существовать и без спецификации. Тем не менее, по понятным причинам, трудно найти коммерческий HTTP API без какого-нибудь OpenAPI (он же Swaggerон же Гога, он же Жора). В экосистеме gRPC есть инструмент по имени grpc-gateway, который может оказаться очень полезным в случае необходимости "прикрутить" HTTP JSON API к gRPC API. Он позволяет генерировать код reverse-proxy, а также спецификацию в формате OpenAPI,  используя определения в файлах .proto, что упрощает как разработку, так и поддержку.

воскресенье, 10 февраля 2019 г.

Golang generics wanted

Вот уже несколько месяцев я пишу на Go и мне это нравится. Инструменты разработки просто супер. Visual Studio Code решает. Язык простойGo 2 в процессеМодули уже здесь, и судя по всему скоро станут еще лучше. Обработка ошибок после коллбэков не самое страшное. Сами по себе ошибки страшнее, но с помощью существующих сторонних решений можно как-то перетерпеть. А вот дженериков не хватает уже сейчас: дублировать код функций, создавать новые структуры там где нет никакой разницы какого типа аргумент или поле - занятие на любителя.

воскресенье, 29 октября 2017 г.

Going to gRPC

Недавно начал инвестигировать gRPC + Protocol Buffers. В Node.js профит сомнительный, по крайней мере до тех пор пока не появится стабильный http/2 (без флага --expose-http2), тем не менее никто не мешает уже сейчас использовать другую платформу, я бы предпочел Go. Первое знакомство с Node.js прошло без проблем, а вот с Go пришлось повозиться: скачать C++ реализацию protobuf, сбилдить protoc.exe с помощью CMake, после чего сбилдить protoc-gen-go (и не забыть добавить в переменную окружения PATH путь к protoc.exe).

воскресенье, 1 мая 2016 г.

Go Tail MongoDB

На днях написал простенький Go пакет по имени mgotail, предназначенный для получения свежих документов из MongoDB capped collections с помощью tailable cursors. Node.js модуль mongodb-tail справляется с этой задачей, но в силу своей природы не эффективен если использовать несколько процессорных ядер. Писать код на Go я начал совсем недавно, пока как говорится "верхушек нахватался", может быть поэтому решение на Go мне кажется и быстрее, и надежнее.

воскресенье, 7 декабря 2014 г.

Node version management tool for Windows

Управление версиями node.js в Windows не особенно отличается от аналогичного процесса в других осях. Прежде я использовал nvmw, но вчера мне понадобилась версия 0.11.14 и я не смог ее установить с помощью этого скрипта. Решил не выяснять причину фэйла, и уже хотел было приступить к созданию собственного велосипеда - вопрос то несложный, но все-таки лень, которая как известно двигатель прогресса, сподвигла меня поискать иное решение. В результате я познакомился с nvm-windows, написанном, внимание... на Go! Автор жжет :).