name: Инструменты Bee tool

sort: 2

Введение в инструменты разработки bee tool

Bee tool - это проект, который помогает разрабатывать быстрее с BeeGo. С bee tool мы можем создавать, автоматически компилировать, перезагружать, тестировать и деплоить приложения проще.

Устанавливаем bee tool

Вы можете установить bee tool используя следующую команду:

  1. go get github.com/beego/bee

bee будет установлен в GOPATH/bin по умолчанию. Вам надо добавить GOPATH/bin в вашу переменную окружения PATH, в противном случае команда bee не будет работать.

Bee tool команды

Наберите bee в консоли. Вы должны увидеть следующее:

  1. Bee is a tool for managing BeeGo framework.
  2. Usage:
  3. bee command [arguments]
  4. The commands are:
  5. new create an application base on beego framework
  6. run run the app which can hot compile
  7. pack compress an beego project
  8. api create an api application base on beego framework
  9. router auto-generate routers for the app controllers
  10. bale packs non-Go files to Go source files

Команда new

new создает новый веб-проект. Вы можете создать новый BeeGo проект набрав bee new <project name> находясь в $GOPATH/src. Это сгенерирует все проектные папки и файлы:

  1. bee new myproject
  2. [INFO] Creating application...
  3. /gopath/src/myproject/
  4. /gopath/src/myproject/conf/
  5. /gopath/src/myproject/controllers/
  6. /gopath/src/myproject/models/
  7. /gopath/src/myproject/static/
  8. /gopath/src/myproject/static/js/
  9. /gopath/src/myproject/static/css/
  10. /gopath/src/myproject/static/img/
  11. /gopath/src/myproject/views/
  12. /gopath/src/myproject/conf/app.conf
  13. /gopath/src/myproject/controllers/default.go
  14. /gopath/src/myproject/views/index.tpl
  15. /gopath/src/myproject/main.go
  16. 13-11-25 09:50:39 [SUCC] New application successfully created!
  1. myproject
  2. ├── conf
  3. └── app.conf
  4. ├── controllers
  5. └── default.go
  6. ├── main.go
  7. ├── models
  8. ├── static
  9. ├── css
  10. ├── img
  11. └── js
  12. └── views
  13. └── index.tpl
  14. 8 directories, 4 files

Команда run

Когда мы разрабатываем проект на Go, мы часто имеем проблему с потребностью постоянно компилировать и перезапускать бинарник приложения вручную. bee run будет следить за файловой системой в вашем beego проекте используя inotify. Таким образом мы можем видеть результат сразу же после внесения изменений в проекте.

  1. bee run
  2. 13-11-25 09:53:04 [INFO] Uses 'myproject' as 'appname'
  3. 13-11-25 09:53:04 [INFO] Initializing watcher...
  4. 13-11-25 09:53:04 [TRAC] Directory(/gopath/src/myproject/controllers)
  5. 13-11-25 09:53:04 [TRAC] Directory(/gopath/src/myproject/models)
  6. 13-11-25 09:53:04 [TRAC] Directory(/gopath/src/myproject)
  7. 13-11-25 09:53:04 [INFO] Start building...
  8. 13-11-25 09:53:16 [SUCC] Build was successful
  9. 13-11-25 09:53:16 [INFO] Restarting myproject ...
  10. 13-11-25 09:53:16 [INFO] ./myproject is running...

Откройте браузер и перейдите на http://localhost:8080/, и вы должны увидеть изменения:

Введение в инструменты разработки bee tool - 图1

После изменения default.go в папке controllers, мы можем видеть подобный вывод в консоли:

  1. 13-11-25 10:11:20 [EVEN] "/gopath/src/myproject/controllers/default.go": DELETE|MODIFY
  2. 13-11-25 10:11:20 [INFO] Start building...
  3. 13-11-25 10:11:20 [SKIP] "/gopath/src/myproject/controllers/default.go": CREATE
  4. 13-11-25 10:11:23 [SKIP] "/gopath/src/myproject/controllers/default.go": MODIFY
  5. 13-11-25 10:11:23 [SUCC] Build was successful
  6. 13-11-25 10:11:23 [INFO] Restarting myproject ...
  7. 13-11-25 10:11:23 [INFO] ./myproject is running...

Теперь обновите браузер и вы сможете увидеть что результат ваших модификаций уже здесь.

Команда api

Команда new используется для создания нового веб-проекта. Но есть много разработчиков, которые используют beego для создания API приложений. Вы можете использовать команду api для создания API приложения. Вот результат запуска bee api project_name:

  1. bee api apiproject
  2. create app folder: /gopath/src/apiproject
  3. create conf: /gopath/src/apiproject/conf
  4. create controllers: /gopath/src/apiproject/controllers
  5. create models: /gopath/src/apiproject/models
  6. create tests: /gopath/src/apiproject/tests
  7. create conf app.conf: /gopath/src/apiproject/conf/app.conf
  8. create controllers default.go: /gopath/src/apiproject/controllers/default.go
  9. create tests default.go: /gopath/src/apiproject/tests/default_test.go
  10. create models object.go: /gopath/src/apiproject/models/object.go
  11. create main.go: /gopath/src/apiproject/main.go

Получившаяся структура API приложения:

  1. apiproject
  2. ├── conf
  3. └── app.conf
  4. ├── controllers
  5. └── default.go
  6. ├── main.go
  7. ├── models
  8. └── object.go
  9. └── tests
  10. └── default_test.go

В сравнении с веб-приложением, приложение для API не содержит файлы статики и шаблоны, но имеет модуль для запуска unit тестирования.

Команда pack

Команда pack используется для запаковки вашего проекта в один файл. Вы можете использовать это при деплое вашего приложения, для загрузки и извлечения содержимого архива на сервере.

  1. bee pack
  2. app path: /gopath/src/apiproject
  3. GOOS darwin GOARCH amd64
  4. build apiproject
  5. build success
  6. exclude prefix:
  7. exclude suffix: .go:.DS_Store:.tmp
  8. file write to `/gopath/src/apiproject/apiproject.tar.gz`

Вы можете увидеть архив в корне вашего проекта:

  1. rwxr-xr-x 1 astaxie staff 8995376 11 25 22:46 apiproject
  2. -rw-r--r-- 1 astaxie staff 2240288 11 25 22:58 apiproject.tar.gz
  3. drwxr-xr-x 3 astaxie staff 102 11 25 22:31 conf
  4. drwxr-xr-x 3 astaxie staff 102 11 25 22:31 controllers
  5. -rw-r--r-- 1 astaxie staff 509 11 25 22:31 main.go
  6. drwxr-xr-x 3 astaxie staff 102 11 25 22:31 models
  7. drwxr-xr-x 3 astaxie staff 102 11 25 22:31 tests

Команда router

На данный момент эта команда еще не работает. В будущем она будет генерировать роуты на основе анализа методов в контроллерах.

Команда bale

Эта команда доступна только девелоперам на данный момент. Её основное назначение - это сжатие всей статики в один бинарный файл. Таким образом вам не нужно волноваться о доставке js, css файлов, изображений и шаблонов когда вы деплоите проект. Эти файлы будут автоматически извлечены с невозможностью перезаписи, когда вы запустите вашу программу.

Bee tool конфигурация

Вы можете заметить, что в исходных кодах bee tool есть файл с именем bee.json. Это файл конфигурации BeeGo. Полный список его возможностей всё еще не существует, но вот некоторые опции которые вы можете использовать уже сейчас:

  • "version": 0: version of file, for checking incompatible format version.
  • "go_install": false: if you use full import path like github.com/user/repo/subpkg, then you can enable this opetion to run go install and speed up you build processes.
  • "watch_ext": []: add other file extensions to watch(only watch .go files by default). For example, .ini, .conf, etc.
  • "dir_structure":{}: if your folders’ name are not same as MVC classic name, you can use this option use change them.
  • "cmd_args": []: add command arguments for every start.
  • "envs": []: setting environment variables for every start.