33

BeeGo для веб приложений, API и демонов

Embed Size (px)

Citation preview

Page 1: BeeGo для веб приложений, API и демонов
Page 2: BeeGo для веб приложений, API и демонов

Антон Пискунов,

- с 2008 г. - фриланс - с 2011 г. - веб-студии - с 2012 г. - хайлоад

Более 300 завершенных проектов Больше 10 эпичных факапов

Бэкграунд

Page 3: BeeGo для веб приложений, API и демонов

Кто пришел в GOLang из PHP / Ruby / Python?

Page 4: BeeGo для веб приложений, API и демонов

teamkey.ru

Что мы разрабатываем на BeeGo?

Командный менеджер паролей имеющий две формы поставки:

- облако - коробочное решение

Page 5: BeeGo для веб приложений, API и демонов

Почему GOLang?

Нам требовалось компилируемое решение позволяющие поставлять продукт в виде бинарного файла полностью скрывающего всю реализацию

Page 6: BeeGo для веб приложений, API и демонов

У нас уже был опыт работы с GOLang

Демон который рассылает адовое количество нотификаций с помощью VK API

Почему GOLang?

Page 7: BeeGo для веб приложений, API и демонов

Мы хотели писать быстро и продуктивно.

Это был единственный критерий.

Okay, Google. Give us framework

Page 8: BeeGo для веб приложений, API и демонов

В целом схож с BeeGo, типичный MVC представитель, но есть проблема - ORM как таковой нет.

Плюс есть мелкие косяки, то здесь, то там. Весь интернет прошелся по не самой лучшей поддержке «go test».

Revel

Page 9: BeeGo для веб приложений, API и демонов

Больше похож на Express под node.js чем на типичный MVC фреймворк.

По факту это роутер, но не полноценная платформа.

Martini

Page 10: BeeGo для веб приложений, API и демонов

Это тулкит.

Gorilla Web Toolkit

Page 11: BeeGo для веб приложений, API и демонов

Итак, BeeGo или Revel?

Эники-беники, ели вареники…

Page 12: BeeGo для веб приложений, API и демонов

- Типичное, каноническое MVC - Привычный набор инструментов классического фреймворка

- ORM/SQL - Swagger - Live Monitor - Прекрасная документация

BeeGo

Page 13: BeeGo для веб приложений, API и демонов

RESTful SPA приложение и есть внешние сервисы которые требуют чёткое REST API

API должно версионироваться

Sweet API

Page 14: BeeGo для веб приложений, API и демонов
Page 15: BeeGo для веб приложений, API и демонов

Автодокументация

Используя авто-документацию можно забыть о проблемах поддержки API

Page 16: BeeGo для веб приложений, API и демонов
Page 17: BeeGo для веб приложений, API и демонов

За счёт того что не все в GOLang сообществе понимают как это работает мы были вынуждены потратить больше 10 часов на решение проблем

Кросс-компиляция

Page 18: BeeGo для веб приложений, API и демонов

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

Кросс-компиляция

Page 19: BeeGo для веб приложений, API и демонов

Тривиальных путей нет, а не тривиальных мы еще не нашли

Демонизация

Page 20: BeeGo для веб приложений, API и демонов

Либо мэйнтейнить в BeeGo, либо делать форк, либо хардкодить прямо в либе

Демонизация

Page 21: BeeGo для веб приложений, API и демонов

Как в таком случае таскать за собой статику?

Демонизация, компиляция и все-все-все

Page 22: BeeGo для веб приложений, API и демонов

Любое решение в итоге сведется к хранению ассетов в памяти

Демонизация, компиляция и все-все-все

Page 23: BeeGo для веб приложений, API и демонов

bee bale

Демонизация, компиляция и все-все-все

Page 24: BeeGo для веб приложений, API и демонов

Почему половина cloud-версии написана на PHP?

- скорость разработки - подходящие инструменты

GOLang это заебись, но не всегда

Page 25: BeeGo для веб приложений, API и демонов

- Symfony 2 - github.com/yvasiyarov/php_session_decoder - github.com/reiver/go-php

GOLang это заебись, но не всегда

Page 26: BeeGo для веб приложений, API и демонов

Документация beego.me

Основной репозиторий github.com/astaxie/beego

Репозиторий инструментов github.com/beego

Полезные ссылки

Page 27: BeeGo для веб приложений, API и демонов

AstaXie фаундер BeeGo, ведущий разработчик

Slene разработчик ORM, помогает в разработке примеров и сайта

Разработчики

Page 28: BeeGo для веб приложений, API и демонов

ClownFish разработчик административных инструментов

Lei Cao основной создатель англоязычной документации и ресурсов

Разработчики

Page 29: BeeGo для веб приложений, API и демонов

HellsHamsters Team основной создатель русскоязычной документации

Разработчики

Page 30: BeeGo для веб приложений, API и демонов

Всегда актуальный репозиторий

github.com/HellsHamsters/beedoc

Русская документация

Page 31: BeeGo для веб приложений, API и демонов

Есть определенный список проблем которые видим мы для себя Не факт что они могут совпадать со взглядами core-team

Проблемы

Page 32: BeeGo для веб приложений, API и демонов

- bee bale - модульность views & static - easy / integrated daemon - ???

Проблемы

Page 33: BeeGo для веб приложений, API и демонов

hellshamsters.com vk.com/smile42ru

[email protected]

До встречи!