beego для веб приложений, api и демонов
TRANSCRIPT
Антон Пискунов,
- с 2008 г. - фриланс - с 2011 г. - веб-студии - с 2012 г. - хайлоад
Более 300 завершенных проектов Больше 10 эпичных факапов
Бэкграунд
Кто пришел в GOLang из PHP / Ruby / Python?
teamkey.ru
Что мы разрабатываем на BeeGo?
Командный менеджер паролей имеющий две формы поставки:
- облако - коробочное решение
Почему GOLang?
Нам требовалось компилируемое решение позволяющие поставлять продукт в виде бинарного файла полностью скрывающего всю реализацию
У нас уже был опыт работы с GOLang
Демон который рассылает адовое количество нотификаций с помощью VK API
Почему GOLang?
Мы хотели писать быстро и продуктивно.
Это был единственный критерий.
Okay, Google. Give us framework
В целом схож с BeeGo, типичный MVC представитель, но есть проблема - ORM как таковой нет.
Плюс есть мелкие косяки, то здесь, то там. Весь интернет прошелся по не самой лучшей поддержке «go test».
Revel
Больше похож на Express под node.js чем на типичный MVC фреймворк.
По факту это роутер, но не полноценная платформа.
Martini
Это тулкит.
Gorilla Web Toolkit
Итак, BeeGo или Revel?
Эники-беники, ели вареники…
- Типичное, каноническое MVC - Привычный набор инструментов классического фреймворка
- ORM/SQL - Swagger - Live Monitor - Прекрасная документация
BeeGo
RESTful SPA приложение и есть внешние сервисы которые требуют чёткое REST API
API должно версионироваться
Sweet API
Автодокументация
Используя авто-документацию можно забыть о проблемах поддержки API
За счёт того что не все в GOLang сообществе понимают как это работает мы были вынуждены потратить больше 10 часов на решение проблем
Кросс-компиляция
env CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -o output_binary_64
env CGO_ENABLED=1 GOOS=linux GOARCH=386 go build -o output_binary_32
Кросс-компиляция
Тривиальных путей нет, а не тривиальных мы еще не нашли
Демонизация
Либо мэйнтейнить в BeeGo, либо делать форк, либо хардкодить прямо в либе
Демонизация
Как в таком случае таскать за собой статику?
Демонизация, компиляция и все-все-все
Любое решение в итоге сведется к хранению ассетов в памяти
Демонизация, компиляция и все-все-все
bee bale
Демонизация, компиляция и все-все-все
Почему половина cloud-версии написана на PHP?
- скорость разработки - подходящие инструменты
GOLang это заебись, но не всегда
- Symfony 2 - github.com/yvasiyarov/php_session_decoder - github.com/reiver/go-php
GOLang это заебись, но не всегда
Документация beego.me
Основной репозиторий github.com/astaxie/beego
Репозиторий инструментов github.com/beego
Полезные ссылки
AstaXie фаундер BeeGo, ведущий разработчик
Slene разработчик ORM, помогает в разработке примеров и сайта
Разработчики
ClownFish разработчик административных инструментов
Lei Cao основной создатель англоязычной документации и ресурсов
Разработчики
HellsHamsters Team основной создатель русскоязычной документации
Разработчики
Всегда актуальный репозиторий
github.com/HellsHamsters/beedoc
Русская документация
Есть определенный список проблем которые видим мы для себя Не факт что они могут совпадать со взглядами core-team
Проблемы
- bee bale - модульность views & static - easy / integrated daemon - ???
Проблемы
hellshamsters.com vk.com/smile42ru
До встречи!