登入帳戶  | 訂單查詢  | 購物車/收銀台(0) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入   新用戶註冊
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2024年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / 物流,時效:出貨後2-4日

2025年02月出版新書

2025年01月出版新書

2024年12月出版新書

2024年11月出版新書

2024年10月出版新書

2024年09月出版新書

2024年08月出版新書

2024年07月出版新書

2024年06月出版新書

2024年05月出版新書

2024年04月出版新書

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

『簡體書』大型iOS应用开发:应用架构与设计模式 [美]埃里克·文纳洛

書城自編碼: 4075646
分類: 簡體書→大陸圖書→計算機/網絡程序設計
作者: [美]埃里克·文纳洛
國際書號(ISBN): 9787111768098
出版社: 机械工业出版社
出版日期: 2025-01-01

頁數/字數: /
書度/開本: 16开 釘裝: 平装

售價:NT$ 556

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
经典工笔画临摹技法详解:花鸟、山水、人物合辑
《 经典工笔画临摹技法详解:花鸟、山水、人物合辑 》

售價:NT$ 1520.0
佐渡流人行(松本清张代表作,借用古代故事,讲现代社会议题)
《 佐渡流人行(松本清张代表作,借用古代故事,讲现代社会议题) 》

售價:NT$ 352.0
中国瓷器小史
《 中国瓷器小史 》

售價:NT$ 203.0
奇巧计程车(全5册)
《 奇巧计程车(全5册) 》

售價:NT$ 816.0
修复12000颗心
《 修复12000颗心 》

售價:NT$ 305.0
怪谈百物语:荒宅神火
《 怪谈百物语:荒宅神火 》

售價:NT$ 296.0
殢春风
《 殢春风 》

售價:NT$ 230.0
经典工笔画临摹技法详解:人物
《 经典工笔画临摹技法详解:人物 》

售價:NT$ 653.0

編輯推薦:
在本书中,你将从学习iOS平台的基础知识开始,这些基础知识在使用现成的iOS解决方案时经常被忽视。虽然标准的iOS解决方案可能在小型项目上有效,但最著名的科技公司一般会对这些解决方案进行再创造,以实现高度定制化的使用,因此了解底层概念至关重要。了解这些概念可以缩短上手时间,让工程师直观地理解“为什么”。掌握了基础知识后,接下来你将重点学习架构和设计原则,以便在大型代码库中构建、维护和发布功能,并掌握在大型组织中实施变革的软技能。你将对iOS设计模式有更深入的理解,并掌握将功能从创意转化为产品所需的行业知识。你还将学习在大型组织中完成工作所需的人际交往技能——这是个人职业发展的关键一步。 通过阅读本书,你将学会如何: ·在iOS平台上实践计算机科学和工程基础知识; ·在大型公司中应用iOS架构并推行最佳实践; ·确定产品目前存在的不足,并在整个组织内达成一致; ·利用系统架构知识和行业经验,找出并解决代码库中的问题
內容簡介:
本书概述了移动工程师面临的扩展挑战,以及处理这些问题的一些标准技术和设计模式。从学习 iOS 平台的基础知识开始,这些基础知识在使用开箱即用的 iOS 解决方案时经常被忽视。掌握了基础知识后,接下来将重点学习架构和设计原则,以便在大型代码库中构建、维护和发布功能,并掌握在大型组织中实施变革的软技能。读者将对 iOS 设计模式有更深入的了解,并掌握将功能从想法转化为产品所需的行业知识。本书还将介绍在大型组织中完成工作所需的人际交往技能——这是个人职业发展的关键一步。
關於作者:
埃里克·文纳洛(Eric Vennaro)
Meta的一位团队负责人,他在交付高影响力、技术复杂的项目方面具有丰富的经验,擅长移动端、网页端和后端基础设施等领域。他还对机器学习和隐私问题感兴趣,尤其关注通过机器学习支持的工具来提升隐私保护效果的交叉学科。在负责iOS平台的工作并招聘iOS工程师时,埃里克注意到市面上缺少介绍大型移动应用开发的应用架构与设计模式的资料,因此决定将自己领导移动项目的经验总结出来,撰写了这本书。
目錄
目  录
译者序
前 言
第一部分 Apple 系统基础知识
第1章 熟悉Swift 2
1.1 本章概要 2
1.2 结构体与类 2
1.2.1 探索引用类型与值类型 4
1.2.2 类的继承 7
1.2.3 协议 8
1.3 泛型实践 10
1.3.1 泛型函数 11
1.3.2 泛型类型 11
1.4 总结 14
1.4.1 本章要点 14
1.4.2 扩展阅读 14
第2章 内存管理 15
2.1 本章概要 15
2.2 Swift程序内存使用情况 15
2.2.1 栈 16
2.2.2 堆 17
2.2.3 缓冲区上溢与下溢 18
2.3 Swift内存模型 18
2.3.1 Swift栈分配 18
2.3.2 Swift堆分配 19
2.4 自动引用计数 20
2.4.1 引用计数实践 21
2.4.2 ARC观察生命周期的bug 25
2.5 方法派发 25
2.5.1 静态派发 26
2.5.2 动态派发 26
2.5.3 支持值类型的多态性 27
2.5.4 应用内存管理 31
2.6 总结 32
2.6.1 本章要点 32
2.6.2 扩展阅读 32
第3章 iOS持久化选项 33
3.1 概述 33
3.2 iOS持久化选项介绍 34
3.2.1 保存到文件 34
3.2.2 NSUserDefaults 35
3.2.3 钥匙串 37
3.2.4 Core Data 38
3.2.5 深入探索SQLite 41
3.3 案例:缓存Photo Stream 48
3.3.1 高效地获取图片 56
3.3.2 在应用程序启动过程中持久化
缓存图片 56
3.3.3 封装缓存解决方案 56
3.3.4 小结 57
3.4 总结 57
3.4.1 本章要点 58
3.4.2 扩展阅读 58
第4章 并发编程 59
4.1 概述 59
4.2 并发、并行还是异步 60
4.2.1 并发 60
4.2.2 多线程 60
4.2.3 并行 60
4.2.4 异步编程 61
4.2.5 这将通往何方 61
4.3 并发成本 62
4.3.1 线程成本 62
4.3.2 管理状态共享 63
4.3.3 难以调试 63
4.4 实现并发 63
4.4.1 线程和锁 63
4.4.2 使用GCD和调度队列 66
4.4.3 Operation队列 70
4.4.4 Swift并发 70
4.4.5 深入探讨:实现并发的挑战 76
4.5 现实应用程序中的考量 79
4.5.1 案例1:扩展Meta的
NewsFeed 79
4.5.2 案例2:构建Swift并发 81
4.6 总结 81
4.6.1 本章要点 82
4.6.2 扩展阅读 82
第二部分 应用程序架构和设计模式
第5章 优质架构的重要性 84
5.1 概述 84
5.2 定义优质架构 85
5.3 模块化 87
5.3.1 模块化案例研究 88
5.3.2 模块化总结 90
5.4 可测试性 90
5.4.1 测试案例研究 90
5.4.2 可测试性总结 92
5.5 选择一个架构 92
5.6 总结 92
5.6.1 本章要点 93
5.6.2 扩展阅读 93
第6章 常见的设计模式 94
6.1 概述 94
6.2 为什么设计模式是程序设计的基石 95
6.3 设计模式 95
6.3.1 总体主题 95
6.3.2 代理模式 96
6.3.3 外观模式(结构型) 99
6.3.4 建造者模式 101
6.3.5 工厂模式 106
6.3.6 单例模式 110
6.3.7 依赖注入 112
6.3.8 协调器模式 115
6.3.9 观察者模式 121
6.4 总结 126
6.4.1 本章要点 126
6.4.2 扩展阅读 126
第7章 MVC架构 127
7.1 概述 127
7.2 深入探讨MVC 127
7.2.1 MVC组件 128
7.2.2 组件间的交互 129
7.2.3 MVC 示例 130
7.2.4 讨论 138
7.3 总结 146
7.3.1 本章要点 146
7.3.2 扩展阅读 146
第8章 MVVM 147
8.1 概述 147
8.2 深入探讨MVVM 147
8.2.1 MVVM组件 149
8.2.2 组件间的交互 150
8.2.3 MVVM示例 151
8.2.4 讨论 156
8.3 总结 158
8.3.1 本章要点 159
8.3.2 扩展阅读 159
第9章 VIPER 160
9.1 概述 160
9.2 深入探讨VIPER 161
9.2.1 VIPER组件 161
9.2.2 组件间的交互 162
9.2.3 VIPER示例 163
9.2.4 讨论 174
9.3 总结 175
9.3.1 本章要点 176
9.3.2 扩展阅读 176
第10章 响应式编程范式 177
10.1 概述 177
10.2 响应式编程 177
10.2.1 游戏规则 178
10.2.2 数据传播技术 180
10.2.3 与可变状态的交互  182
10.3 函数响应式编程 183
10.3.1 范畴论 184
10.3.2 函子 185
10.3.3 幺半群 185
10.3.4 单子 186
10.4 FRP与Combine 187
10.4.1 发布者与订阅者 187
10.4.2 Combine 的行为 188
10.4.3 应用程序架构 188
10.5 响应式编程与函数响应式编程的
益处 191
10.6 总结 192
10.6.1 本章要点 193
10.6.2 扩展阅读 193
第三部分 大型应用程序设计
第11章 系统设计流程 196
11.1 概述 196
11.2 软件开发生命周期 197
11.2.1 SDLC 如何运作 197
11.2.2 SDLC 模型 202
11.3 技术负责人的关键作用 206
11.4 专注技能的视角 207
11.4.1 定位问题 207
11.4.2 解决方案设计 207
11.4.3 沟通 208
11.5 为成功设定目标 213
11.5.1 S:具体的 213
11.5.2 M:可衡量的 213
11.5.3 A:可实现的 213
11.5.4 R:相关的 213
11.5.5 T:有时间限制的 214
11.6 SDLC为何重要 215
11.7 总结 216
11.7.1 本章要点 216
11.7.2 扩展阅读 217
第12章 可测试性 218
12.1 概述 218
12.2 为何需要测试 219
12.3 单元测试 219
12.3.1 编写可测试的代码 225
12.3.2 setter注入 225
12.4 集成测试 226
12.5 契约测试 228
12.6 UI测试 229
12.7 手动测试 229
12.8 大规模测试管理 231
12.8.1 测试用例优先级排序 231
12.8.2 测试套件的分类 232
12.8.3 对手动测试进行优先级
排序 232
12.8.4 随着时间管理测试 232
12.9 如果我没有测试该怎么办 233
12.10 总结 233
12.10.1 本章要点 233
12.10.2 扩展阅读 234
第13章 性能 235
13.1 概述 235
13.2 为什么性能很重要 236
13.3 iOS性能评估时需要考虑的因素 236
13.4 关键概念 236
13.4.1 顶层指标 237
13.4.2 中间指标 238
13.4.3 漏斗日志 238
13.4.4 评估百分位数 239
13.4.5 监控与警报 239
13.5 完整的性能周期 240
13.5.1 了解你的工具 240
13.5.2 应用程序增长 240
13.5.3 调试性能问题 241
13.5.4 应用奥卡姆剃刀原则 242
13.5.5 持续测试与评估 242
13.6 性能指标 243
13.6.1 应用程序大小 243
13.6.2 应用程序启动时间 244
13.6.3 应用程序响应性(卡顿) 246
13.6.4 耗电量 248
13.6.5 应用程序崩溃 248
13.6.6 网络相关指标 249
13.6.7 参与度指标 250
13.7 简要实例 251
13.8 总结 253
13.8.1 本章要点 253
13.8.2 扩展阅读 253
第14章 实验操作 254
14.1 本章概要 254
14.2 为什么实验很重要 255
14.3 理论实验平台 255
14.3.1 实验总体 256
14.3.2 实验工具 257
14.3.3 度量评估平台 259
14.4 科学方法与假设检验 260
14.4.1 将科学方法应用于我们的Photo Stream示例 261
14.4.2 实验设计与实施 262
14.4.3 结果分析 265
14.5 常见陷阱 278
14.5.1 多重比较问题 278
14.5.2 实验污染 278
14.5.3 声称无统计显著性的结果是
中性的 278
14.5.4 进行规模过小的实验
(低功效) 279
14.5.5 p值操纵 279
14.5.6 对后处理变量的过滤 279
14.5.7 稀释 279
14.5.8 不等待结果稳定 279
14.5.9 非代表性测试体验与
人群 280
14.5.10 忽视网络效应 280
14.5.11 Pre-AA 偏差 280
14.6 额外验证步骤 281
14.7 总结 281
14.7.1 本章要点 281
14.7.2 扩展阅读 282
第15章 应用程序发布与维护 283
15.1 本章概要 283
15.2 持续集成与交付管理:构建
过程 284
15.2.1 保持主干稳定 287
15.2.2 管理构建时间 287
15.2.3 持续交付 288
15.2.4 发布基础设施 288
15.3 发布一个大型项目 291
15.3.1 在构建功能时 291
15.3.2 满足发布标准 293
15.3.3 内部测试与灰度发布 293
15.3.4 发布 294
15.4 警报与监控 294
15.4.1 日志记录 294
15.4.2 监控 295
15.4.3 警报 295
15.4.4 日志记录到警报示例 296
15.5 维护 296
15.6 总结 296
15.6.1 本章要点 297
15.6.2 扩展阅读 298
第四部分 在大型项目中的领导力
第16章 领导多个团队 300
16.1 本章概要 301
16.2 工程师原型 301
16.2.1 修复者 301
16.2.2 技术负责人 301
16.2.3 架构师 302
16.2.4 执行助理 302
16.3 高级工程师的要求 302
16.3.1 广度 303
16.3.2 深度 303
16.3.3 范围 303
16.3.4 运用广度、深度和范围 304
16.3.5 连接整个系统 305
16.3.6 以指标为导向的团队
简介 306
16.3.7 平衡每个维度 307
16.4 成为一名全面发展的高级
工程师 308
16.4.1 理解技术概念的简短题
外话 308
16.4.2 为什么需要软技能 308
16.4.3 情境领导模型 308
16.4.4 建立关系 315
16.5 总结 317
16.5.1 本章要点 317
16.5.2 扩展阅读 317
第17章 实际案例 318
17.1 自上而下与自下而上 318
17.2 案例研究中角色与原型的
说明 328
17.2.1 原型 328
17.2.2 总体说明 329
17.3 总结 330
附录 完善的五年规划 331
內容試閱
前  言
本书将教你如何构建可扩展至数百万用户的移动应用程序,同时帮你成长为专家和首席专家。
本书的结构旨在反映工程师职业生涯的路径,并将职业阶段与每个阶段成功所需的工具对应起来。我们从聚焦Swift语言的工程基础知识开始,然而,大多数基础知识超出了Swift编程语言的范畴。这是有意为之的,因为随着时间的推移,框架和语言会更迭(SwiftUI、Objective-C),但是它们背后的基本概念不会。理解这些基本概念会让你将它们应用于不断变化的环境,并高效地学习新的工具——这在大规模应用中是一项更为重要的技能,因为许多大公司都会编写自定义的实现。理解基础知识是软件工程师职业生涯的第一阶段,也是本书的第一部分。
本书的第二部分将讨论如何利用设计模式和应用架构原则构建更好的应用程序。掌握 iOS 应用架构和基本设计模式对于达到高级工程师水平至关重要。在这个阶段,你很可能已经能够独立管理自己的工作,并能帮助初级工程师快速掌握应用开发的基础知识。这是大多数书籍的终点,但这只是职业生涯的中间点,仅凭技术技能是无法让你超越高级工程师的。
虽然技术深度是最重要且最容易传授的方面,但工程师还需要具备广泛的经验,包括一流的沟通技巧——这也是本书第三部分的重点。在这一部分,我们将探讨软件工程师的几个广度领域,包括沟通、领导力、指导他人和实验的能力。这些技能将帮助你理解哪些项目值得推进以及如何通过与大型团队的协作来实现它们。在这里,你将利用工程基础知识,并将其与在大规模工作中所需的更广泛的技能相结合。
本书的第一部分到第三部分反映了工程师从初级到高级的职业发展路径。你需要具备每部分的技能才能达到下一个层级,但在达到高级工程师后,你的职业生涯将变得更加广阔。你可以进入管理层,或者可以扩大你的知识面,并将其与你在移动应用领域所拥有的深度知识结合起来,以加速个人职业生涯的提升。
这本书是为那些想全面发展的开发者量身定做的,这类开发者通常被称为“T型”开发者,如图P-1所示。本模型由知识的深度(iOS基础和设计模式)和知识的广度两部分构成,知识的广度包括软技能、开发运维、实验、测试、项目管理方法。软技能(比如沟通和领导技巧)被赋予了极高的重要性,因为它们对于推动进展和领导团队至关重要。本书的第四部分将以一个实际案例作为结束,展示如何将书中学到的概念应用到职业发展中。

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 台灣用户 | 香港/海外用户
megBook.com.tw
Copyright (C) 2013 - 2025 (香港)大書城有限公司 All Rights Reserved.