编写GO的WEB开发框架 (十五): 目录结构及如何使用ecgo开发项目
2016-03-21 00:00
776 查看
摘要: 本篇主要讲述go本项目的目录结构以及部署等相关内容,同时讲述了怎么使用ecgo框架提供的脚本进行项目初始化和部署
到目前为止,框架本身的内容已基本写完,编写go web框架系列最后一篇,来讲一下项目的初始化、目录结构以及部署等相关内容。
BTW: 该框架命名为ecgo,意为易学,易用,易扩展,并使用github管理 : https://github.com/tim1020/ecgo
go命令目录加入到PATH(可以直接使用go build等命令)
workarea目录加到环境变量GOPATH(即工作目录)
+src --是放置各个项目或包的源码,包括import进来的外部包
+pkg --是编译时生成的文件
+bin --是生成的执行文件放置的路径。
执行go build 时,执行文件会在当前目录生成,执行go install才会将执行文件放置在$GOPATH/bin目录
开发过程中,编译生成的执行文件也在myapp下,运行时可以调用当前目录的conf和views等文件
myapp是生成的执行文件,然后将~/app/myapp加入到环境变量PATH,就可以直接用 myapp来启动应用了
安装go,并配置好相应的环境变量
获取ecgo
go get github.com/tim1020/ecgo
新建一个ecgo项目
cd $GOPATH/src/github.com/tim1020/ecgo/tools
chmod +x ecgo
./ecgo new myapp
完成后,myapp的目录结构如上面开发目录所述,并有一个hello world的例子
按需求编写service和controller,测试
开发测试完成,正式部署
ecgo install myapp $HOME/myapp
以上指令将myapp目录安装到$HOME/myapp
建议将$HOME/myapp加到PATH,之后就可以使用myapp [start|restart|stop]来管理你的应用了
到目前为止,框架本身的内容已基本写完,编写go web框架系列最后一篇,来讲一下项目的初始化、目录结构以及部署等相关内容。
BTW: 该框架命名为ecgo,意为易学,易用,易扩展,并使用github管理 : https://github.com/tim1020/ecgo
go的包和目录结构
尽管go的包管理以及官方建议的项目结构受到很多吐槽,但不能反抗就只能快乐的接受。下面先看看go的相关环境设置:go命令目录加入到PATH(可以直接使用go build等命令)
workarea目录加到环境变量GOPATH(即工作目录)
+src --是放置各个项目或包的源码,包括import进来的外部包
+pkg --是编译时生成的文件
+bin --是生成的执行文件放置的路径。
执行go build 时,执行文件会在当前目录生成,执行go install才会将执行文件放置在$GOPATH/bin目录
ecgo的目录结构
一个程序,除了执行文件,往往还需要配置文件以及其它辅助文件(比如模板文件),而且使用工作目录来作为生产目录也不合理。所以ecgo在开发过程中和实际部署时,进行了隔离:开发目录(源码目录)
$GOPATH/src/myappmain.go --入口文件 controller --controller代码 serverce -- service层代码 conf/ --配置文件目录 logs --日志目录 public --静态文件目录 views --模板文件目录
开发过程中,编译生成的执行文件也在myapp下,运行时可以调用当前目录的conf和views等文件
部署目录
实际部署时,应该与开发环境隔离,比如安装到 ~/app/myapp/conf/ --配置文件目录 logs/ --日志目录 views/ -- 模板目录 public/-- 静态文件目录 myapp -- 执行文件
myapp是生成的执行文件,然后将~/app/myapp加入到环境变量PATH,就可以直接用 myapp来启动应用了
开始使用ecgo
作为一个框架,当然需要提供方便创建新项目的功能了,ecgo命名用了bash脚本来实现。使用ecgo来开发一个项目的步骤是:安装go,并配置好相应的环境变量
获取ecgo
go get github.com/tim1020/ecgo
新建一个ecgo项目
cd $GOPATH/src/github.com/tim1020/ecgo/tools
chmod +x ecgo
./ecgo new myapp
完成后,myapp的目录结构如上面开发目录所述,并有一个hello world的例子
按需求编写service和controller,测试
开发测试完成,正式部署
ecgo install myapp $HOME/myapp
以上指令将myapp目录安装到$HOME/myapp
建议将$HOME/myapp加到PATH,之后就可以使用myapp [start|restart|stop]来管理你的应用了
## 附:bash脚本代码 源码在 https://github.com/tim1020/ecgo/ 的tools/ecgo,待完善中 ^&^
相关文章推荐
- 快速部署远程同步服务Rsync
- fis-receiver:一行命令将项目部署到远程服务器
- php模板之Phpbean的目录结构
- ThinkPHP中自定义目录结构的设置方法
- 网站开发中的文件存储目录结构的探讨
- Linux下Redis的安装和部署
- PHP学习笔记(二) 了解PHP的基本语法以及目录结构
- 帝国cms目录结构分享
- Linux目录结构以及目录内的主要内容详细解析
- ThinkPHP学习笔记(一)ThinkPHP部署
- Microsoft Visual C++ 程序的部署方法
- Redis基本知识、安装、部署、配置笔记
- 在Nginx上部署ThinkPHP项目教程
- Linux下实现SSH免密码登录和实现秘钥的管理、分发、部署SHELL脚本分享
- 解决MyEclipse10.7部署报错抛空指针异常问题的方法
- 在Ubuntu 14.04上部署 PHP 环境及 WordPress
- 如何将javaweb项目部署到linux下
- win2003分布式文件系统及其部署 图文教程
- IIS 7.5 部署ASP.NET失败的解决方法