[軟體課程] Spring 分層結構設計與實作 (2021/08/26, 12 Hrs)

報名資訊

上課日期:2021/08/26,27 (四、五)
週六日上課 (09:30 ~ 16:30),共 12 小時。招生中
{疫情關係,採網路遠距上課,使用 Microsoft Team}
(歡迎來電洽談企業內訓包班課程,課程案例與實作可以採該單位專案內容來規劃)
均一特別優惠價:NT$5,800 (含稅)
線上報名

課程介紹

這絕對是一個可馬上被應用到工作實務的實作案例並可作爲範本。讓學員可以知道,只要確立了可滿足使用者特定目的 (specific goal)的系統功能,並大致勾勒出實現功能的主要程序/步驟,就可以馬上導出到控制類別的程式碼。而傳統資料導向的開發模式,卻往往需要等待需求分析的細節與資料庫的表格定義,甚至把表單欄位與資料庫表格耦合一起,難怪乎開發速度與後續的變動維護相當遲緩極難偵錯。

本課程主要讓學員瞭解「目標導向」的開發方式,應用在學習所謂「新的 IT 技術」,尤其是偏向實作面的 「How-to」,包括工具的操作,與程式的寫碼等,是如何從所設定的主要完成目標 (main-goal),再分解成數個階段性的子目標 (sub-goal),然後一次只克服一小段問題,再往前漸增推進,往下一個階段目標前進。

本課程會以一個系統功能 (代表一個系統服務)的實作過程中,讓學員了解 Java/Spring 主要實作技術的應用,包括Spring Container、Web MVC (thymeleaf 模板)、O-R Mapping 連結資料庫 (同時提供 JDBCTemplate/MyBatis 框架兩種的存取技術範本,並制定存取介面 (interface) 可以動態切換)。 爲每一個服務層、資料存取層的類別同時撰寫「單元測試 (unit test)」,透過其把關,後續就可以放心地對程式碼實行「重構(refactoring)」,讓程式碼更簡潔易於維護具彈性度。

從實作練習的過程中,逐漸熟習工具與相關實作技術的使用。「快速學會 How-to (如何做)」的能力,才是技術人員首需具備的技能 (skill)。

課程目標

  • 藉由一個小型的案例,來展示開發階段 (包括 需求分析、結構設計、程式實作)的主要產出 (artifacts),以及這些產出之間的關聯性。
  • 展示目標導向的功能開發,如何快速從需求分析流暢地橋接至程式寫碼,並配合分層結構的 Enterprise MVC (Model-View-Controller) 框架,而可以應付未來系統重構,讓系統更具彈性與延展性。
  • 了解 Spring 主要核心技術,包括 Spring Core、Web MVC、JDBCTemplate/MyBatis 關鍵技術的應用,並藉由服務類別隔離兩者之間的耦合。
  • 提供作為開發人員的實作範本,可以馬上應用在工作實務上,並未來可以擴展成為團隊的「實作學習筆記與範本」。

課程對象

  • 以 Java/Spring 的程式設計開發者。
  • 技術職主管,希望了解UML塑模產出與程式碼之間的對應關係。
  • 學校資訊講師/在學相關資訊科系學生。

課程大綱

課程單元 課程大綱
案例描述與實作目標
  • 關於「系統分層架構」規劃說明與目的
  • 界定系統開發功能,定義可獨立開發的主題 (Subject)
  • 定義精要 (essential)的業務邏輯與資料欄位 (Detail)
  • 快速導出到 POJO(Java Plained-old Object)功能服務(Service)類型程式 功能類別 => Subject , method => Step
  • 立即撰寫單元測試程式碼 (unit test code)
  • 透過服務類別有效隔離資料庫與 Web UI 表單畫面的耦合
  • 重構 (re-factoring),讓程式碼更簡潔易於延展與維護
Iteration#1-
從需求快速導出到實作,建立程式碼框架
  • 安裝與設定 STS(Spring Tool Suite,內建 Eclipse) & UML 工具的開發環境
  • 說明系統功能的界定與實現方式 (定義可獨立開發的操作目的)
  • 建立 POJO 控制類別程式碼框架,對應系統功能的分析產出
  • 利用 JUnit 立即撰寫單元測試程式
  • 建立 Spring Web MVC 專案,實作可操作系統功能的表單畫面
  • 規劃 DTO(Data Transfer Object)資料物件,作為各類型物件的參數/回傳值的資料傳遞
  • 建立資料庫表格(Table),產出標準 DDL(Data-Defintion Language) SQL
  • 爲該服務類別制定存取資料庫的介面
  • 設計 DAO 物件實現資料庫存取介面,並實作 JDBCTemplate/MyBatis 技術
Iteration#2-
更新處理邏輯與加入更多欄位細節,並對共用部分做萃取重構
  • 修改程式碼細節,包括資料欄位與業務邏輯的實作
  • 在程式碼內新增對例外處理(exception handling)的實作
  • 從控制類別萃取共用性/複雜的商務邏輯,並設計共用性的領域物件(domain object)
  • 新增測試案例,並利用單元測試程式把關,確保每一次程式碼變動的正確性。
  • 動態切換資料庫的存取技術,不致影響到 Web UI 層的內容。
※本案例實作效果:UI 完全隔離資料存取與邏輯處理﹔UI/物件模型/資料庫 可以達成各自維護與延展的高度彈性度!

課程費用

**備註**
  • 上述課程費用已含電子教材檔、UML Model檔、程式源碼 (含版控)。
  • 為確保報名足額人數,煩請報名完成後再以 ATM 轉帳預約費用 ($1000,當然也可一次繳清)。
  • ATM 轉帳帳號請參考報名表單內匯款帳號。並請於報名確認信所附鏈結點選編輯,可於報名表備註欄位內,註明您的轉帳帳號末 5 碼與轉帳金額。
******

參考產出

參考文章
 o 實作 Enterprise MVC 巨觀結構的 POC-觀念篇
主要產出

o Enterprise MVC 架構規劃
Enterprise MVC 分層結構

o 系統功能 by 使用案例 (Use Case)
系統功能 by 使用案例 (Use Case)

o 規劃系統循序圖 (System Sequence Diagram)
規劃系統循序圖 (System Sequence Diagram)

o 中間層類別圖 (class diagram)
中間層類別圖 (class diagram)

o 資料庫表格設計 (Database Table)
資料庫表格設計 (Database Table)

o Java/Spring Maven 專案規劃
Java/Spring Maven 專案規劃

o 領域控制類別 (Domain Control Class)
領域控制類別 (Domain Control Class)

o 單元測試程式 (Unit Test Code)
單元測試程式 (Unix Test Code)

o 資料存取物件 (DAO, Data Access Object)
資料存取物件 (DAO, Data Access Object)

o 資料傳遞物件 (DTO, Data Transfer Object)
資料傳遞物件 (DTO, Data Transfer Object)

o Spring Web UI 控制類別
ASP.NET UI 控制類別

o Spring Web View Page
ASP.NET View

o Web UI 執行畫面 - 列出菜單
Web UI 執行畫面 - 列出菜單

o Web UI 執行畫面 - 結帳
Web UI 執行畫面 - 結帳

o Web UI 執行畫面 - 執行結果
Web UI 執行畫面 - 執行結果

備註資訊

授課講師:
 Kenming Wang
 o 具有近20年豐富教學與顧問輔導經驗。
 o 擅長引導學員反思並找出答案。
 o 專長大型系統架構規劃、企業/系統流程與系統分析、
  巨觀/微觀結構設計、精通 .NET/Java 兩大平台技術應用。
 o 專職軟體設計顧問/講師。

備註:
 o 教室設備包括白板與投影機,由講師親自說明與操作示範。
 o 學員最好能攜帶筆電(可無線上網),可於課程中實際操作與練習。
 o 若未達上課人數(原則以6人以上)則延期至下一梯次開課;
  已報名學員可申請退費(或可保留至下一梯次)。
 o 開課前一週會以電子郵件/電話聯絡通知學員。
 o 遇颱風等天候因素,則延至下一週上課日(會主動通知學員)。


如有課程相關問題,歡迎來信或來電洽詢
---------------------------------------------------
電郵: gnimnek168@gmail.com
Blog: http://www.kenming.idv.tw
軟體設計鮮思維:
https://www.facebook.com/groups/softthinking/
聯繫電話: 0922236977

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *