1.什么是架構師?
系統架構師是一個既需要掌控整體又需要洞悉局部瓶頸并依據具體的業務場景給出解決方案的團隊領導型人物。一個架構師得需要足夠的想像力,能把各種目標需求進行不同維度的擴展,為目標客戶提供更為全面的需求清單。? ? ? ??
簡單地說:建筑設計師(架構師)、工地搬磚仔(普通碼農)。
基本上日復一日的加班我們都是搬磚仔。我們都知道架構師是什么,只是不知道架構師該干什么。
2.什么是UML?
UML(Unified Modeling Language)為面向對象軟件設計提供統一的、標準的、可視化的建模語言.
通過StarUML工具可以建模。StarUML下載地址
例如:你描述一個人?
? ? ? ? 第一種描述方式:正常文字描述:(程序開發)
? ? ? ? 第二種描述方式:畫圖(UML建模語言)
UML語義:UML對語義的描述使開發者能在語義上取得一致認識,消除了因人而異的表達方法所造成的影響。
組成部分:
? ? ? 例如:汽車(由很多零件組成:輪子、方向盤、座位等等...)
? ? ? 例如:軟件開發(OC語言)
事物:在UML建模語言事物,你可以簡單的認為是元素(相當于汽車零件)(類似于OC語言中關鍵字或者說語法)。
關系:元素之間關系(相當于:汽車零件之間的關系)(類似于語法使用規則)。
圖:UML建模(相當于:華汽車圖,建造汽車)(類似于OC中的類、對象、模塊)。
3.UML怎么使用?
? ? ? 第一步:分析UML建模語法
? ? ? 第二步:分析UML建模關系(重點)
? ? ? ? ? ? 3.1 分析-泛化關系:generalization
? ? ? ? ? ? ? ? ? 定義:說白了就是繼承關系。
? ? ? ? ? ? 3.2 分析-實現關系:realization
? ? ? ? ? ? ? ? ? 定義:在Java中類似于接口,在iOS中類似于協議。
? ? ? ? ? ? 3.3 分析-依賴關系:dependency
? ? ? ? ? ? ? ? ? 定義:已知A類和B類,在A類中引用了B類,這種關系是偶然性、臨時性,同時B類中發生了變化,影響到A類,這種關系就稱之為依賴關系。
? ? ? ? ? ? ? ? ? 例子:我早上去粉店吃米粉。(我與粉店的關系是臨時性的,因為我明天可能去吃油條,同時,粉店如果關門了,那么就會影響到我,因為我早上就吃不了米粉了,這就是依賴關系)。
? ? ? ? ? ? 3.4 分析-關聯關系-方向關聯(單向關聯):Directed Association
? ? ? ? ? ? ? ? ? 定義:本質就是依賴關系的特殊情況(比較強),兩個類屬于同一個層次。
? ? ? ? ? ? ? ? ? 例子:人喝水。
? ? ? ? ? ? 3.5 分析-關聯關系-雙向關聯:Association(強關系)
? ? ? ? ? ? ? ? ? 定義:本質就是依賴關系的特殊情況。
? ? ? ? ? ? ? ? ? 例子:用戶和訂單(用戶保存訂單號,訂單對應用戶)。
? ? ? ? ? ? 3.6 分析-聚合關系:Aggregration
? ? ? ? ? ? ? ? ? 定義:聚合關系是關聯關系的特例,強調整體和部分。整體和部分可以分離,各自有各自的生命周期,互不干擾,部分強調共享。
? ? ? ? ? ? ? ? ? 例子:電腦和電池、手機和電池。
? ? ? ? ? ? 3.7 分析-組合關系:Composition
? ? ? ? ? ? ? ? ? 定義:強調整體和部分,整體和部分不可以分離,共享生命周期,整體生命周期結束意味著部分生命周期結束。
? ? ? ? ? ? ? ? ? 例子:例如:孕婦和胎兒、公司和部門、硬件和軟件。
? ? ? 第三步:分析UML建模模型圖(這里可以百度/簡書查找相關資料來看)
? ? ? ? ? ? 第一個內容:用例圖
? ? ? ? ? ? ? ? ? 語法:學習提供元素(提供了哪些部件可以使用)
? ? ? ? ? ? ? ? ? 例如:我自駕游
? ? ? ? ? ? 第二個內容:類圖
? ? ? ? ? ? ? ? ? 例如:公司類
? ? ? ? ? ? ? ? ? 注意:屬性和方法修飾符
? ? ? ? ? ? ? ? ? ’+’表示public修飾符
? ? ? ? ? ? ? ? ? ’-’表示private修飾符
? ? ? ? ? ? ? ? ? ‘#’表示protected修飾符
? ? ? ? ? ? 第三個內容:順序圖(時序圖)
? ? ? ? ? ? ? ? ? 案例:微信支付流程圖(購物為例)
? ? ? ? ? ? ? ? ? 一般后臺都是java,服務器優化需要C/C++
? ? ? ? ? ? ? ? ? 在Java有JNI,JNI負責調用C/C++