约定新项目的搭建流程

  对于我的而言,项目文件结构我比较关心,一方面我能熟练操做各块文件夹,当须要改动时,可以立马进入到相应文件夹进行修改,另外一方面,有新的成员后,可以看到项目文件结构,能够快速适应到环境中来,参照了一些名气很高的框架如Abp,EshopOnContainers等,也从中提炼一些项目文件结构,来约定好本身的搭建习惯,或许不是每一个人的预期想法,也或许感受个人项目文件结构很怪,不要感到奇怪,毕竟没有一劳永逸的事情,每件事情都在动态发展中(强力甩锅)。html

 

1、约定项目文件结构

  预期项目文件结构以下,约定以后,或许个人每个demo都会听从以下的结构来设计,若是说开发过程当中发现有些问题,也将慢慢调整,参照了Abp来设计,可是只是用到里面最深的那一级,对于大小项目而言,可以先在标准化的道路上走,才有可能实现超车或起飞,所以先跑起来。java

  结构说明:docker

  对于docker文件夹,目标是使用到其中的docker compose相关的一些文件,如使用docker-compose.yaml再加一个.yaml文件组合使用用来构建多个服务所须要的镜像,同时使用docker-compose.yaml再加一个service.yaml来构建服务,在docker中能够经过docker stack deploy来启动多个服务,一样在k8s中也是使用的相应的.yaml文件。数据库

  对于src文件夹,主要是用来放项目相关的,如接口或是mvc之类的应用程序及其相关的类库等,对于对外服务的应用程序,每个中都指定了Dockerfile,这个Dockerfile文件无需手动配置,虽然也能够锦上添花,但我以为用VS生成的已知足个人需求了,而后约定expose的端口为80,虽然有了compose文件后,这个端口指定与不指定已经意义不大了,毕竟优先级有限。微信

  对于test文件夹,针对测试人员或是开发人员好单独管理单元测试或集成测试而单独分割出来的一部分,方便管理。mvc

  对于tools文件夹,针对运维人员执行数据库的迁移准备的,至于可能有更多的其余辅助类的项目加入进来也是有可能的,好比监控工具等。app

  对于其余文件,对于整个项目权重不占比太大,故再也不说起。框架

  

 

2、搭建一个标准化项目

  首先重申下这句话,对于项目搭建按照标准化的流程去设计,无论项目多大,按照固定标准化去设计,规避一些错误,使得针对项目开发的速度提升。运维

  或许每一个人的搭建方式都会不同,按照个人习惯来搭建会是以下过程:工具

  一、首先在码云或是GitHub中先建好一个仓库,并克隆仓库到本地;

  

  二、其次,新建一个空白解决方案,这是很重要的一环,不要先建设Web而后再来改解决方案名字,会出现拔苗助长的效果;

  

  三、在空白方案下新建解决方案文件夹src和test的文件夹,建完后直接查看文件夹内发现并无生成文件夹;

  

  四、而后在解决方案中选中src文件夹,右键新增项目,选中Asp.Net Core应用程序,取完应用程序名字,对默认路径作修改,在尾巴上加上\src,将其放置在src文件夹下,选择完毕后,应用程序加入,相应的文件夹下也出现了src文件夹,一样test文件夹也是如此;

  

  注意:虽然在解决方案下添加也能够指定文件存放路径,一样在相应的文件夹内,可是生成的应用程序是在解决方案下,须要手动拖入,为避免这一烦扰,最好使用固定流程,先创建文件夹,而后再文件夹内选择新建项目,这样一来生成的应用程序将直接是处于该文件夹下,标准化软件开发设计必备的文件夹,具体的app项目和类库分别建设到这两个文件夹下;

  五、其次,在src和test文件夹同级创建docker文件夹,不将其引用到解决方案中,避免在window下调试,docker文件夹中应包含整个解决方案的docker compose相关的脚本信息,若有必要能够在docker下在创建mvc文件夹,在其中放置脚本,当有多个版本出现时,能够用来区分,可是为了标准化来说,若是这么作了,在Jenkins构建脚本时得注意文件夹路径(我不会选择分红多个文件夹),建议是能够分红多个.yaml,取成不一样名字来处理镜像和服务。

  六、选择Web.MVC或Web.Host点击右键添加Docker支持,加入Dockerfile文件,内部原有端口改成80端口,若是有端口需求能够改成其余,默认的话就统一约定为80端口;

  七、对于docker文件加入.yaml文件,点解决方案选择添加容器业务流程协调程序支持,选择Docker Compose,加入到指定文件夹中,(本地我没有这个项,我是采用手工方式直接加入到docker文件夹中,很low)。

  八、对于docker-compose.yaml中针对镜像生成的部分,按照如今的搭建流程来将,其中的build参数的相关信息得指定成以下所示,注意不要在.yaml文件中使用Tab按键:

build:
   context: ../
   dockerfile: src/Surround.Web.Host/Dockerfile

  路径说明:context的路径指定为本yaml文件上两级,为项目文件夹,而后指定为src下具体程序而后项目内Dockerfile。

  最后,再次重申这句话:对于项目搭建按照标准化的流程去设计,无论项目多大,按照固定标准化去设计,规避一些错误,使得针对项目开发的速度提升。

 

 本文地址:http://www.javashuo.com/article/p-tlnkmkfj-hp.html 

 欢迎关注微信订阅号,有新的文章将同步到订阅号中

 

2018-11-27,望技术有成后能回来看见本身的脚步
相关文章
相关标签/搜索