新書推薦:
《
便宜货:廉价商品与美国消费社会的形成
》
售價:HK$
77.3
《
读书是一辈子的事(2024年新版)
》
售價:HK$
79.4
《
乐道文库·什么是秦汉史
》
售價:HK$
82.8
《
汉娜·阿伦特与以赛亚·伯林 : 自由、政治与人性
》
售價:HK$
109.8
《
女性与疯狂(女性主义里程碑式著作,全球售出300万册)
》
售價:HK$
112.7
《
药食同源中药鉴别图典
》
售價:HK$
68.8
《
设计中的比例密码:建筑与室内设计
》
售價:HK$
89.7
《
冯友兰和青年谈心系列:看似平淡的坚持
》
售價:HK$
55.8
|
編輯推薦: |
软件开发老兵余晟为本书倾情作序,Bmob后端云CEO何少岳、UCloud综合研发中心高级工程师胡亚平、bilibili研发总监毛剑联合力荐。本书将告诉读者如何用“正确的方式”使用各种已有的工具,将为读者呈现一幅包括技术选型、后台搭建、性能优化、运维实践、架构设计在内的App后台开发蓝图。
|
內容簡介: |
《App 后台开发运维和架构实践》通过阐述移动互联网中 App 后台开发的特点,梳理了 App 后台开发中会遇到的各个技术点,给出了生产环境常用软件的实战运维经验总结,剖析了常见 App 后台技术架构设计,为读者呈现一幅包括技术选型、后台搭建、性能优化、运维实践、架构设计的 App 后台开发蓝图。
本书的目标读者是对技术感兴趣的产品经理、刚入行的 App 后台开发人员,以及从传统软件行业转向 App 后台开发的技术人员。
|
關於作者: |
曾健生,曾任职于广州市赢靖信息科技有限公司,负责社交App后台研发。目前就职bmob后端云从事云服务方面的研发工作。
|
目錄:
|
推荐序 ....................................................................................................................................... 3
前言 ........................................................................................................................................... 5
致谢 ........................................................................................................................................... 7
目录 ........................................................................................................................................... 8
第 1 章 App 后台入门 ........................................................................................................... 16
1.1 App 后台的功能 .................................................................................................................. 16
1.2 App 后台架构 ...................................................................................................................... 17
1.3 App 和 App 后台的通信 ..................................................................................................... 19
1.4 App 后台和 Web 后端的区别 ............................................................................................ 22
1.5 选择服务器 ......................................................................................................................... 23
1.6 选择编程语言 ..................................................................................................................... 24
1.7 快速入门新技术 ................................................................................................................. 25
1.7.1 思维模式 .................................................................................................................. 25
1.7.2 4种快速入门新技术的方法 ................................................................................... 25
1.8 App 是怎样炼成的 .............................................................................................................. 26
1.8.1 项目启动阶段 .......................................................................................................... 26
1.8.2 研发阶段 .................................................................................................................. 28
1.8.3 测试阶段 .................................................................................................................. 29
1.8.4 正式推出阶段 .......................................................................................................... 29
1.9 最适合 App 的开发模式——敏捷开发 ............................................................................. 30
1.9.1 Sprint 计划会议 ....................................................................................................... 31
1.9.2 日常开发 .................................................................................................................. 32
1.9.3 每日例会 .................................................................................................................. 33
1.9.4 测试和修复 Bug ...................................................................................................... 33
1.9.5 评审会议 .................................................................................................................. 34
1.9.6 回顾会议 .................................................................................................................. 34
1.9.7 及时反馈 .................................................................................................................. 34
1.9.8 总结.......................................................................................................................... 34
第 2 章 App 后台基础技术 .................................................................................................... 35
2.1 从 App业务逻辑中提炼 API接口 ..................................................................................... 35
2.1.1 业务逻辑思维导图 .................................................................................................. 36
2.1.2 功能—业务逻辑思维导图 ...................................................................................... 37
2.1.3 基本功能模块关系 .................................................................................................. 40
2.1.4 功能模块接口 UML(设计出 API) ..................................................................... 41
2.1.5 编写在线 API测试文档.......................................................................................... 42
2.1.6 设计稿标注 API ...................................................................................................... 45
2.2 设计 API的要点 ................................................................................................................. 46
2.3 如何选择合适的数据库产品 .............................................................................................. 50
2.3.1 Redis,MongoDB,MySQL读写数据的区别 ...................................................... 50
2.3.2 Redis,MongoDB,MySQL查找数据的区别 ...................................................... 50
2.3.3 Redis,MongoDB,MySQL适用场景 .................................................................. 51
2.4 如何选择消息队列软件 ..................................................................................................... 52
2.4.1 为什么要用消息队列? .......................................................................................... 52
2.4.2 消息队列的工作流程 .............................................................................................. 53
2.4.3 常见的一些消息队列产品 ...................................................................................... 54
2.5 使用分布式服务实现业务的复用 ...................................................................................... 54
2.5.1 巨无霸系统的危害 .................................................................................................. 55
2.5.2 远程服务的优点 ...................................................................................................... 56
2.5.3 远程服务的实现 ...................................................................................................... 56
2.6 搜索技术入门 ..................................................................................................................... 59
2.6.1 一个简单的搜索例子 .............................................................................................. 59
2.6.2 搜索技术的基本原理 .............................................................................................. 60
2.6.3 常见的开源搜索软件介绍 ...................................................................................... 62
2.7 定时任务 ............................................................................................................................. 65
2.7.1 Linux定时任务 Crontab .......................................................................................... 65
2.7.2 在后台轻松管理各种各样的定时任务 .................................................................. 66
第 3 章 App 后台核心技术 .................................................................................................... 68
3.1 用户验证方案 ..................................................................................................................... 68
3.1.1 使用 HTTPS协议 .................................................................................................... 68
3.1.2 基本的用户登录方案 .............................................................................................. 69
3.2 App 通信安全 ...................................................................................................................... 72
|
內容試閱:
|
推荐序十八般兵器入门软件开发工具的成长速度远远超过开发人员的成长速度,这是现实。每个月,甚至每天,我们都可以见到新的类库、框架、工具、语言。它们或者极大地降低了开发的成本,或者极大地提升了开发的效率。随之而来的问题就是,如何让开发人员妥善地运用好这些工具?曾经有好几个做开发的同事跟我说:“写软件谁不会?从网上找些开源的类和项目来改改就是了”。目前也确实充斥着这种“改改就是”的工作思维。介绍某个类库和项目如何安装和调用的文章俯拾皆是。但是每种工具究竟有什么优缺点?适合用来解决什么问题?需要以怎样的方式来解决问题?因此还需要做怎样的权衡?这样的问题基本没有人考虑,但是,它们又很重要。这有点像练武。斧钺钩叉、刀枪剑戟,制造手艺日渐精良;可是习武的人心里没有分寸,该劈的时候提了枪,该刺的时候抡了斧…… 耍几下花把式还算足够,真正打起来哪能取胜?我在面试新人中经常提的问题是:NoSQL 分为哪几种类型?每种类型的典型代表和应用场景是什么?要知道,用过MongoDB 和Redis 的人比比皆是,但回答不上这几个问题的也大有人在。这样的候选人,我是决计不敢要的。稍加不注意,他们就可能用Redis 存文档,用MongoDB 做复杂运算,甚至“大胆”用Redis 来替换数据库以解决性能瓶颈——噢,你说起“事务”,Redis 也是有“事务”的呀。对这样的人,你真让他们去研究MongoDB 或者Redis,让他们去通读一本专著,似乎有点划不来,他们自己也没有那么多耐心。所以我常想,有没有一本“薄而广”的书,专注于开拓大家的眼界,并教导大家用“正确的方式”来使用各种已有的工具。如今我们虽然有海量的框架和类库,有突飞猛进的云服务,但是只要没有掌握“正确的应用方式”,就无法保证“把事情做对”,就只能开发出某几个方面明显不及格的产品。所以当我看到曾健生编著的《App 后台开发运维和架构实践》时,不由得眼前一亮。这正是一本“薄而广”的书,它绝不像《打狗棍法》或者《辟邪剑法》,不负责地教你把某门特别的武功练到极致,而更像《十八般兵器入门》,告诉你刀枪剑戟各适合什么场景,使用时有什么注意事项。典型的例子如关于Redis 的部分,它讲的不是Redis 如何安装,如何调用,而是结合发送短信、社交关系计算等典型应用场景讲解Redis 的使用方式,并介绍在Redis 提供内建集群之前,市面上的各种集群的方案和优劣。这样虽然只有一章的篇幅,但为普通开发人员提供的价值绝对要比两三本Redis 专著都要大,而且读起来更有效率。古代练武的人,未必人人都要做武林高手,许多人只是把十八般兵器都耍熟,就已经足够防贼、保平安,受益匪浅了。同样的道理,对今天的App 后台开发人员来说,把基本的点都踩到、踩准,把系统拎到及格线以上,避免明显的缺憾,对大多数场景来说,已经是意义重大了。余晟软件开发老兵,微信公众号“余晟以为”
|
|