---
# System prepended metadata

title: 績效考評內容

---


時間 : 6/12至今

# 貢獻項目

## 完善新人GCP Training專案

 - S : 公司新進員工對GCP常常缺乏基本知識，新進職員需做一個平台專案至GCP上。
 - T : 完成新人GCP培訓專案。
 - A : 過程中與同期新人互相討論，除了完成功能外，也完善整個目標。從資料表服務權限的細維度到GCP的CICD都有完善的過一遍與紀錄。
 - R : 後續新人進來能有完整的明確紀錄參考，減少新人上手的時間和縮短學習曲線。
 
 資料: [Code(已同步到行內)](https://github.com/spyua/gcp_cloud_image_upload), [PPT(已同步到行內)](https://docs.google.com/presentation/d/1syjiwz55wNCTBWmWiObTqousTAyP2zJ-PnhK7ZfdiL4/edit?usp=sharing), [筆記參考(已同步到行內)](https://stingy-sky-248.notion.site/GCP-806bd699d0a84a04940f9ea9cdeaa093?pvs=4)
 
<details>
 <summary>詳細描述</summary>   
 剛入職需要做一個圖片上傳系統，上傳過程中需要做圖片壓縮。系統開發至少需要用到一項雲端服務。基本上此專案只需要用到一項雲端服務，例如Cloud SQL，不過後續實作我們使用Cloud SQL、KML、Cloud Storage、Cloud Run、Cloud Build等雲技術完成。並確實落實微服務最小職責設計，將新人專案的價值性拉到最後，過程也留下完整的筆記與程式碼，讓後續新進來的新人可以有最完善的參考價值。
</details>

## 協助開發設計Cloud Java SDK Interface
 - S : 雲端發展部AP部門需要額外封裝三大雲雲端SDK去設計API給其他部門使用。
 - T : 設計Cloud API Interface。
 - A : 實際設計pubsub、redis、kms,過程中順便Review Net Core版本的實體API設計是否有問題。
 - R : 完成Java版的Cloud SDK Interface，並同時Review完Net Core版本不合理之處請同仁後續協助修改。全面性會大大提高整體框架的健壯性。

<details>
 <summary>詳細描述</summary>   
AP Team需封裝不同雲平台的SDK為API Lib給其他部門使用，過程需思考介面要如何開才能符合GCP、AWS與Azure都可實作的介面。思考設計過程中，也同步審核之前Net Core設計的版本是否有不合理之處。例如Storage API不該提供刪除機制卻提供或是KMS加解密是否有提供完善的實作方式。這些都看到不少問題，並在Java Cloud SDK這部分去做改善優化，同時協助記錄Net Core版本需修改之處，以便後續同步Java Cloud SDK。
</details>

## 協助規劃AP API文件統一格式

 - S : For部門須提供Cloud API給其他部門使用，過程需有一個完善可閱讀的API文件。
 - T : 負責規劃API文件統一格式。
 - A : 統整C#與Java的API工具，過程盡量用Code Generator方式去處理API文件。
 - R : 成功導入API Code Generator Tool與流程，在撰寫程式碼過程後，可以自動生成API文件省去手動撰寫時間，並能整合至同一個平台閱讀。提高了效率，還確保了文檔的一致性和準確性。
 
 資料: [API文件規範(已同步到行內)](https://hackmd.io/lEhRF1B2T3KA3S-0E0mUlQ?view)
 
## 協助統整目前雲端架構與業務流程圖格式

 - S : For部門專案文件統一，系統架構、雲端架構、業務流程圖需要有一個統一格式。
 - T : 審視目前部門設計圖格式是否有少考量到什麼。
 - A : 整理現有文件，除了審視內文外並做統整分類。
 - R : 以業務流程，系統架構及雲端架構清楚將文件分類，內文部分也做統一統整整理。甚至能讓新人快速理解該如何畫出部門文件的架構與流程圖。這個項目對於公司的長期發展非常有價值。一個清晰、統一的架構和流程圖會使新進員工更快地了解公司業務和技術架構。

## 部門內TDD技術分享

 - S : 部門月技術分享
 - T : 設計TDD Workshop，並與部門人員做分享
 - A : 研讀TDD，並思考如何講解，因TDD涉略非常多概念，需思考好的情境去帶出觀念，這部分花了不少時間。
 - R : 部門人員反映非常好，並能清楚理解TDD價值核心與急速開發價值。TDD（測試驅動開發）是一種能提高代碼質量和開發效率的方法。分享不僅提高了團隊的技術水平，還鼓勵了大家對最佳實踐的探索。另外也整理一版閱讀版，讓後續新人進來可以直接閱讀。

資料: [講課PPT(已同步到行內)](https://docs.google.com/presentation/d/1VSiglDOEPLNJpLUFN6rqWXQvMQoTJCBRlQknd5YxnG4/edit?usp=sharing)，[詳細閱讀版(已同步到行內)](https://stingy-sky-248.notion.site/TDD-Part1-1ff09dd0ec354915864d034b80ee7c1b?pvs=4)

## GraalVＭ與Native Image 使用價值技術釐清
 - S : 因專案需求，需使用Quarks框架開發微服物，此框架會牽扯到GraalVM與Native Image，需釐清這兩個技術點特性。
 - T : 理解並記錄GraaVM與Native Image技術內容
 - A : 理解並記錄GraaVM與Native Image技術內容，並做一個清楚的筆記紀錄。
 - R : 釐清GrralVM與Native Image技術關鍵核心，並在筆記清楚交代與傳統JVM實作差異點。這兩個項目相當專業，涉及到具體的技術實施和效能評估。對專案的項目實作上有實質的幫助。

資料: [釐清整理記錄(已同步到行內)](https://stingy-sky-248.notion.site/GraalV-276f7fa6c53b43f58e040c70596865d7?pvs=4)

## Quarkus技術釐清與實作

 - S : 因專案需求，需使用Quarks框架開發微服物，但Quarkus API為Reactive寫法，會與一般API寫法有很大不同。因此需釐清這一塊，並實作測試。
 - T : 使用Quarkus，並用Reactive寫法完成Web API
 - A : 使用Quarkus實作Reactive Web,並用K6壓測工具實測。
 - R : 清楚交代Reactive、Blocking與Not Blocking寫法差異性與為何在大流量可以有好的效益性，K6壓測實測結果，確認在大流量狀況確實Reavtive會有較好的Performance。
 
資料: [釐清整理記錄(已同步到行內)](https://hackmd.io/@spyua/Sy19fKmWT)

 ## MongoDB技術使用釐清與實作
 
 - S : 因專案需求，Quarkus使用DB段需使用MongoDB服務。因Quarkus為Reactive寫法，需Check DB段在實作是否與一般情況不同。
 - T : 實作Quarkus連線MongoDB並寫入與撈取資料。
 - A : 實作Quarkus連線MongoDB並寫入與撈取資料，並用K6壓測工具實測。
 - R : 確定在Infra，DB Client物件Reactive寫法與一般寫法確實不太一樣，且實測發現Quarkus提供的MongoDB Reactive物件使用上有效能問題，得出在使用MongoDB這一段還是建議使用官方所提供的SDK才能確保較好的穩定性。

 ## Keycloak技術使用快速入門整理
 
 - S : 因專案需求，需實作SSO，最後選擇Keycloak Solution來完成這件事情。因此需做個簡單使用Survery。
 - T : Survery Keycloak實際使用，並整合Web API串接Keycloak服務
 - A : 開發Web API Lab Code串接Keycloak，並整合Google OAuth2認證。最後做一個整體的筆記紀錄。
 - R : Keycloak服務串接完成，筆記部份分成觀念與實作兩個Part，除了理解Keycloak使用，內容也能讓完全不懂認證授權流程的人可以清楚整個理解。

# 待改進的項目

## 不熟悉雲服務
雖然透過新人專案，有將GCP的服務幾乎全都過一遍。但細節部分以及較複雜的應用還不夠熟悉。對於此點我有兩個Plan
 - 1. 將之前新人專案的筆記以寫書的方式完善，並投稿2024年鐵人幫文章比賽，這部分預計2024過年前會完成。
 - 2. 2023 11月底前會完成ACE證照考試。
 - 3. 在實際的雲專案，落實並釐清每一個技術環節，以目前同仁互動良好，持續進行中。

## 不熟悉K8S
 - 1. 目前已參加K8S讀書會，並在2023 11月初開始準備CKA考試
 - 2. 在實際雲專案中，落實GKE的使用並細部釐清深度概念。

## 不熟悉後端某些技術服務實作與安全認證
後端有些服務，例如Kafka、Keycloak以及安全認證流程因之前沒接觸過，所以這部分認知會較弱無法在會議中提出問題討論，對於此點有幾個Plan
 - 1. 在專案實作過程中，一遇到不太清楚的除了問之外，會完整的落實理解(例如藉著理解Keycloak使用，落實理解身分識別、認證、授權、權限管控、OAuth2...是什麼，並做很詳細的筆記留存於團隊)
 - 2. 列出後端Skill Tree，並釐清那些環節不清楚自行Study。目前自己有計畫自我兩天會去釐清一些技術觀念，會將這部份整合至每日技術研讀中。
