---
# System prepended metadata

title: TCM 2023 個人經歷
tags: [TCM, Wistron]

---

# TCM 2023 個人經歷
###### tags: `Wistron` `TCM`

### 一、程式設計

**Gitlab**
  - 分支策略：制定上線前、上線後的分支策略，因應不同時期設計分支，上線前加速開發，上線後嚴格規定開發中/hotfix...等等做法。


**程式碼品質檢測**
  - 前端、後端各自有自己的unit test，在pipeline中自動化，每次推code時可以檢視單元測試狀態。
  - 後端導入ESLint進行初步程式碼clean code。
  - 根據Sonarquber的建議調整程式碼。


**Debug方式**
  - logger追蹤程式碼。
  - 程式碼下斷點。
  - 在沒有applicationinsight的情況下，記存API Log來追蹤錯誤。
  - 錯誤修正上，不只是針對出問題的地方，同時修正同樣做法的function，當修改範圍擴大時，應嘗試著將function共用起來。


### 二、基礎/系統設計

**系統設計**
  - 本身主要是後端開發工作，2022~2023年開始接觸雲端架構，擔任GRW(海外行銷專案)的TL。
  - GRW(海外行銷專案)，設計並繪製系統架構圖，導入DT政策的Release Management、Provision等推廣政策。
  - 以Git開發，因擔任TL而有code review的經驗。
  - 因為Nodejs版本升級，發生既有寫法問題導致server crash而讓AKS pod不斷重啟，仔細追蹤與分析原因後，提出root cause解決方案。


### 三、可重複使用的程式碼
  - 根據GRW專案結構，設計基礎功能，並透過模組化方式加入多語系、審核機制等功能，降低程式耦合性；因為功能同質性高，透過interface去實作功能，有助於後端團隊成員在掌握結構後以相同模式開發。


### 四、資料庫
  - GRW專案中導入vscode的Plug-in，用以繪製ERD model。
  - 使用過postgresql的trigger/store procedure/function三種功能，也用過分區概念，例如：設計自動化log housekeeping，根據月份去inherits table，在log寫入時trigger function，月初時執行Store procedure將一年前的資料刪除。
  - SQL效能優化經驗上，過去會過根據DB2執行計畫去檢視效能問題，主要解決table scan的狀況，解決方式像是建立索引、大表join小表...等等。log的設計也是基於資料量龐大的問題，為了解決追蹤問題時效率慢的問題，將log table分區來加速查詢。


### 五、安全&合規
  - 配合DT資安政策，為第一批實作Release Mgmt.的人，裡面包含SCA、Sonarqube....等資安檢測方式，並在導入後將經驗分享給部門同事。
  - 有過解決SCA L9/L10的經驗。
  - GRW專案部屬於AKS上，透過DT Release mgnt.政策導入規範，透過helm的設計：configmap,secrets設定環境參數、Virtual service來引流...etc。


### 六、指令碼自動處理
  - 根據GRW專案需求，Jira設定過
      - 設計工作流，例如：story: todo->progress->verify->done; task: todo->progress->done。
      - 撰寫jira自動化腳本，例如：在所有task都完成時，自動將story改成verify，以利驗證作業；自動總計task point並回填story。


### 七、工作流管理
  - GRW專案中除了單元測試、整合測試，並進行每個sprint的測試計畫、共用功能的測試計畫。


### 八、開發架構
  - 根據GRW專案結構，設計基礎功能，並透過模組化方式加入多語系、審核機制等功能，降低程式耦合性；因為功能同質性高，透過interface去實作功能。


### 九、DevOps
  - 在HRecosystem專案中，因symmetricDS資料庫的架構調整，為了達成這件事，和SRE、PO等人討論，並制定換版的上線流程計畫。


### 十、持續學習/心態與行為/scrum/溝通與合作
  - 目前以引導角度進行開發，會去思考如何讓其他後端工程師、或者後續進來專案的工程師能盡快加入專案開發，並會將這樣的開發經驗分享給團隊成員。