专栏名称: Cocoa开发者社区
CocoaChina苹果开发中文社区官方微信,提供教程资源、app推广营销、招聘、外包及培训信息、各类沙龙交流活动以及更多开发者服务。
目录
相关文章推荐
51好读  ›  专栏  ›  Cocoa开发者社区

App后台开发运维和架构实践读书笔记

Cocoa开发者社区  · 公众号  · ios  · 2017-05-24 11:43

正文

App后台开发运维和架构实践


App后台基础技术


从App业务逻辑中提炼API接口


业务逻辑思维导图


功能 - 业务逻辑思维导图


基本功能模块关系


  • 人有哪些功能模块

  • 事有哪些功能模块

  • 人和事之间的关系又有哪些模块

*

功能模块接口UML


编写在线API测试文档


  • Swagger-UI

设计稿标注API

设计API的要点


  • 根据对象设计API

  • API的命名

  • API的安全性

  • API返回的数据

  • 图片的处理

  • 返回的提示信息

  • 在线API测试文档

  • 在App客户端启动时调用一个API获取必要的初始化信息

  • 关于API的版本升级问题

如何选择合适的数据库产品


Redies, MongoDB, MySQL 读写数据的区别


  • Redies 内存

  • MongoDB 硬盘+内存

  • MySQL 硬盘


Redies, MongoDB, MySQL 查找数据的区别


  • Redies 键值对

  • MongoDB 知道id或者索引, 不知道id或者索引

  • MySQL 知道id或者索引, 不知道id或者索引


Redies, MongoDB, MySQL 适用场景


Redies 内存价格高, 适合的是读写频率高的数据, 如需要验证的用户的身份信息。


MongoDB 适合的有网站数据, 大尺寸低价值的数据, 高伸缩的场景, 存储地理坐标的数据. 不合适的有高度事务性的系统(银行系统, 会计系统), 传统的商业智能应用, 需要SQL的问题。


MySQL 适合的有事务性的系统, 需要复杂SQL的问题。

如何选择消息队列软件


为什么要用消息队列?


消息队列适用的场景有 发送邮件, 发送短信, 推送消息。


消息队列的工作流程


  • 队列服务器

  • 队列生产者

  • 队列消费者


常见的一些消息队列产品


  • RabbitMQ

  • Redis

  • ZeroMQ

  • ActiveMQ

是用分布是服务实现业务的复用


巨无霸系统的危害


  • 维护上的麻烦

  • 代码管理上的麻烦

  • 数据库连接资源的耗尽


远程服务的优点


独立, 影响小


远程服务的实现


  • REST(REpresentational State Transfer), 表现层状态转化

  • RPC(Remote Procedure Call Protocol), 远程过程调用协议


开源的RPC库: HProse, Dubbo, Dubbox.

搜索技术入门


一个简单的搜索例子


搜索的基本原理


  • 分词

  • 倒序索引


常见的搜索软件介绍


  • Lucene

  • Solr

  • ElasticSearch

  • Sphinx

  • CoreSeek

定时任务


场景: 定期清理一下项目产生的垃圾文件, 某段时间执行一些业务逻辑。


Linux 定时任务 Crontab


在后台轻松管理各种各样的定时任务


  • Quartz (JAVA)

  • APScheduler (Python)