中图网(原中国图书网):网上书店,中文字幕在线一区二区三区,尾货特色书店,中文字幕在线一区,30万种特价书低至2折!

歡迎光臨中圖網 請 | 注冊
> >>
移動開發架構設計實戰

包郵 移動開發架構設計實戰

作者:李云鵬
出版社:電子工業出版社出版時間:2018-01-01
開本: 其他 頁數: 304
中 圖 價:¥44.6(5.0折) 定價  ¥89.0 登錄后可看到會員價
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>

移動開發架構設計實戰 版權信息

移動開發架構設計實戰 本書特色

本書覆蓋了移動開發中涉及的多種架構模式,基于Android平臺對架構模式進行實戰,可以幫助入門開發者了解架構模式,進階開發者掌握架構模式,技術領導者進行架構選型。本書內容包括:流行架構模型MVX系列——MVC架構、MVP架構、MVVM架構,依賴注入框架Dagger2,函數響應式框架RxJava2,Google推薦的生命周期感知架構組件AAC,整潔的架構“The Clean Architecture”和組件化架構的運用方法與實戰。本書語言精練,內容清晰,代碼易于理解,適合計算機相關行業的從業者閱讀與學習。

移動開發架構設計實戰 內容簡介

本書覆蓋了移動開發中涉及的多種架構模式,基于Android平臺對架構模式進行實戰,可以幫助入門開發者了解架構模式,進階開發者掌握架構模式,技術進行架構選型。本書內容包括:流行架構模型MVX系列――MVC架構、MVP架構、MVVM架構,依賴注入框架Dagger2,函數響應式框架RxJava2,Google推薦的生命周期感知架構組件AAC,整潔的架構“The Clean Architecture”和組件化架構的運用方法與實戰。本書語言精練,內容清晰,代碼易于理解,適合計算機相關行業的從業者閱讀與學習。

移動開發架構設計實戰 目錄

第1章 什么是架構 1
1.1 架構設計理念 1
1.1.1 軟件架構的起源 1
1.1.2 架構設計三要素 2
1.1.3 什么是優秀的軟件架構設計 2
1.1.4 軟件架構設計的關注點 3
1.2 軟件架構設計的本質和目的 3
1.2.1 做出決策 3
1.2.2 降低軟件熵 4
1.3 架構設計思維 4
1.3.1 簡化思維 4
1.3.2 分層思維 5
1.3.3 分治思維 6
1.3.4 迭代思維 6
1.4 架構設計模式原則 7
1.4.1 單一職責原則 7
1.4.2 開放封閉原則 8
1.4.3 里氏替換原則 9
1.4.4 依賴倒置原則 9
1.4.5 接口分離原則 10
1.5 架構設計步驟 11
1.5.1 認識系統 11
1.5.2 設計系統 12
1.5.3 創建系統 14
1.5.4 收集反饋 14
1.6 小結 15

第2章 MVC架構:表現層分離 16
2.1 什么是MVC 16
2.1.1 MVC的誕生 16
2.1.2 MVC的分層與職責 17
2.1.3 MVC在移動開發中的爭議 18
2.2 MVC的模式 19
2.2.1 被動模式 19
2.2.2 主動模式 19
2.2.3 觀察者模式 20
2.2.4 被動模式與主動模式的區別 21
2.3 MVC的核心思想 21
2.4 小結 22

第3章 實戰:基于MVC架構設計的日記App 23
3.1 層級職責劃分 23
3.2 準備階段 24
3.2.1 準備、創建View 24
3.2.2 清單文件Manifest配置 26
3.2.3 初始化Fragment 27
3.3 創建View 28
3.4 數據處理 31
3.4.1 創建Model 31
3.4.2 創建本地數據源 32
3.4.3 數據持久化工具 33
3.4.4 實現本地數據源 34
3.4.5 填充測試數據 36
3.4.6 使用數據倉庫管理數據 37
3.5 創建Controller 40
3.5.1 Controller初始化 40
3.5.2 創建Adapter 41
3.5.3 創建ViewHolder 43
3.5.4 Controller的協調工作 44
3.6 運行App 48
3.7 實現主動模式的MVC 49
3.7.1 改造Model 49
3.7.2 注冊觀察者 50
3.8 小結 50

第4章 MVP架構:開始解耦 52
4.1 什么是MVP 52
4.1.1 MVP架構的起源 52
4.1.2 MVP的分層與職責 52
4.2 MVP的核心思想 53
4.2.1 面向接口編程 53
4.2.2 德墨忒爾定律 54
4.3 MVP與MVC的區別 55
4.4 MVP模式存在的問題 56
4.4.1 責任過重的Presenter 56
4.4.2 業務邏輯無法復用 56
4.4.3 急劇擴增的接口數量 57
4.5 如何解決Presenter的復用問題 57
4.5.1 提供工具類 57
4.5.2 提供多對一的Presenter 57
4.5.3 分離出Interactor層 58
4.6 小結 59

第5章 實戰:MVP架構設計 60
5.1 層級職責劃分 60
5.2 準備工作 60
5.2.1 定義基礎View接口 60
5.2.2 定義基礎Presenter接口 61
5.3 重構:從MVC到MVP 61
5.3.1 創建Presenter 61
5.3.2 改造View 62
5.3.3 傳入Presenter實例 63
5.3.4 開發過程中Presenter和View的直接依賴 63
5.3.5 Presenter生命周期的處理 64
5.3.6 列表Adapter的處理 64
5.3.7 展示數據的處理 65
5.3.8 對話框展示的處理 67
5.3.9 菜單的處理 68
5.3.10 實現面向接口設計 69
5.3.11 建立契約類 69
5.4 實現MVP模式:日記修改功能 70
5.4.1 創建日記修改Activity 71
5.4.2 創建日記修改Fragment 72
5.4.3 添加“完成”按鈕 74
5.4.4 創建日記修改Presenter 75
5.4.5 日記操作處理 76
5.4.6 頁面跳轉處理 77
5.4.7 刪除舊有的修改日記UI 78
5.4.8 修改為面向接口設計 79
5.5 小結 79

第6章 MVVM架構:雙向綁定 81
6.1 什么是MVVM 81
6.1.1 MVVM架構的起源 81
6.1.2 MVVM的分層與職責 82
6.2 MVVM的核心思想 82
6.2.1 進一步解耦 82
6.2.2 數據驅動 83
6.2.3 雙向綁定 83
6.3 架構模式對比 84
6.3.1 MVC與MVVM 84
6.3.2 MVP與MVVM 85
6.4 MVVM存在的問題 86
6.4.1 ViewModel難以復用 86
6.4.2 學習成本高 86
6.4.3 調試困難 86
6.5 小結 87

第7章 實戰:MVVM架構設計 88
7.1 什么是DataBinding 88
7.2 重構:從MVP到MVVM 88
7.2.1 配置DataBinding支持 89
7.2.2 修改Presenter為ViewModel 89
7.2.3 消除契約類 90
7.2.4 轉換布局文件 92
7.2.5 在布局中加入變量和表達式 93
7.2.6 ViewModel繼承BaseObservable 94
7.2.7 在XML布局文件中定義列表數據屬性 95
7.2.8 使用BindingAdapter處理自定義屬性 97
7.2.9 繪制View布局 98
7.2.10 為View屬性賦值 99
7.2.11 找到XML中的View 100
7.2.12 ObservableField原理 100
7.2.13 使用ObservableField 101
7.2.14 使用ObservableList 103
7.3 小結 104

第8章 依賴注入:Dagger2鋒利的“匕首” 105
8.1 什么是Dagger 105
8.1.1 依賴注入 105
8.1.2 編譯時注解解析 107
8.2 實現:將Dagger2加入MVP 108
8.2.1 配置Dagger2 108
8.2.2 確定數據倉庫改造目標 108
8.2.3 改造數據倉庫 109
8.2.4 Inject注解 110
8.2.5 Component注解 111
8.2.6 Module注解 114
8.2.7 Provides注解 115
8.2.8 Scope注解 117
8.2.9 Singleton注解 117
8.2.10 Scope注解和Singleton注解的實現原理 118
8.2.11 日記列表模塊依賴關系分析 120
8.2.12 創建日記列表模塊Component 120
8.2.13 創建日記列表Presenter Module 121
8.2.14 Component的dependencies屬性 123
8.3 存在的問題 125
8.3.1 學習成本極高 125
8.3.2 短期內開發效率低 125
8.3.3 靈活性不良好 126
8.4 小結 126

第9章 函數響應式框架:優雅的RxJava2 127
9.1 什么是RxJava 127
9.2 RxJava2的核心思想 128
9.2.1 函數響應式編程 128
9.2.2 背壓 129
9.2.3 鏈式調用 129
9.3 實戰:將RxJava2加入MVP 130
9.3.1 配置RxJava2 130
9.3.2 Flowable 131
9.3.3 響應式拉取 132
9.3.4 修改數據源接口 133
9.3.5 修改本地數據源 133
9.3.6 Just操作符 134
9.3.7 Empty操作符 135
9.3.8 FromIterable操作符 135
9.3.9 To操作符 136
9.3.10 Subscriber和事件流 137
9.3.11 修改數據倉庫 137
9.3.12 FlatMap操作符 139
9.3.13 Map操作符 140
9.3.14 修改Presenter 141
9.3.15 CompositeDisposable和Disposable 142
9.3.16 Presenter生命周期 143
9.4 存在的問題 144
9.5 小結 144

第10章 AAC:搭建生命周期感知架構 145
10.1 什么是AAC 145
10.2 AAC的核心思想 146
10.2.1 關注點分離 146
10.2.2 模型驅動界面 147
10.3 ViewModel LiveData 148
10.3.1 DataBinding 148
10.3.2 Gradle依賴配置 149
10.3.3 AAC中的ViewModel 149
10.3.4 使用ViewModel 150
10.3.5 使用ViewModelProviders創建ViewModel 151
10.3.6 什么是LiveData 152
10.3.7 MutableLiveData 153
10.3.8 創建LiveData 154
10.3.9 LiveData更新 155
10.3.10 LiveData接收變化 156
10.4 LifeCycle 156
10.4.1 生命周期 157
10.4.2 LifecycleObserver 158
10.4.3 LifecycleOwner 159
10.5 Room 160
10.5.1 Room的組成 160
10.5.2 實體 161
10.5.3 數據訪問對象DAO 163
10.5.4 Room依賴配置 164
10.5.5 定義實體 164
10.5.6 創建Dao 165
10.5.7 創建數據庫管理器 166
10.5.8 線程處理 168
10.5.9 修改本地數據源 169
10.5.10 數據庫升級 172
10.6 小結 173

第11章 組件化架構:極速運行 174
11.1 什么是組件化 174
11.2 組件化的核心思想 175
11.2.1 軟件復用 175
11.2.2 信息隱藏 176
11.2.3 快速運行 177
11.3 組件分離 178
11.3.1 組件層級劃分 178
11.3.2 組件劃分 179
11.3.3 創建Module 180
11.3.4 組件依賴關系 183
11.3.5 復用Gradle配置 187
11.3.6 公共資源組件 189
11.3.7 基礎組件 191
11.3.8 移動依賴 194
11.3.9 Gradle版本號管理 194
11.3.10 處理Context 197
11.3.11 公共組件 198
11.3.12 日記列表展示組件 200
11.3.13 日記添加修改組件 202
11.3.14 Gradle Plugin沖突 204
11.3.15 運行主Module 204
11.4 使用路由 206
11.4.1 路由配置 206
11.4.2 使用Route跳轉 207
11.4.3 攜帶參數跳轉 208
11.5 組件運行 210
11.5.1 切換開關 210
11.5.2 組件配置 212
11.5.3 Manifest文件配置 212
11.5.4 集成運行 215
11.6 組件合并 216
11.6.1 組件命名沖突 216
11.6.2 Manifest文件合并策略 217
11.6.3 資源文件沖突 218
11.6.4 資源文件合并策略 219
11.7 小結 220

第12章 The Clean Architecture:整潔的架構 221
12.1 什么是The Clean Architecture 221
12.2 The Clean Architecture的核心思想 222
12.2.1 單向依賴規則 222
12.2.2 業務規則分離 223
12.2.3 簡單數據結構跨界 224
12.3 MVP-Clean架構 224
12.3.1 用例的請求數據和響應數據 224
12.3.2 用例的數據處理 226
12.3.3 用例的線程切換 228
12.3.4 創建用例 229
12.3.5 執行用例 230
12.3.6 封裝請求數據 231
12.3.7 創建日記更新
展開全部

移動開發架構設計實戰 作者簡介

李云鵬,網易新聞架構技術組工程師,沐暄網創始人,Oracle、Adobe等企業認證專家;10年互聯網經驗,曾就職于世界500強企業核心技術實驗室;于2009年創立沐暄網,2010年入圍鳳凰網“全球最具影響力的中文論壇100強”站長。擅長移動端架構設計、項目重構與Intellij插件開發等工作。參與網易新聞組件化架構設計,視頻模塊、統計模塊等多模塊重構工作,利用VIPER對客戶端基礎架構進行改良。喜歡創新和研究,作為第一發明人,申請了十余項專利和著作權。

商品評論(0條)
暫無評論……
書友推薦
本類暢銷
編輯推薦
返回頂部
中圖網
在線客服
主站蜘蛛池模板: 雨水收集系统厂家-雨水收集利用-模块雨水收集池-徐州博智环保科技有限公司 | 雨水收集系统厂家-雨水收集利用-模块雨水收集池-徐州博智环保科技有限公司 | 郑州律师咨询-郑州律师事务所_河南锦盾律师事务所 | 污水提升器,污水提升泵,污水提升装置-德国泽德(zehnder)水泵系统有限公司 | 插针变压器-家用电器变压器-工业空调变压器-CD型电抗器-余姚市中驰电器有限公司 | 防腐储罐_塑料储罐_PE储罐厂家_淄博富邦滚塑防腐设备科技有限公司 | 槽钢冲孔机,槽钢三面冲,带钢冲孔机-山东兴田阳光智能装备股份有限公司 | 模具钢_高速钢_不锈钢-万利钢金属材料 | 老房子翻新装修,旧房墙面翻新,房屋防水补漏,厨房卫生间改造,室内装潢装修公司 - 一修房屋快修官网 | 等离子表面处理机-等离子表面活化机-真空等离子清洗机-深圳市东信高科自动化设备有限公司 | 沈阳激光机-沈阳喷码机-沈阳光纤激光打标机-沈阳co2激光打标机 | 运动木地板厂家,篮球场木地板品牌,体育场馆木地板安装 - 欧氏运动地板 | 海日牌清洗剂-打造带电清洗剂、工业清洗剂等清洗剂国内一线品牌 海外整合营销-独立站营销-社交媒体运营_广州甲壳虫跨境网络服务 | 建大仁科-温湿度变送器|温湿度传感器|温湿度记录仪_厂家_价格-山东仁科 | 无锡网站建设-做网站-建网站-网页设计制作-阿凡达建站公司 | 临沂招聘网_人才市场_招聘信息_求职招聘找工作请认准【马头商标】 | 苏州西装定制-西服定制厂家-职业装定制厂家-尺品服饰西装定做公司 | 炭黑吸油计_测试仪,单颗粒子硬度仪_ASTM标准炭黑自销-上海贺纳斯仪器仪表有限公司(HITEC中国办事处) | 杭州成人高考_浙江省成人高考网上报名 | 不锈钢螺丝 - 六角螺丝厂家 - 不锈钢紧固件 - 万千紧固件--紧固件一站式采购 | 蓝米云-专注于高性价比香港/美国VPS云服务器及海外公益型免费虚拟主机 | 智慧农业|农业物联网|现代农业物联网-托普云农物联网官方网站 | 济宁工业提升门|济宁电动防火门|济宁快速堆积门-济宁市统一电动门有限公司 | 冷轧机|两肋冷轧机|扁钢冷轧机|倒立式拉丝机|钢筋拔丝机|收线机-巩义市华瑞重工机械制造有限公司 | 焊锡丝|焊锡条|无铅锡条|无铅锡丝|无铅焊锡线|低温锡膏-深圳市川崎锡业科技有限公司 | 制冷采购电子商务平台——制冷大市场 | 江苏全风,高压风机,全风环保风机,全风环形高压风机,防爆高压风机厂家-江苏全风环保科技有限公司(官网) | 培训无忧网-教育培训咨询招生第三方平台 | 密封无忧网 _ 专业的密封产品行业信息网 | 蓝米云-专注于高性价比香港/美国VPS云服务器及海外公益型免费虚拟主机 | 山东限矩型液力偶合器_液力耦合器易熔塞厂家-淄博市汇川源机械厂 | 中式装修设计_全屋定制家具_实木仿古门窗花格厂家-喜迎门 | 不锈钢丸厂家,铝丸,铸钢丸-淄博智源铸造材料有限公司 | TYPE-C厂家|TYPE-C接口|TYPE-C防水母座|TYPE-C贴片-深圳步步精 | 网架支座@球铰支座@钢结构支座@成品支座厂家@万向滑动支座_桥兴工程橡胶有限公司 | 硬齿面减速机[型号全],ZQ减速机-淄博久增机械 | 洁净棚-洁净工作棚-无菌室-净化工程公司_北京卫护科技有限公司 | 聚合氯化铝-碱式氯化铝-聚合硫酸铁-聚氯化铝铁生产厂家多少钱一吨-聚丙烯酰胺价格_河南浩博净水材料有限公司 | 消防泵-XBD单级卧式/立式消防泵-上海塑泉泵阀(集团)有限公司 | 河南卓美创业科技有限公司-河南卓美防雷公司-防雷接地-防雷工程-重庆避雷针-避雷器-防雷检测-避雷带-避雷针-避雷塔、机房防雷、古建筑防雷等-山西防雷公司 | 无硅导热垫片-碳纤维导热垫片-导热相变材料厂家-东莞市盛元新材料科技有限公司 |