【笔记】《app后台开发运维和架构实践》

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012411480/article/details/79287853

【笔记】《app后台开发运维和架构实践》

参考点:

  • app后台开发人员在设计稿上标注哪个界面调用了哪个api。(仍是根据对象设计api,并非根据页面)
  • 返回数据空值不要null,app端易报错,PHP返回字典及数组均是array.
  • 客户端不同图片尺寸可以在数据库中只保存一份原图:在客户端的请求中带上图片尺寸需求,即使不同版本的需求不同,也可以数据库不需要记录多个图片
  • API的版本升级:V2版本controller继承V1版本controller,只重写(同参同名)方法
  • API要表明应该返回的数据字段和格式等。测试就可以先测接口

  • Redis,MongoDB,MySQL对比

    • Redis数据只存放在内存,读写速度开,适用于读写频率高的数据,但成本高
    • MongoDB:适用于网站数据,实时性网站数据易复制及具有高度伸缩性。适用于LBS。适用于大尺寸底价值的数据。不适用于复杂计算
    • MySQL:事务性的系统(转账),复杂SQL问题
  • 搜索:实现的关键是分词和倒序索引。每行数据的关键字建立映射表,每个关键字出现在哪行记录下来。搜索只需要查映射表。

通信安全

  • 涉及安全性的API要使用https协议
  • 使用token来代替每次都用账号密码输入
  • token加在URL中,明文不安全,处理办法:和请求url一起加密,生成sign来请求。(URL签名只能保证token不泄漏)
  • 防止url被截获后不断请求(百度也有说防止重复请求、按照调用顺序被处理、需要精确获取客户端时间,防止缓存等原因):添加时间戳,进行相隔时间对比。(保证后台与app时间同步,启动时获取后台时间,保存时间差)

除上述之外还要使用AES对称加密,保障安全,更安全的方式有:非对称加密DES,第三方工具加密,使用自定义通信协议传输敏感信息,使用自主研发的空间输入密码,密码不保存在app端。

Nginx

高性能的HTTP和反向代理服务器,占用内存小,并发能力强

  • Promise:异步编程
  • Nodejs是一个让JS运行在服务器端的开发平台

展开阅读全文

没有更多推荐了,返回首页