約定新項目的搭建流程

  對於我的而言,項目文件結構我比較關心,一方面我能熟練操做各塊文件夾,當須要改動時,可以立馬進入到相應文件夾進行修改,另外一方面,有新的成員後,可以看到項目文件結構,能夠快速適應到環境中來,參照了一些名氣很高的框架如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,望技術有成後能回來看見本身的腳步
相關文章
相關標籤/搜索