返回
Featured image of post NodeJS - 專案前置規劃

NodeJS - 專案前置規劃

攥寫專案前,需要了解一些專案的進行式

專案開始需要思考的事情 :
版本控制 > 了解套件 > 規劃架構 > 專案衝刺 > 專案部署 > 專案測試


Step1 - 版本控制

新增一個專案資料夾,使用 Git 版本控制

新增 .gitignore - 來略過要略過版本控制的檔案

npm init -y

會自動生成一個npm套件管理的json格式

{
  "name": "node-example",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

Step2 來安裝套件所使用


Step2 - 了解套件

在 Open Source 的世界裡 一定要知到 awesome 擁有這個標籤者,代表維護這個套件的團隊被多數開發者所擁護 。
亦可自尋翻找NodeJS awesome list
一個專案的開始,我們要先選定好使用的套件,我會列出我常用的套件:

Web server framework - 網站框架

選定所編寫的 RESTFul API Server。

Environment - 環境變數

使用環境變數去更改整個Server的參數,常與Docker搭配效果。

HTTP - XMLHttpRequests 工具

通常與廠商都是以ServerToServer方式,所以需要一個這樣的工具。

ORM - 與資料庫溝通整合工具

與資料庫溝通,和資料庫管理,通常需要一個這樣的工具來輔佐資料庫的穩定性。

HTML Template - HTML模板工具

由Server輸出資料的方式,去渲染畫面可使用這樣的工具。

Logger - 伺服器紀錄 Log 套件


Step3 - 規劃架構

了解完了各個套件後,在各個套件混合運用之後,如何進行分配與規劃,甚至說 資料庫 與 Server分開進行控制。


Step4 - 專案衝刺

可以簡單的分出: \ 功能邏輯 / 資料庫分離 / CI與CD流程 / Log輸出整理 / 專案容器化 等 …
每個專案都有不同的流程設計根據每段步驟分別處理。


Step5 - 專案部署

部署方式也有很多種方式:
Git分支 部署至不同的專案環境 / 指定的 Docker版號 部署至不同的專案環境 等 …
每個專案都有不同的流程設計根據每段步驟分別處理。

一個簡單專案通常會有 DeveoplerProduction 環境。


Step6 - 專案測試

一個簡單專案通常會有 DeveoplerProduction 環境。
通常在測試階段時已經有 Production 環境上線了。

根據預期之流量分別測試,像是:

  • 單元測試 - Unit testing
    基本的程式邏輯進行,確保程式碼品質的測試。
  • 整合測試 - Integration testing
    兩個專案需要整合時,會遇到的各種問題,例如:會員系統已經很完整了,要如何和其他系統整理。
  • 端對端測試 - E2E testing
    以使用者角度測試,例如畫面上的一些Bug處理,邏輯正確但在不同的介面上的一些Bug。
  • 壓力測試 - Stress testing
    確認穩定性而特意進行的嚴格測試。會讓系統在超過正常使用條件下運作,確認結果。

小結

在執行專案時會有很多單位或同事進行討論,甚至會有規劃的圖文在白板之類的地方,所以如果剛進公司的新人剛開始不用太擔心說,完全不知所措,有時候多多去在自己電腦中測試一些套件也須許就可以讓自己的專案更快的進行。

如果是個學習者,我會手把手的進行一次簡單攥寫由Express的簡易API,且會Docker容器化推送到自己的Docker倉庫且部署至Kubernates。

在這個過程中會有很多專有名詞或是不解的部分,可以與我討論,我會盡量協助。

本系列章節會以 NodeJS 的方式進行講解。
其實在非 NodeJS 專案下多數也都是這樣子的流程。

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus