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

更新 發佈閱讀 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
Err500
14會員
83內容數
遇到的坑、解過的題、新知識的探索、舊時代的遺毒!? 工作後我發現,文件更新往往跟不上新需求的更迭,犯錯的歷史總是不斷重演。因此,我改變了方式,蒐集從程式上、系統上的每一次異常處理過程,好讓再次遇到相同的問題時能快速應變。此專題就是我的錯題本,期待日後不管在工作上或交流上遇到難題,都能輕鬆地應答:有什麼難的,我都踩過。
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
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
這篇文章探討了工程師在如何有效提升自己,強調不僅僅是多coding,而是要對程式碼有更深層的理解。隨著職涯發展,工程師需要從單純的技術執行者轉變為團隊領導者,具備解決複雜問題和與他人有效溝通的能力。
Thumbnail
這篇文章探討了工程師在如何有效提升自己,強調不僅僅是多coding,而是要對程式碼有更深層的理解。隨著職涯發展,工程師需要從單純的技術執行者轉變為團隊領導者,具備解決複雜問題和與他人有效溝通的能力。
Thumbnail
組織架構的整合與建立是一個變化與多層面的過程,結合觀點戰略規劃、資源分配和持續改進。以下是一些關鍵步驟和方法。首先需要明確組織的使命、願景和戰略目標。對現有的組織架構進行全面分析,瞭解其優勢和不足之處。識別組織運營中最關鍵的職能和流程,確保這些核心要素在新的架構中得到充分支持和優化。
Thumbnail
組織架構的整合與建立是一個變化與多層面的過程,結合觀點戰略規劃、資源分配和持續改進。以下是一些關鍵步驟和方法。首先需要明確組織的使命、願景和戰略目標。對現有的組織架構進行全面分析,瞭解其優勢和不足之處。識別組織運營中最關鍵的職能和流程,確保這些核心要素在新的架構中得到充分支持和優化。
Thumbnail
這篇文章描述了作者從兼職開發轉為全職開發的過程,並分享了從混進學界指日可待的積極態度。作者也提及自己在專案製作與個人生活上的矛盾與感想,最後分享了專案管理和敏捷開發相關的文章與影片。
Thumbnail
這篇文章描述了作者從兼職開發轉為全職開發的過程,並分享了從混進學界指日可待的積極態度。作者也提及自己在專案製作與個人生活上的矛盾與感想,最後分享了專案管理和敏捷開發相關的文章與影片。
Thumbnail
觀察者模式透過主題訂閱/訊息通知的機制,極度增強系統的可擴展性、靈活性以及降低組件間的耦合度。概念直觀簡單,是非常實用的設計模式。
Thumbnail
觀察者模式透過主題訂閱/訊息通知的機制,極度增強系統的可擴展性、靈活性以及降低組件間的耦合度。概念直觀簡單,是非常實用的設計模式。
Thumbnail
1.設計系統不用從頭開始 在設計產品時,有一個觀念可能會顛覆我們對於產品設計的傳統想法。這是初期在 AlleyPin 擔任一人設計師,負責各種產品或視覺設計工作時才逐漸領悟到的一點。 當時,我在購買UI Kits這件事情上猶豫不決,擔心使用現成的設計資源會使我的設計變得無聊或是缺乏創造。後來面臨
Thumbnail
1.設計系統不用從頭開始 在設計產品時,有一個觀念可能會顛覆我們對於產品設計的傳統想法。這是初期在 AlleyPin 擔任一人設計師,負責各種產品或視覺設計工作時才逐漸領悟到的一點。 當時,我在購買UI Kits這件事情上猶豫不決,擔心使用現成的設計資源會使我的設計變得無聊或是缺乏創造。後來面臨
Thumbnail
在設計有四年快五年的時間,大部分都是從實戰經驗中去不斷摸索產品開發的流程。從視覺傳達的背景出來,在用戶體驗的經驗都是在實際開發中去摸索出來的。不是理論派,只是根據我本人的經驗摸索出來的設計方法,也不會用太多高深的詞彙說明。 以前搜尋怎麼做產品設計?究竟是要從什麼步驟開始的這件事情,大部分看到的
Thumbnail
在設計有四年快五年的時間,大部分都是從實戰經驗中去不斷摸索產品開發的流程。從視覺傳達的背景出來,在用戶體驗的經驗都是在實際開發中去摸索出來的。不是理論派,只是根據我本人的經驗摸索出來的設計方法,也不會用太多高深的詞彙說明。 以前搜尋怎麼做產品設計?究竟是要從什麼步驟開始的這件事情,大部分看到的
Thumbnail
列出一套完整的程式 程式設計有許多種方法,不過通常會先列出清單的再逐一執行,這樣會加快程式設計的速度。設計通常會採取順推的辦法。所以順推的程式設計方式就是經歷觀念溝通、系統分析、資料統合、權限管理、頻率與時間、後台管理、畫面設計等等階段後,將框架設計完了以後,先列出一套完整的程式,將所有使用者都確
Thumbnail
列出一套完整的程式 程式設計有許多種方法,不過通常會先列出清單的再逐一執行,這樣會加快程式設計的速度。設計通常會採取順推的辦法。所以順推的程式設計方式就是經歷觀念溝通、系統分析、資料統合、權限管理、頻率與時間、後台管理、畫面設計等等階段後,將框架設計完了以後,先列出一套完整的程式,將所有使用者都確
Thumbnail
替產業做設計 有人要我談程式設計,那我就稍微談一下。我從事的大都是產業的工作,所以我們也從如何替產業做設計來談起。基本上,每個產業都會有自己的作業流程,大同小異。但是基礎來做都是一樣的,都會有客戶、物料、產品、供應商、員工等資料。不同的是,由於企業型態的不同,他們每個人有不同的作業流程。這個作業流
Thumbnail
替產業做設計 有人要我談程式設計,那我就稍微談一下。我從事的大都是產業的工作,所以我們也從如何替產業做設計來談起。基本上,每個產業都會有自己的作業流程,大同小異。但是基礎來做都是一樣的,都會有客戶、物料、產品、供應商、員工等資料。不同的是,由於企業型態的不同,他們每個人有不同的作業流程。這個作業流
Thumbnail
透過瞭解客戶獨特的需求和目標,以及專業的故事講述和引人入勝的內容,我們將為客戶重新打造一個影響力的網站,符合現今的潮流並具備長久的適用性。
Thumbnail
透過瞭解客戶獨特的需求和目標,以及專業的故事講述和引人入勝的內容,我們將為客戶重新打造一個影響力的網站,符合現今的潮流並具備長久的適用性。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News