從技術選型到架構設計:主導新專案的經驗分享

更新 發佈閱讀 4 分鐘

最近一個新專案剛結束,趁著空檔記錄一下這次的經驗。這次我不只是參與開發,而是從技術選型、架構設計到流程規劃,幾乎都由我主導大方向。對我來說,是一次蠻重要的里程碑。

以前面試時常被問:「有參與過技術選型嗎?」那時只能說:「目前還沒有太多決定權,技術方向都是資深同事定的。」這次終於有機會從零開始搭建,實際參與並主導整個技術架構。

以下是幾個在這次專案中做的技術決策與實作內容:

團隊技術背景與選型考量

團隊主要使用 Java 8 舊版本,Spring 框架也偏老。這次新專案決定改用 Spring Boot 3 搭配 JDK 17,雖然能提升開發效率,但也知道對部分成員來說會有一定的學習門檻。

前端方面,大多數人對 JavaScript 的認知還停留在 JSP 時期,ES6 語法不熟,更不用說 React 或 Vue 這類更新頻繁的框架。最後我選擇整合相對原始的 UI 元件,搭配 Vanilla JS,盡量降低學習難度,同時保留基本的互動性與模組化能力。

在設計 API request 的共用元件、整合常用依賴的過程中,也開始理解像 Nuxt 這類 meta framework 為什麼會強調模組化、資料流清晰與預設約定,這些設計背後其實是為了降低複雜度與提升開發一致性。

元件選型:功能、文件、成本之間的取捨

專案啟動當時,AI 工具還不普及,前端元件選型必須快速決定。上頭提供了幾套方案,要我們協助評估:其中一套功能完整但價格高,網站範例不太好參考;另一套則偏陽春,但現有範例資源多、文件相對清楚。

最後選擇了文件比較完整、整合起來比較順的方案。畢竟在缺乏現成經驗的情況下,文件品質真的很重要。

分支策略與合併流程

初期採用簡化版 Git Flow,主要是 feature → masterdevelop 環境還沒建好,staging 還在規劃中。

合併流程也還沒自動化,我先協調各模組的開發方式,規定每組只有一位負責人有合併權限,其他人不能直接合入 master,要交由負責人處理。雖然是人工控管,但目前這樣比較穩定,也能避免錯誤直接進主線。

Code Review:建立基本流程

目前的 Code Review 流程是每個 PR 提交給各模組有權限的代表做合併,主要看程式面和事前協調好的規範,畢竟實際功能只有各模組人員最清楚。

同時也讓參與開發者練習怎麼給具體、有幫助的 review 意見,慢慢建立起團隊的開發風格。

專案目錄規劃:從 layer-based 改為 feature-based

既有的專案是典型的 layer-based 架構,controller、service、repository 分得很細,但模組之間耦合高,專案一大就很難維護。

我提議改成 feature-based 架構,依功能模組劃分目錄,例如:

src/
├── user/
│ ├── controller/
│ ├── service/
│ └── repository/
├── order/
│ ├── controller/
│ ├── service/
│ └── repository/

這樣的好處是:

  • 模組邊界清楚,維護更直覺
  • 權責分明,避免跨模組亂改
  • 未來要拆微服務也比較容易
  • 新進成員只要理解某個模組就能快速上手

這不只是技術調整,也讓我開始思考怎麼建立清楚的專案架構,讓模組之間的溝通更穩定、邊界更明確。

小結

這次專案讓我真正參與到技術選擇與架構設計,也學到很多跟人協調、推動流程的事。技術決策不只是選工具,更是要考慮團隊背景、學習成本、維護難度。

希望未來能有更多這樣的機會,也期待自己能越來越有能力,在技術上帶得動團隊。

留言
avatar-img
留言分享你的想法!
avatar-img
Err500
12會員
79內容數
遇到的坑、解過的題、新知識的探索、舊時代的遺毒!? 工作後我發現,文件更新往往跟不上新需求的更迭,犯錯的歷史總是不斷重演。因此,我改變了方式,蒐集從程式上、系統上的每一次異常處理過程,好讓再次遇到相同的問題時能快速應變。此專題就是我的錯題本,期待日後不管在工作上或交流上遇到難題,都能輕鬆地應答:有什麼難的,我都踩過。
Err500的其他內容
2025/03/16
這篇文章說明如何使用Spring JDBC Template從資料庫取得資料,並將其輸出為CSV檔案。文中詳細介紹了系統架構、程式實作,以及測試結果,並討論了未來可能的擴展。
Thumbnail
2025/03/16
這篇文章說明如何使用Spring JDBC Template從資料庫取得資料,並將其輸出為CSV檔案。文中詳細介紹了系統架構、程式實作,以及測試結果,並討論了未來可能的擴展。
Thumbnail
2025/03/15
本文比較IntelliJ IDEA、VSCode和Eclipse三種Java開發工具的優缺點,針對不同使用者族群提供建議。IntelliJ IDEA適合初學者,VSCode輕量且具彈性,Eclipse則適合舊專案開發。
Thumbnail
2025/03/15
本文比較IntelliJ IDEA、VSCode和Eclipse三種Java開發工具的優缺點,針對不同使用者族群提供建議。IntelliJ IDEA適合初學者,VSCode輕量且具彈性,Eclipse則適合舊專案開發。
Thumbnail
2025/02/21
本文介紹瞭如何在Windows系統中,透過設定.bashrc文件輕量級地配置JDK環境變數,解決不同專案使用不同JDK版本的問題,並涵蓋了環境變數的概念、用途及其他注意事項。
Thumbnail
2025/02/21
本文介紹瞭如何在Windows系統中,透過設定.bashrc文件輕量級地配置JDK環境變數,解決不同專案使用不同JDK版本的問題,並涵蓋了環境變數的概念、用途及其他注意事項。
Thumbnail
看更多
你可能也想看
Thumbnail
這篇文章探討了工程師在如何有效提升自己,強調不僅僅是多coding,而是要對程式碼有更深層的理解。隨著職涯發展,工程師需要從單純的技術執行者轉變為團隊領導者,具備解決複雜問題和與他人有效溝通的能力。
Thumbnail
這篇文章探討了工程師在如何有效提升自己,強調不僅僅是多coding,而是要對程式碼有更深層的理解。隨著職涯發展,工程師需要從單純的技術執行者轉變為團隊領導者,具備解決複雜問題和與他人有效溝通的能力。
Thumbnail
組織架構的整合與建立是一個變化與多層面的過程,結合觀點戰略規劃、資源分配和持續改進。以下是一些關鍵步驟和方法。首先需要明確組織的使命、願景和戰略目標。對現有的組織架構進行全面分析,瞭解其優勢和不足之處。識別組織運營中最關鍵的職能和流程,確保這些核心要素在新的架構中得到充分支持和優化。
Thumbnail
組織架構的整合與建立是一個變化與多層面的過程,結合觀點戰略規劃、資源分配和持續改進。以下是一些關鍵步驟和方法。首先需要明確組織的使命、願景和戰略目標。對現有的組織架構進行全面分析,瞭解其優勢和不足之處。識別組織運營中最關鍵的職能和流程,確保這些核心要素在新的架構中得到充分支持和優化。
Thumbnail
這篇文章描述了作者從兼職開發轉為全職開發的過程,並分享了從混進學界指日可待的積極態度。作者也提及自己在專案製作與個人生活上的矛盾與感想,最後分享了專案管理和敏捷開發相關的文章與影片。
Thumbnail
這篇文章描述了作者從兼職開發轉為全職開發的過程,並分享了從混進學界指日可待的積極態度。作者也提及自己在專案製作與個人生活上的矛盾與感想,最後分享了專案管理和敏捷開發相關的文章與影片。
Thumbnail
觀察者模式透過主題訂閱/訊息通知的機制,極度增強系統的可擴展性、靈活性以及降低組件間的耦合度。概念直觀簡單,是非常實用的設計模式。
Thumbnail
觀察者模式透過主題訂閱/訊息通知的機制,極度增強系統的可擴展性、靈活性以及降低組件間的耦合度。概念直觀簡單,是非常實用的設計模式。
Thumbnail
1.設計系統不用從頭開始 在設計產品時,有一個觀念可能會顛覆我們對於產品設計的傳統想法。這是初期在 AlleyPin 擔任一人設計師,負責各種產品或視覺設計工作時才逐漸領悟到的一點。 當時,我在購買UI Kits這件事情上猶豫不決,擔心使用現成的設計資源會使我的設計變得無聊或是缺乏創造。後來面臨
Thumbnail
1.設計系統不用從頭開始 在設計產品時,有一個觀念可能會顛覆我們對於產品設計的傳統想法。這是初期在 AlleyPin 擔任一人設計師,負責各種產品或視覺設計工作時才逐漸領悟到的一點。 當時,我在購買UI Kits這件事情上猶豫不決,擔心使用現成的設計資源會使我的設計變得無聊或是缺乏創造。後來面臨
Thumbnail
在設計有四年快五年的時間,大部分都是從實戰經驗中去不斷摸索產品開發的流程。從視覺傳達的背景出來,在用戶體驗的經驗都是在實際開發中去摸索出來的。不是理論派,只是根據我本人的經驗摸索出來的設計方法,也不會用太多高深的詞彙說明。 以前搜尋怎麼做產品設計?究竟是要從什麼步驟開始的這件事情,大部分看到的
Thumbnail
在設計有四年快五年的時間,大部分都是從實戰經驗中去不斷摸索產品開發的流程。從視覺傳達的背景出來,在用戶體驗的經驗都是在實際開發中去摸索出來的。不是理論派,只是根據我本人的經驗摸索出來的設計方法,也不會用太多高深的詞彙說明。 以前搜尋怎麼做產品設計?究竟是要從什麼步驟開始的這件事情,大部分看到的
Thumbnail
列出一套完整的程式 程式設計有許多種方法,不過通常會先列出清單的再逐一執行,這樣會加快程式設計的速度。設計通常會採取順推的辦法。所以順推的程式設計方式就是經歷觀念溝通、系統分析、資料統合、權限管理、頻率與時間、後台管理、畫面設計等等階段後,將框架設計完了以後,先列出一套完整的程式,將所有使用者都確
Thumbnail
列出一套完整的程式 程式設計有許多種方法,不過通常會先列出清單的再逐一執行,這樣會加快程式設計的速度。設計通常會採取順推的辦法。所以順推的程式設計方式就是經歷觀念溝通、系統分析、資料統合、權限管理、頻率與時間、後台管理、畫面設計等等階段後,將框架設計完了以後,先列出一套完整的程式,將所有使用者都確
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News