博客摘录「 App架构总结」2023年6月7日

API重点一:安全机制

        安全机制是很重要的点,因为安全机制在一开始不考虑进去,程序也能正常展现,功能也能正常,大家都会忽视掉,但当出现问题时,都是严重问题,而且解决的话要从底层维护。安全机制可以通过两个方面来进行保障,一是API的安全校验机制,二是数据传输安全性。关于安全校验机制,我觉得签名的方式是可以解决的,就是给各个端分别配一个AppKey和AppSecet,在API调用的时候,将AppSecet作为参数传递,并且与其他参数一起根据签名算法生成签名字符串,在服务端收到请求时,进行同样算法签名,核对是否一致。关于数据传输安全,作为APP开发,我认为HTTPS协议很好进行了保障。HTTPS因为加入了SSL安全协议。

 API重点二:接口协议标准化

API重点三:接口版本控制

APP架构设计:

        因为APP核心是数据,那么根据App对数据处理简单角色划分可以分为:数据管理、数据加工、数据展示。也就是我们通常的三层架构:数据层、业务层、展示层。

        数据层就是数据管理者,主要任务就是封装API,并将数据结果提交给上层,中间再加个数据缓存。整个过程主要流程包含:

       1.业务层向数据层请求数据;

       2.数据层检查缓存中是否有所需数据;

       3.有缓存数据,返回缓存数据;

       4.没有缓存数据,则通过网络API获取数据。

        API调用时,还需要有网络状态判断,不同网络状态不同处理。比如WIFI及移动网络,考虑用户体验问题。

        而数据怎么交付给业务层呢?那就需要遵循面向接口编程原则,开发数据接口就可以了。需要注意的是,接口参数一般分为系统参数和业务参数。

        业务层就是数据加工者。主要是从数据层获取数据,经过业务逻辑处理转化成展示层需要的数据。业务层处于数据层和展示层之间,起到承上启下的作用。也因此,开发时,很容易将业务层沦为数据总中转站。

        比如一个注册页面,需要手机号、短息验证码、密码、确认密码,当然,最简单操作就是直接将这些参数调用数据层的注册接口。但这时候就有个问题,接口是没有确认密码的,那是注册前先判断密码和确认密码是否一致,不一致给用户提示,一致再继续注册。但又有一个问题,注册请求一段时间后,返回结果,说手机号多一位或手机号少一位,或者格式等等不对,那对于用户来说,格式有问题还要等一段时间,体验不好,对于服务端来说,各种非法请求让服务器压力更大,这就不合理了。再一个问题,当用户注册成功后,肯定是想要登录啊,注册接口一般是不会返回用户token的,难道再让用户登录一次么,这样体验就不好了,正确应该是程序自动为用户进行一次登录,登录失败才会让用户手动登录。

        这里说的参数格式验证、注册后自动登录都是属于业务层逻辑,都应该归属于业务层。

        业务层给展示层数据也是通过接口,但需要注意的是,给展示层应该采用异步线程回调返回。取数据是耗时工作,异步才能保障UI主线程流畅不被阻塞。

        展示层就是数据展示者。主要关心数据展示就可以了。数据展示直接关系到用户体验,这时候需要更为多的考虑了。

        页面布局、屏幕适配、图片资源、文本资源、颜色资源等等。我觉得展示层很重要的几点原则有:

       1.规范性:开发规范一开始就制定好,命名规范、代码规范、注释规范,并且严格执行

       2.单一性:布局就单纯布局,内容就单纯内容,每个方法每个类,只做一件事

       3.简洁性:代码和结构简洁,多了就拆分


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值