6. Самописное приложение — зачем?
• Преимущества:
• Контроль всех ресурсов
• Нет «избыточности»
приложения
• Недостатки:
• Изобретение своих
«велосипедов» для
«фундамента» приложения
• Требует больше времени на
разработку
7. Использование готовых веб-фреймворков
– зачем?
• Преимущества:
• Скорость разработки
• Лучшие практики от сообщества
• Есть реализация «базы»
• Есть комьюнити
• Недостатки:
• Риск неожиданного поведения
приложения (в т.ч. баги)
• Избыточность приложения
25. Устаревшая документация
• Документация на сайте и API
фреймворка не соответствуют
действительности
• Нет возможности увидеть дату
генерации документации или
под какую версию она сделана
• Нужно изучать исходники
и/или шерстить интернет
28. Проблема конфигурирования
подключения к БД
• По умолчанию, migration CLI
использует bee.json
• По умолчанию, приложение
использует conf/app.conf
• Изменить конфигурацию
приложения, чтобы то
использовало json
• Дублирование конфигурации
34. readme.md
…
Pre-requirements:
• go get github.com/astaxie/beego
• go get github.com/go-sql-driver/mysql
• go get github.com/beego/bee
• go get github.com/go-playground/form
…
35. Менеджер пакетов
а-ля composer/npm
• Официальный есть… но
экспериментальный
• Есть множество аналогов,
которые поддерживаются
различными системами,
например, heroku
37. Преимущества подхода
• Downtime минимален – пока подготавливается новая версия
старая всё ещё работает и пока переключается один сервис –
остальные всё ещё служат пользователям
• Кеширование статических файлов
• Реализация HTTPS на стороне nginx
38. Итоги
• Go для классических веб-приложений – не подходит
• Если делать stateless API – должно работать хорошо
• Реализация больших проектов в одном приложении – сложно и
беспощадно