App后台开发和运维第二章
基础技术
1。使用思维导图 将类和模块细分
2。在API返回是数据中,尽量返回“”非null 减少应用的崩溃,使用一个全局函数,来实现,如果API返回的数据中缺少客户端需要的某个数据,App客户的将其自动补上,如果个别需要null的情况个别对待
3。图片处理,在不同的App版本上显示同一张图片的尺寸不一样相同,为了避免每次都下下载原图后做处理,直接在App本地缓存图片,对不同尺寸的图片在url带上所需要的尺寸信息,UCloud获取七牛云就是这样实现的,让服务器去返回你需要的图片尺寸,同时提高了文件的下载速度。
4,返回的信息 最科学的是App后台只返回信息代码,具体的文字提示由客户端觉得。如果文字信息是App后台返回的话,则要区分两种信息,一个是个用户看的信息,一个是个客户端程序员看的信息。
5.在线API测速文段 可以使用Swagger-UI搭建
6。客户端启动的时候调用一个初始化API获取必要的信息,来提示用户更新App可以使用静默安装的方式。
7,选择数据库产品 MySql Redis和MongoDB的区别。
数据涉及读写 计算机常用的储存设备是内存和硬盘,内存的读取速度大概是硬盘的80倍,因此数据尽量放在内存中
Redis 的数据是基于键值对的储存,读写速度快,但是数据只存在服务器的内存中,内存价格比较高,由于是键值对的储存形式,如果每次Api请求都需要验证用户的身份信息,这些信息存放在Redis就非常合适,因为验证用户信息是频率比较高的操作。
MongoDB的场景
非常适合实时的插入,更新和查询,MongoDB的地理坐标查询功能非常适合,例如MongoDB在查找某个矩形内的所有坐标,因此MongDB非常适合LBS应用,但是不适合银行会计系统,不支持事务操作,不适合复杂的SQL语句查询
MySql
可以处理事务,支持复杂的数据查询
8.使用消息队列
当后台发现完成某个小任务需要很长的时间,而且迟到不影响整个任务的完成进度,就吧这些任务放到消息队列中,如 发送邮件,发送短信,推送消息等任务,可以加快App后台 的响应时间。同时消息队列也能吧大量的并发请求变成串行请求,减少服务器的压力
9。分布式服务实现业务逻辑的 复用
随着业务逻辑不端增加,在一个系统中,网站后台,App后台,论坛,用户管理都分别实现了用户登录功能,维护的麻烦,如果每个模块使用不同的语言编写,要处理登录逻辑才能修改。
代码上管理不方便, 数据库连接耗尽,因为每个模块和数据库连接都会使用连接池,但是不释放等,如果重复的模块部署到远程服务,如果输入输出不变修改,就不会有影响。
10简单的搜索技术入门
例如 有三句话 查找里面某个 关键词 改如优化查找速度
使用分词和,倒叙索引的方法,将每行数据中包含多少关键字 建立一个映射表,把每个关键字出现在哪行记录下来,搜索变得很轻松。根据关键字 进行索引(因为内容有点多不具体叙述)