架構(gòu)師
其他
推薦課程
average > 0 ? $model->average . '分' : '10.0分' ?>

卓越軟件架構(gòu)設(shè)計(jì)

Bruce Zhang

前ThoughtWorks 架構(gòu)師、敏捷教練

先后就職于中興通訊、惠普 GDCC、中軟國際、ThoughtWorks 等?大型中外企
業(yè),任職?角?色為?高級(jí)軟件?工程師,架構(gòu)師,技術(shù)總監(jiān),?首席咨詢師。現(xiàn)為深圳?
大眼科技有限公司的?首席架構(gòu)師,聯(lián)合創(chuàng)始?人。精通包括 C#、Java、Ruby、Scala、
Python、JavaScript 等多種語?言,熟練掌握?面向?qū)ο笏枷?、領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)、函數(shù)式語
?言、架構(gòu)、?大數(shù)據(jù)分析、敏捷與過程改進(jìn),并致?力于?大型軟件企業(yè)的?面向服務(wù)系
統(tǒng)架構(gòu)設(shè)計(jì)以及互聯(lián)網(wǎng) Web 系統(tǒng)架構(gòu)設(shè)計(jì)。在 ThoughtWorks 期間,作為?一名咨詢師,
主要為客戶提供組織的敏捷轉(zhuǎn)型、過程改進(jìn)、系統(tǒng)架構(gòu)監(jiān)理、領(lǐng)域設(shè)計(jì)、代碼質(zhì)量提升等咨
詢?工作。目前,作為公司產(chǎn)品的架構(gòu)師,致力于商業(yè)智能產(chǎn)品與?大數(shù)據(jù)分析平臺(tái)的開發(fā)
與架構(gòu)設(shè)計(jì)

著譯作包括《解構(gòu)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)》、《軟件設(shè)計(jì)精要與模式》、《架構(gòu)寶典》、《高可用可伸縮微服務(wù)架構(gòu)》、《Java設(shè)計(jì)模式》、《恰如其分的軟件架構(gòu)》、《WCF服務(wù)編程》、《人件》、《重構(gòu)——改善既有代碼設(shè)計(jì)》評(píng)注版、《架構(gòu)之美》評(píng)注版。

作為主持?人或講師多次被應(yīng)邀參加如中國軟件?大會(huì)、QCon、MPD 大會(huì)、
Agile China、Scrum Gathering 等?大型會(huì)議,并作為培訓(xùn)講師曾先后為摩托羅拉、惠普、
花旗銀?行、攜程、TCL、中興通訊、賽 門鐵克,廣發(fā)證券、平安銀?行等企業(yè)培訓(xùn)架構(gòu)、
設(shè)計(jì)、DDD、敏捷等專題內(nèi)容。著譯作包括《軟件設(shè)計(jì)精要與模式》、《Java 設(shè)計(jì)模式》、《恰如其分的軟件架構(gòu)》、《WCF 服務(wù)編程》、《?人件》等。目前,正在撰寫《架構(gòu)之
美(Beatiful Architecture)》評(píng)注版,即將出版。

先后就職于中興通訊、惠普 GDCC、中軟國際、ThoughtWorks 等?大型中外企 業(yè),任職?角?色為?高級(jí)軟件?工程師,架構(gòu)師,技術(shù)總監(jiān),?首席咨詢師?,F(xiàn)為深圳? 大眼科技有限公司的?首席架構(gòu)師,聯(lián)合創(chuàng)始?人。精通包括 C#、Java、Ruby、Scala、 Python、JavaScript 等多種語?言,熟練掌握?面向?qū)ο笏枷?、領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)、函數(shù)式語 ?言、架構(gòu)、?大數(shù)據(jù)分析、敏捷與過程改進(jìn),并致?力于?大型軟件企業(yè)的?面向服務(wù)系 統(tǒng)架構(gòu)設(shè)計(jì)以及互聯(lián)網(wǎng) Web 系統(tǒng)架構(gòu)設(shè)計(jì)。在 ThoughtWorks 期間,作為?一名咨詢師, 主要為客戶提供組織的敏捷轉(zhuǎn)型、過程改進(jìn)、系統(tǒng)架構(gòu)監(jiān)理、領(lǐng)域設(shè)計(jì)、代碼質(zhì)量提升等咨 詢?工作。目前,作為公司產(chǎn)品的架構(gòu)師,致力于商業(yè)智能產(chǎn)品與?大數(shù)據(jù)分析平臺(tái)的開發(fā) 與架構(gòu)設(shè)計(jì) 著譯作包括《解構(gòu)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)》、《軟件設(shè)計(jì)精要與模式》、《架構(gòu)寶典》、《高可用可伸縮微服務(wù)架構(gòu)》、《Java設(shè)計(jì)模式》、《恰如其分的軟件架構(gòu)》、《WCF服務(wù)編程》、《人件》、《重構(gòu)——改善既有代碼設(shè)計(jì)》評(píng)注版、《架構(gòu)之美》評(píng)注版。 作為主持?人或講師多次被應(yīng)邀參加如中國軟件?大會(huì)、QCon、MPD 大會(huì)、 Agile China、Scrum Gathering 等?大型會(huì)議,并作為培訓(xùn)講師曾先后為摩托羅拉、惠普、 花旗銀?行、攜程、TCL、中興通訊、賽 門鐵克,廣發(fā)證券、平安銀?行等企業(yè)培訓(xùn)架構(gòu)、 設(shè)計(jì)、DDD、敏捷等專題內(nèi)容。著譯作包括《軟件設(shè)計(jì)精要與模式》、《Java 設(shè)計(jì)模式》、《恰如其分的軟件架構(gòu)》、《WCF 服務(wù)編程》、《?人件》等。目前,正在撰寫《架構(gòu)之 美(Beatiful Architecture)》評(píng)注版,即將出版。

課程費(fèi)用

5800.00 /人

課程時(shí)長

2

成為教練

課程簡介

目標(biāo)收益

了解主流的軟件設(shè)計(jì)方法,通過案例分析與實(shí)踐,幫助員工熟練掌握軟件架構(gòu)與設(shè)計(jì)技能,規(guī)范開發(fā)流程;介紹常見的架構(gòu)視圖、架構(gòu)風(fēng)格與架構(gòu)模式,并結(jié)合風(fēng)險(xiǎn)驅(qū)動(dòng)的方式進(jìn)行架構(gòu)設(shè)計(jì)與演化;解構(gòu)架構(gòu)模式,并結(jié)合實(shí)際案例講解各種架構(gòu)模式的運(yùn)用場(chǎng)景,使得學(xué)員能夠在項(xiàng)目開發(fā)中熟練運(yùn)用架構(gòu)模式,改善系統(tǒng)的整體架構(gòu);開創(chuàng)性地提出了宏觀視圖、微觀視圖與納米視圖的MMN架構(gòu)設(shè)計(jì)過程與方法,結(jié)合軟件架構(gòu)設(shè)計(jì)的諸多最佳實(shí)踐,整體地介紹架構(gòu)設(shè)計(jì)過程;對(duì)優(yōu)良架構(gòu)的特征進(jìn)行分析,保證架構(gòu)遵循簡單、一致和自治原則,設(shè)計(jì)出卓越的軟件架構(gòu); 結(jié)合真實(shí)案例,講解大型企業(yè)軟件系統(tǒng)的整體架構(gòu)與設(shè)計(jì);融匯貫通,體悟設(shè)計(jì)的本質(zhì),打造高效、快速、主動(dòng)

培訓(xùn)對(duì)象

思想為體,方法為用,貫徹卓越軟件架構(gòu)設(shè)計(jì)之精神,而非流于表面形式;提倡開放的設(shè)計(jì)觀,不局限于一種設(shè)計(jì)方法學(xué),而是融匯貫通,取長補(bǔ)短;重視案例分析與實(shí)踐,提倡動(dòng)手實(shí)驗(yàn),而非單純以講授性質(zhì)的培訓(xùn);通過真實(shí)案例的演練,熟悉開發(fā)過程與設(shè)計(jì)方法;編碼與設(shè)計(jì),二者不可偏廢。沒有優(yōu)秀的個(gè)人設(shè)計(jì)能力,團(tuán)隊(duì)就會(huì)成為無根之木,無法保證軟件的高質(zhì)量。必須幫助團(tuán)隊(duì)的每個(gè)人都能熟練運(yùn)用面向?qū)ο蟮姆治雠c設(shè)計(jì)能力,才能保證生產(chǎn)力的高效;培訓(xùn)內(nèi)容由淺入深,覆蓋了軟件開發(fā)過程的大多數(shù)主流技能與方法,包括:OOAD、UML、RUP、 DDD、Refactoring、Design Patterns、Architecture Pat

課程大綱

第一單元
架構(gòu)與架構(gòu)視圖
軟件架構(gòu)是針對(duì)軟件系統(tǒng)、子系統(tǒng)以及模塊層次的設(shè)計(jì)過程,包括如何組織系統(tǒng)組件,管理組件之間關(guān)系以及指導(dǎo)設(shè)計(jì)的基本原則。
1. 架構(gòu)的定義
(1)架構(gòu)的概念與定義
IEEE對(duì)架構(gòu)的定義。對(duì)組件的理解,對(duì)自治組件與服務(wù)的分析;組件與環(huán)境的關(guān)系。
案例分析:大型銀行與保險(xiǎn)系統(tǒng)的客戶核心系統(tǒng)的架構(gòu)演化,通過分析系統(tǒng)集成、部署以及系統(tǒng)間通信的方式,深入對(duì)架構(gòu)的理解。
Kruchten對(duì)架構(gòu)的定義。提出了架構(gòu)風(fēng)格的概念,并體現(xiàn)了架構(gòu)演化的思想。結(jié)合Spring、Linux的設(shè)計(jì)思想,初步建立架構(gòu)風(fēng)格的基礎(chǔ)知識(shí)。
(2)識(shí)別可重用的架構(gòu)資源
介紹架構(gòu)資源元模型,分析開發(fā)期資源和運(yùn)行期資源。通過案例介紹參考架構(gòu)、架構(gòu)風(fēng)格與架構(gòu)模式在軟件架構(gòu)過程中的運(yùn)用。
案例分析:商業(yè)智能SaaS平臺(tái)系統(tǒng)中,架構(gòu)對(duì)整個(gè)系統(tǒng)設(shè)計(jì)的指導(dǎo)意義。以真實(shí)案例剖析對(duì)可重用資源的運(yùn)用。例如在商業(yè)智能SaaS平臺(tái)中,選擇了SaleForce作為參考架構(gòu),對(duì)系統(tǒng)架構(gòu)設(shè)計(jì)產(chǎn)生的影響。
2、架構(gòu)視圖
(1)分而治之的設(shè)計(jì)原則
軟件系統(tǒng)的復(fù)雜度主要來自其規(guī)模。規(guī)模越大,復(fù)雜度越高,降低復(fù)雜度的最有效途徑就是縮小規(guī)模,解決之道就是“分而治之”,核心思想是關(guān)注點(diǎn)分離。
在架構(gòu)設(shè)計(jì)中,通常運(yùn)用“視圖”的概念對(duì)整個(gè)系統(tǒng)進(jìn)行分解。通過不同涉眾不同角色的不同觀察視角,對(duì)系統(tǒng)進(jìn)行劃分。
(2)架構(gòu)視圖實(shí)例講解
a. Christine提出的架構(gòu)視圖剖析,分別包括概念視圖、模塊視圖、執(zhí)行視圖與代碼視圖。
案例分析:圖像處理系統(tǒng)的架構(gòu)視圖。對(duì)圖像處理系統(tǒng)進(jìn)行系統(tǒng)分析,分別建立該系統(tǒng)的概念視圖、模塊視圖、執(zhí)行視圖與代碼視圖。
b. RUP 4+1視圖
介紹RUP 4+1視圖的組成以及各個(gè)視圖之間的關(guān)系。
案例分析:LSVT 4+1視圖架構(gòu)規(guī)格說明書
一個(gè)真實(shí)的案例,展現(xiàn)了一個(gè)完全按照4+1視圖進(jìn)行設(shè)計(jì)的軟件系統(tǒng)架構(gòu)。
第二單元
架構(gòu)風(fēng)格與參考架構(gòu)
1、REST架構(gòu)風(fēng)格
REST描述了Web作為一個(gè)分布式超媒體的應(yīng)用,相互鏈接的資源通過交換代表資源狀態(tài)的表述來進(jìn)行通信。它 是WEB系統(tǒng)架構(gòu)運(yùn)用最為廣泛的架構(gòu)風(fēng)格。
案例分析:訂單管理系統(tǒng)的REST架構(gòu)。通過案例講述如何在架構(gòu)設(shè)計(jì)中運(yùn)用REST架構(gòu)。
2、基于消息的分布式架構(gòu)
分布式架構(gòu)是企業(yè)軟件系統(tǒng)主要采用的一種架構(gòu)風(fēng)格,通過使用基于消息的中間件完成消息的發(fā)送與接收,從而實(shí)現(xiàn)系統(tǒng)之間的集成,以及業(yè)務(wù)處理的異步模型。
案例:醫(yī)療衛(wèi)生知識(shí)庫系統(tǒng)。通過引入消息隊(duì)列改善系統(tǒng)架構(gòu)的質(zhì)量。
3、數(shù)據(jù)為中心的軟件架構(gòu)
一般的數(shù)據(jù)管理系統(tǒng)都分為三個(gè)步驟:Data Ingestion、Data Storage與Data Processing。在大數(shù)據(jù)處理中,這種模型體現(xiàn)得更為明顯。所有的軟件系統(tǒng)都離不開數(shù)據(jù)處理。此外,本節(jié)內(nèi)容還會(huì)講解MapReduce架構(gòu)風(fēng)格,剖析MapReduce的架構(gòu)原理和最佳實(shí)踐。
案例:Twitter數(shù)據(jù)管理與分析,運(yùn)用Apache HDFS、Flume、HIVE,完成對(duì)Twitter數(shù)據(jù)的管理與分析。
4、基于云的軟件架構(gòu)
基于云的軟件架構(gòu)可以分為三個(gè)層次,即SaaS,PaaS和IaaS。本節(jié)主要講解基于元數(shù)據(jù)的多租戶SaaS架構(gòu)。
案例:商業(yè)智能SaaS平臺(tái)的整體架構(gòu)
第三單元
架構(gòu)模式與應(yīng)用實(shí)踐
1、分層架構(gòu)模式與實(shí)踐
講解經(jīng)典的軟件分層架構(gòu)。
2、微內(nèi)核架構(gòu)模式與實(shí)踐
微內(nèi)核模式是架構(gòu)模式中極為重要的一種模式,尤其是它劃分功能子集為核心功能子集的設(shè)計(jì)思想非常重要,但它的重要性卻常常被人忽略。
案例:商業(yè)智能SaaS平臺(tái)與Spring框架對(duì)微內(nèi)核模式的運(yùn)用
3、管道-過濾器架構(gòu)模式與實(shí)踐
若要實(shí)現(xiàn)數(shù)據(jù)處理的良好可擴(kuò)展性,有效降低數(shù)據(jù)處理的算法復(fù)雜度,就需要運(yùn)用管道-過濾器模式。
案例:商業(yè)智能SaaS平臺(tái)的核心算法
4、MVC架構(gòu)模式與實(shí)踐
MVC架構(gòu)模式是最常用的架構(gòu)模式,體現(xiàn)了關(guān)注點(diǎn)分離的架構(gòu)原則。在介紹MVC模式的同時(shí),還將深入分析與比較MVC模式與MVP模式之間的異同。
案例:Ruby On Rails的MVC架構(gòu)
5、CQRS架構(gòu)模式與實(shí)踐
CQRS模式即命令查詢職責(zé)分離模式,是DDD中基于事件的讀寫分離架構(gòu)模式。將業(yè)務(wù)邏輯建模為狀態(tài)機(jī)模型,并利用松散耦合的命令與事件機(jī)制,采用異步模型改善系統(tǒng)整體性能。
案例:會(huì)議注冊(cè)與管理系統(tǒng)的CQRS架構(gòu)
第四單元
架構(gòu)核心原則與設(shè)計(jì)策略
1、設(shè)計(jì)簡單的架構(gòu)
(1)設(shè)計(jì)的意圖:通過清晰地表達(dá)設(shè)計(jì)意圖,以簡化系統(tǒng)的整體架構(gòu),并有利于設(shè)計(jì)者與開發(fā)者之間的溝通。
案例分析:Ruby On Rails的架構(gòu)設(shè)計(jì)
(2)保證系統(tǒng)足夠小,促進(jìn)恰如其分的架構(gòu)設(shè)計(jì)
(3)分而治之與關(guān)注點(diǎn)分離:遵循“關(guān)注點(diǎn)分離”的架構(gòu)原則,將架構(gòu)的分離策略分為縱橫分離與內(nèi)外分離。
(4)如何化繁為簡:通過專注實(shí)體的職責(zé),整體分析系統(tǒng)目標(biāo)、范圍與核心概念;并通過抽象簡化簡化整個(gè)系統(tǒng)的模型。
(5)設(shè)計(jì)的演進(jìn):通過具體案例講解如何運(yùn)用風(fēng)險(xiǎn)驅(qū)動(dòng)進(jìn)行架構(gòu)的設(shè)計(jì)與演化。
2、設(shè)計(jì)一致的架構(gòu)
(1)設(shè)計(jì)風(fēng)格的一致性:合理運(yùn)用前面講到的架構(gòu)風(fēng)格,針對(duì)不同場(chǎng)景做出正確的架構(gòu)決策。分析基于約束對(duì)架構(gòu)風(fēng)格的驅(qū)動(dòng)設(shè)計(jì)方式。
(2)概念的一致性:如何通過業(yè)務(wù)分析甄別領(lǐng)域概念,對(duì)整個(gè)系統(tǒng)的領(lǐng)域邏輯進(jìn)行建模,并利用抽象簡化模型。通過引入DDD的概念,以確定一致的設(shè)計(jì)概念,以便于開發(fā)團(tuán)隊(duì)的溝通和協(xié)作。
(3)解決方案的一致性:要求在系統(tǒng)設(shè)計(jì)時(shí),確保針對(duì)同一個(gè)問題域采用一致的解決方案。
(4)路線圖:確定產(chǎn)品線,制定路線圖,作為保證一致架構(gòu)的高層藍(lán)圖。
3、設(shè)計(jì)自治的架構(gòu)
(1)最小完備特征:設(shè)計(jì)最小完備的對(duì)象、組件與服務(wù)。通過識(shí)別設(shè)計(jì)特征來判斷實(shí)體是否符合最小完備原則。
(2)自我履行特征:設(shè)計(jì)智能有意識(shí)的對(duì)象,可以通過從調(diào)用端和提供行為的一方雙向地分析,以改善職責(zé)的分配。
(3)穩(wěn)定空間特征:合理的封裝,維持實(shí)體的邊界,并提供開放空間以滿足系統(tǒng)整體架構(gòu)的可擴(kuò)展性。劃定軟件系統(tǒng)的邏輯邊界與物理邊界,保證系統(tǒng)的可重用性。
(4)獨(dú)立進(jìn)化特征:通過引入契約和接口,制定規(guī)范,以設(shè)計(jì)具有可進(jìn)化性的系統(tǒng)。在設(shè)計(jì)時(shí),考慮新舊版本的兼容性,為系統(tǒng)建立防腐層隔離變化。
第五單元
MMN架構(gòu)設(shè)計(jì)過程
MMN架構(gòu)設(shè)計(jì)過程是指對(duì)系統(tǒng)架構(gòu)從宏觀、微觀與納米層面的整體設(shè)計(jì)過程。這是一個(gè)迭代和演進(jìn)的設(shè)計(jì)過程,通過自頂向下結(jié)合自下而上的方式,對(duì)整個(gè)軟件系統(tǒng)進(jìn)行分析與設(shè)計(jì),保證整個(gè)軟件系統(tǒng)滿足功能需求與質(zhì)量屬性。
1、宏觀視圖的架構(gòu)因素與設(shè)計(jì)過程
(1)定義架構(gòu)概圖:包括調(diào)查架構(gòu)資源,明確架構(gòu)的目標(biāo),根據(jù)架構(gòu)目標(biāo)做出重要的設(shè)計(jì)決策,并分析主要的用例場(chǎng)景,以建立一個(gè)粗略的架構(gòu)概圖。
案例分析:企業(yè)應(yīng)用套件的架構(gòu)概圖
(2)架構(gòu)全局分析:識(shí)別架構(gòu)風(fēng)險(xiǎn),并確定風(fēng)險(xiǎn)優(yōu)先級(jí)。然后根據(jù)識(shí)別出來的風(fēng)險(xiǎn)編寫架構(gòu)因素表,制訂具體的架構(gòu)策略。同時(shí)確定整個(gè)系統(tǒng)的關(guān)鍵場(chǎng)景。
案例分析:遠(yuǎn)程訪問的架構(gòu)策略
(3)構(gòu)建概念模型:確定技術(shù)框架與技術(shù)選型,識(shí)別并分析軟件產(chǎn)品的設(shè)計(jì)約束,從而確定架構(gòu)風(fēng)格,并根據(jù)具體場(chǎng)景運(yùn)用架構(gòu)模式。
案例分析:CIMS架構(gòu)概念模型
(4)建立系統(tǒng)的邏輯視圖和物理視圖
案例分析:集團(tuán)智能信息輔助系統(tǒng)的架構(gòu)概念模型
2、微觀視圖的架構(gòu)因素與設(shè)計(jì)過程
(1)細(xì)化邏輯視圖:進(jìn)行領(lǐng)域分析,確定系統(tǒng)的應(yīng)用邏輯架構(gòu)與業(yè)務(wù)邏輯架構(gòu),并設(shè)計(jì)整個(gè)系統(tǒng)的模塊視圖;
案例分析:汽車零售管理系統(tǒng)領(lǐng)域分析
案例分析:商業(yè)智能SaaS平臺(tái)邏輯架構(gòu)
(2)細(xì)化物理視圖:執(zhí)行運(yùn)行時(shí)分析,確定通信機(jī)制和資源分配,并以此為根據(jù)設(shè)計(jì)部署視圖和執(zhí)行視圖
案例分析:燃?xì)饧瘓F(tuán)解決方案
3、納米視圖的架構(gòu)因素與設(shè)計(jì)過程
(1)構(gòu)建設(shè)計(jì)模型:講解職責(zé)驅(qū)動(dòng)設(shè)計(jì),通過角色、職責(zé)與協(xié)作完成對(duì)象的職責(zé)分配,并通過識(shí)別變化點(diǎn),利用抽象對(duì)變化進(jìn)行封裝,以及合理運(yùn)用設(shè)計(jì)模式。
案例分析:數(shù)據(jù)分析器
案例分析:商業(yè)智能SaaS平臺(tái)引擎設(shè)計(jì)
(2)代碼視圖:包括確定部署組件、配置管理、持續(xù)集成等與代碼級(jí)別有關(guān)的內(nèi)容。
案例分析:集團(tuán)智能信息輔助系統(tǒng)的代碼視圖
案例分析:商業(yè)智能SaaS平臺(tái)的代碼視圖
第六單元
大型軟件系統(tǒng)體系架構(gòu)
1、在線零售商集成解決方案
整個(gè)系統(tǒng)牽涉到電子商務(wù)、庫存管理、呼叫中心、郵件服務(wù)等多個(gè)系統(tǒng)的集成。該解決方案通過運(yùn)用分布式系統(tǒng)的最佳實(shí)踐,運(yùn)用基于消息的中間件,對(duì)系統(tǒng)進(jìn)行整體設(shè)計(jì),使得系統(tǒng)能夠高質(zhì)量地支撐在線零售商的核心業(yè)務(wù)。
2、銀行保險(xiǎn)客戶核心支撐系統(tǒng)真實(shí)案例,是某大型金融集團(tuán)的客戶核心支撐系統(tǒng),需要支持的業(yè)務(wù)系統(tǒng)多達(dá)數(shù)十個(gè),且具有不同的業(yè)務(wù),部署在不同的平臺(tái)。如何通過合理地設(shè)計(jì),運(yùn)用ESB和REST對(duì)整個(gè)系統(tǒng)進(jìn)行集成。
第一單元
架構(gòu)與架構(gòu)視圖
軟件架構(gòu)是針對(duì)軟件系統(tǒng)、子系統(tǒng)以及模塊層次的設(shè)計(jì)過程,包括如何組織系統(tǒng)組件,管理組件之間關(guān)系以及指導(dǎo)設(shè)計(jì)的基本原則。
1. 架構(gòu)的定義
(1)架構(gòu)的概念與定義
IEEE對(duì)架構(gòu)的定義。對(duì)組件的理解,對(duì)自治組件與服務(wù)的分析;組件與環(huán)境的關(guān)系。
案例分析:大型銀行與保險(xiǎn)系統(tǒng)的客戶核心系統(tǒng)的架構(gòu)演化,通過分析系統(tǒng)集成、部署以及系統(tǒng)間通信的方式,深入對(duì)架構(gòu)的理解。
Kruchten對(duì)架構(gòu)的定義。提出了架構(gòu)風(fēng)格的概念,并體現(xiàn)了架構(gòu)演化的思想。結(jié)合Spring、Linux的設(shè)計(jì)思想,初步建立架構(gòu)風(fēng)格的基礎(chǔ)知識(shí)。
(2)識(shí)別可重用的架構(gòu)資源
介紹架構(gòu)資源元模型,分析開發(fā)期資源和運(yùn)行期資源。通過案例介紹參考架構(gòu)、架構(gòu)風(fēng)格與架構(gòu)模式在軟件架構(gòu)過程中的運(yùn)用。
案例分析:商業(yè)智能SaaS平臺(tái)系統(tǒng)中,架構(gòu)對(duì)整個(gè)系統(tǒng)設(shè)計(jì)的指導(dǎo)意義。以真實(shí)案例剖析對(duì)可重用資源的運(yùn)用。例如在商業(yè)智能SaaS平臺(tái)中,選擇了SaleForce作為參考架構(gòu),對(duì)系統(tǒng)架構(gòu)設(shè)計(jì)產(chǎn)生的影響。
2、架構(gòu)視圖
(1)分而治之的設(shè)計(jì)原則
軟件系統(tǒng)的復(fù)雜度主要來自其規(guī)模。規(guī)模越大,復(fù)雜度越高,降低復(fù)雜度的最有效途徑就是縮小規(guī)模,解決之道就是“分而治之”,核心思想是關(guān)注點(diǎn)分離。
在架構(gòu)設(shè)計(jì)中,通常運(yùn)用“視圖”的概念對(duì)整個(gè)系統(tǒng)進(jìn)行分解。通過不同涉眾不同角色的不同觀察視角,對(duì)系統(tǒng)進(jìn)行劃分。
(2)架構(gòu)視圖實(shí)例講解
a. Christine提出的架構(gòu)視圖剖析,分別包括概念視圖、模塊視圖、執(zhí)行視圖與代碼視圖。
案例分析:圖像處理系統(tǒng)的架構(gòu)視圖。對(duì)圖像處理系統(tǒng)進(jìn)行系統(tǒng)分析,分別建立該系統(tǒng)的概念視圖、模塊視圖、執(zhí)行視圖與代碼視圖。
b. RUP 4+1視圖
介紹RUP 4+1視圖的組成以及各個(gè)視圖之間的關(guān)系。
案例分析:LSVT 4+1視圖架構(gòu)規(guī)格說明書
一個(gè)真實(shí)的案例,展現(xiàn)了一個(gè)完全按照4+1視圖進(jìn)行設(shè)計(jì)的軟件系統(tǒng)架構(gòu)。
第二單元
架構(gòu)風(fēng)格與參考架構(gòu)
1、REST架構(gòu)風(fēng)格
REST描述了Web作為一個(gè)分布式超媒體的應(yīng)用,相互鏈接的資源通過交換代表資源狀態(tài)的表述來進(jìn)行通信。它 是WEB系統(tǒng)架構(gòu)運(yùn)用最為廣泛的架構(gòu)風(fēng)格。
案例分析:訂單管理系統(tǒng)的REST架構(gòu)。通過案例講述如何在架構(gòu)設(shè)計(jì)中運(yùn)用REST架構(gòu)。
2、基于消息的分布式架構(gòu)
分布式架構(gòu)是企業(yè)軟件系統(tǒng)主要采用的一種架構(gòu)風(fēng)格,通過使用基于消息的中間件完成消息的發(fā)送與接收,從而實(shí)現(xiàn)系統(tǒng)之間的集成,以及業(yè)務(wù)處理的異步模型。
案例:醫(yī)療衛(wèi)生知識(shí)庫系統(tǒng)。通過引入消息隊(duì)列改善系統(tǒng)架構(gòu)的質(zhì)量。
3、數(shù)據(jù)為中心的軟件架構(gòu)
一般的數(shù)據(jù)管理系統(tǒng)都分為三個(gè)步驟:Data Ingestion、Data Storage與Data Processing。在大數(shù)據(jù)處理中,這種模型體現(xiàn)得更為明顯。所有的軟件系統(tǒng)都離不開數(shù)據(jù)處理。此外,本節(jié)內(nèi)容還會(huì)講解MapReduce架構(gòu)風(fēng)格,剖析MapReduce的架構(gòu)原理和最佳實(shí)踐。
案例:Twitter數(shù)據(jù)管理與分析,運(yùn)用Apache HDFS、Flume、HIVE,完成對(duì)Twitter數(shù)據(jù)的管理與分析。
4、基于云的軟件架構(gòu)
基于云的軟件架構(gòu)可以分為三個(gè)層次,即SaaS,PaaS和IaaS。本節(jié)主要講解基于元數(shù)據(jù)的多租戶SaaS架構(gòu)。
案例:商業(yè)智能SaaS平臺(tái)的整體架構(gòu)
第三單元
架構(gòu)模式與應(yīng)用實(shí)踐
1、分層架構(gòu)模式與實(shí)踐
講解經(jīng)典的軟件分層架構(gòu)。
2、微內(nèi)核架構(gòu)模式與實(shí)踐
微內(nèi)核模式是架構(gòu)模式中極為重要的一種模式,尤其是它劃分功能子集為核心功能子集的設(shè)計(jì)思想非常重要,但它的重要性卻常常被人忽略。
案例:商業(yè)智能SaaS平臺(tái)與Spring框架對(duì)微內(nèi)核模式的運(yùn)用
3、管道-過濾器架構(gòu)模式與實(shí)踐
若要實(shí)現(xiàn)數(shù)據(jù)處理的良好可擴(kuò)展性,有效降低數(shù)據(jù)處理的算法復(fù)雜度,就需要運(yùn)用管道-過濾器模式。
案例:商業(yè)智能SaaS平臺(tái)的核心算法
4、MVC架構(gòu)模式與實(shí)踐
MVC架構(gòu)模式是最常用的架構(gòu)模式,體現(xiàn)了關(guān)注點(diǎn)分離的架構(gòu)原則。在介紹MVC模式的同時(shí),還將深入分析與比較MVC模式與MVP模式之間的異同。
案例:Ruby On Rails的MVC架構(gòu)
5、CQRS架構(gòu)模式與實(shí)踐
CQRS模式即命令查詢職責(zé)分離模式,是DDD中基于事件的讀寫分離架構(gòu)模式。將業(yè)務(wù)邏輯建模為狀態(tài)機(jī)模型,并利用松散耦合的命令與事件機(jī)制,采用異步模型改善系統(tǒng)整體性能。
案例:會(huì)議注冊(cè)與管理系統(tǒng)的CQRS架構(gòu)
第四單元
架構(gòu)核心原則與設(shè)計(jì)策略
1、設(shè)計(jì)簡單的架構(gòu)
(1)設(shè)計(jì)的意圖:通過清晰地表達(dá)設(shè)計(jì)意圖,以簡化系統(tǒng)的整體架構(gòu),并有利于設(shè)計(jì)者與開發(fā)者之間的溝通。
案例分析:Ruby On Rails的架構(gòu)設(shè)計(jì)
(2)保證系統(tǒng)足夠小,促進(jìn)恰如其分的架構(gòu)設(shè)計(jì)
(3)分而治之與關(guān)注點(diǎn)分離:遵循“關(guān)注點(diǎn)分離”的架構(gòu)原則,將架構(gòu)的分離策略分為縱橫分離與內(nèi)外分離。
(4)如何化繁為簡:通過專注實(shí)體的職責(zé),整體分析系統(tǒng)目標(biāo)、范圍與核心概念;并通過抽象簡化簡化整個(gè)系統(tǒng)的模型。
(5)設(shè)計(jì)的演進(jìn):通過具體案例講解如何運(yùn)用風(fēng)險(xiǎn)驅(qū)動(dòng)進(jìn)行架構(gòu)的設(shè)計(jì)與演化。
2、設(shè)計(jì)一致的架構(gòu)
(1)設(shè)計(jì)風(fēng)格的一致性:合理運(yùn)用前面講到的架構(gòu)風(fēng)格,針對(duì)不同場(chǎng)景做出正確的架構(gòu)決策。分析基于約束對(duì)架構(gòu)風(fēng)格的驅(qū)動(dòng)設(shè)計(jì)方式。
(2)概念的一致性:如何通過業(yè)務(wù)分析甄別領(lǐng)域概念,對(duì)整個(gè)系統(tǒng)的領(lǐng)域邏輯進(jìn)行建模,并利用抽象簡化模型。通過引入DDD的概念,以確定一致的設(shè)計(jì)概念,以便于開發(fā)團(tuán)隊(duì)的溝通和協(xié)作。
(3)解決方案的一致性:要求在系統(tǒng)設(shè)計(jì)時(shí),確保針對(duì)同一個(gè)問題域采用一致的解決方案。
(4)路線圖:確定產(chǎn)品線,制定路線圖,作為保證一致架構(gòu)的高層藍(lán)圖。
3、設(shè)計(jì)自治的架構(gòu)
(1)最小完備特征:設(shè)計(jì)最小完備的對(duì)象、組件與服務(wù)。通過識(shí)別設(shè)計(jì)特征來判斷實(shí)體是否符合最小完備原則。
(2)自我履行特征:設(shè)計(jì)智能有意識(shí)的對(duì)象,可以通過從調(diào)用端和提供行為的一方雙向地分析,以改善職責(zé)的分配。
(3)穩(wěn)定空間特征:合理的封裝,維持實(shí)體的邊界,并提供開放空間以滿足系統(tǒng)整體架構(gòu)的可擴(kuò)展性。劃定軟件系統(tǒng)的邏輯邊界與物理邊界,保證系統(tǒng)的可重用性。
(4)獨(dú)立進(jìn)化特征:通過引入契約和接口,制定規(guī)范,以設(shè)計(jì)具有可進(jìn)化性的系統(tǒng)。在設(shè)計(jì)時(shí),考慮新舊版本的兼容性,為系統(tǒng)建立防腐層隔離變化。
第五單元
MMN架構(gòu)設(shè)計(jì)過程
MMN架構(gòu)設(shè)計(jì)過程是指對(duì)系統(tǒng)架構(gòu)從宏觀、微觀與納米層面的整體設(shè)計(jì)過程。這是一個(gè)迭代和演進(jìn)的設(shè)計(jì)過程,通過自頂向下結(jié)合自下而上的方式,對(duì)整個(gè)軟件系統(tǒng)進(jìn)行分析與設(shè)計(jì),保證整個(gè)軟件系統(tǒng)滿足功能需求與質(zhì)量屬性。
1、宏觀視圖的架構(gòu)因素與設(shè)計(jì)過程
(1)定義架構(gòu)概圖:包括調(diào)查架構(gòu)資源,明確架構(gòu)的目標(biāo),根據(jù)架構(gòu)目標(biāo)做出重要的設(shè)計(jì)決策,并分析主要的用例場(chǎng)景,以建立一個(gè)粗略的架構(gòu)概圖。
案例分析:企業(yè)應(yīng)用套件的架構(gòu)概圖
(2)架構(gòu)全局分析:識(shí)別架構(gòu)風(fēng)險(xiǎn),并確定風(fēng)險(xiǎn)優(yōu)先級(jí)。然后根據(jù)識(shí)別出來的風(fēng)險(xiǎn)編寫架構(gòu)因素表,制訂具體的架構(gòu)策略。同時(shí)確定整個(gè)系統(tǒng)的關(guān)鍵場(chǎng)景。
案例分析:遠(yuǎn)程訪問的架構(gòu)策略
(3)構(gòu)建概念模型:確定技術(shù)框架與技術(shù)選型,識(shí)別并分析軟件產(chǎn)品的設(shè)計(jì)約束,從而確定架構(gòu)風(fēng)格,并根據(jù)具體場(chǎng)景運(yùn)用架構(gòu)模式。
案例分析:CIMS架構(gòu)概念模型
(4)建立系統(tǒng)的邏輯視圖和物理視圖
案例分析:集團(tuán)智能信息輔助系統(tǒng)的架構(gòu)概念模型
2、微觀視圖的架構(gòu)因素與設(shè)計(jì)過程
(1)細(xì)化邏輯視圖:進(jìn)行領(lǐng)域分析,確定系統(tǒng)的應(yīng)用邏輯架構(gòu)與業(yè)務(wù)邏輯架構(gòu),并設(shè)計(jì)整個(gè)系統(tǒng)的模塊視圖;
案例分析:汽車零售管理系統(tǒng)領(lǐng)域分析
案例分析:商業(yè)智能SaaS平臺(tái)邏輯架構(gòu)
(2)細(xì)化物理視圖:執(zhí)行運(yùn)行時(shí)分析,確定通信機(jī)制和資源分配,并以此為根據(jù)設(shè)計(jì)部署視圖和執(zhí)行視圖
案例分析:燃?xì)饧瘓F(tuán)解決方案
3、納米視圖的架構(gòu)因素與設(shè)計(jì)過程
(1)構(gòu)建設(shè)計(jì)模型:講解職責(zé)驅(qū)動(dòng)設(shè)計(jì),通過角色、職責(zé)與協(xié)作完成對(duì)象的職責(zé)分配,并通過識(shí)別變化點(diǎn),利用抽象對(duì)變化進(jìn)行封裝,以及合理運(yùn)用設(shè)計(jì)模式。
案例分析:數(shù)據(jù)分析器
案例分析:商業(yè)智能SaaS平臺(tái)引擎設(shè)計(jì)
(2)代碼視圖:包括確定部署組件、配置管理、持續(xù)集成等與代碼級(jí)別有關(guān)的內(nèi)容。
案例分析:集團(tuán)智能信息輔助系統(tǒng)的代碼視圖
案例分析:商業(yè)智能SaaS平臺(tái)的代碼視圖
第六單元
大型軟件系統(tǒng)體系架構(gòu)
1、在線零售商集成解決方案
整個(gè)系統(tǒng)牽涉到電子商務(wù)、庫存管理、呼叫中心、郵件服務(wù)等多個(gè)系統(tǒng)的集成。該解決方案通過運(yùn)用分布式系統(tǒng)的最佳實(shí)踐,運(yùn)用基于消息的中間件,對(duì)系統(tǒng)進(jìn)行整體設(shè)計(jì),使得系統(tǒng)能夠高質(zhì)量地支撐在線零售商的核心業(yè)務(wù)。
2、銀行保險(xiǎn)客戶核心支撐系統(tǒng)真實(shí)案例,是某大型金融集團(tuán)的客戶核心支撐系統(tǒng),需要支持的業(yè)務(wù)系統(tǒng)多達(dá)數(shù)十個(gè),且具有不同的業(yè)務(wù),部署在不同的平臺(tái)。如何通過合理地設(shè)計(jì),運(yùn)用ESB和REST對(duì)整個(gè)系統(tǒng)進(jìn)行集成。

活動(dòng)詳情

提交需求