# Waber 微服務技術鏈 階段A:MVP ## Waber-MA01: 旅程的起點 1. 使用[Spring Boot Initializr](https://start.spring.io/) 建立Waber Intellij專案 - 專案依賴選取以下: * Spring Boot DevTools * Spring Configuration Processor * Lombok * Spring Web * Spring Data JPA * H2 Database * Validation * Spring Boot Actuator * Testcontainers - 並用Intellij開啟Spring Boot Initializr產生出來的專案目錄 2. 對應以下目錄結構在Intellij中創建Multi-module Maven專案 - 其中tw.waterball.ddd.waber改成你maven的group id (e.g. `tw.wally.waber`) - 你需要先理解Maven's Multimodule [Maven 使用多模組(multi-module)專案的好處](https://matthung0807.blogspot.com/2018/12/maven-multi-module.html)。 - [Maven副本](https://hackmd.io/1yPEXU6DS9q-z0lpBS-rFw) ``` ├── pom.xml ├── waber-match │   ├── pom.xml │   ├── src │   │   └── main │   │   └── java │   │   └── tw │   │   └── waterball │   │   └── ddd │   │   └── waber │   │   └── match │   │   └── MatchApplication.java │   └── waber-match.iml ├── waber-payment │   ├── pom.xml │   ├── src │   │   └── main │   │   └── java │   │   └── tw │   │   └── waterball │   │   └── ddd │   │   └── waber │   │   └── payment │   │   └── PaymentApplication.java │   └── waber-payment.iml ├── waber-trip │   ├── pom.xml │   ├── src │   │   └── main │   │   └── java │   │   └── tw │   │   └── waterball │   │   └── ddd │   │   └── waber │   │   └── trip │   │   └── TripApplication.java │   └── waber-trip.iml ├── waber-user │   ├── pom.xml │   ├── src │   │   └── main │   │   └── java │   │   └── tw │   │   └── waterball │   │   └── ddd │   │   └── waber │   │   └── user │   │   └── UserApplication.java │   └── waber-user.iml └── waber.iml ``` > 每一個Module為一個微服務 (或是在DDD中我們稱之為Bounded-Context) > Intellij建立Multi-module專案 > ![](https://i.imgur.com/Sf8geqP.png) ## Waber-MA02: 乘客/司機?平台最重要的多重角色 ## Waber-MA03: 匹配,你最重要的業務邏輯 ## Waber-MA04: 你和乘客的旅程即將開始 ## Waber-MA05: 付錢吧!計算車錢 你已經完成了最初版的微服務叫車系統, 但僅僅要實現功能的話,我們並不需要「微服務」。 我們要的是微服務的優點:「Scalability / Maintainability / Extensibility」, 因此,還需要大量的基礎建設來將這些被切得小小的服務組建起來。 我們接著往更硬核的技術前進吧...! ----> [Waber 微服務技術鏈 階段B:基礎建設](https://hackmd.io/NBqfaM3pT8ysdXiqxwanqA?view)