美文网首页
面向错误编程

面向错误编程

作者: blossom_绽放 | 来源:发表于2018-07-16 11:07 被阅读96次

本篇文章来自老板的一次分享,分享给大家

我们在实现一个新功能时,往往是考虑功能的难点,只要能攻克难点,就认为完成了,而真正的开发必定要包括最重要的错误设计部分,也就是一个App可靠的关键之处。

这里提出一个“面向错误设计”的概念,就是在设计之前,考虑清楚各种出错的地方(无论是格式错误,网络错误,返回值错误,用户操作打断,App崩溃),不用等到测试中发现大量遗漏的分支而造成后期混乱,如果没有想清楚错误分支,就不要着急实现代码。

比如设计“通讯录上传功能”:

IF (正确) 流程:顺利地获得系统授权,在良好的Wi-Fi网络下,瞬间把数据提交到服务器,返回200状态码,数据呈现给用户。

但实际上可能面临的错误有:

没有授权
授权后又取消了授权
上传过程中超时失败
上传过程中返回上一页
后台在自动重试时,用户手工又触发了一次上传
二次点击触发两次或多次上传
通讯录异常庞大可能导致的请求问题
手机更换了主人和整个通讯录
新增和修改了联系人
通讯录权限,是针对用户的,不代表所有登录账户都上传通讯录,否则家人朋友在自己手机上登录,就获得了全部通讯录推荐
应允许用户在APP中撤销通讯录,服务器清理数据不再推荐一度和二度关系
数据格式问题,空的名称,错误的电话格式
甚至上传过程中注销账户
问题可能会比较多,实际上良好的设计模式可以一并解决多个问题,但这已经不是代码编写能力的范畴,而是理解使用场景,使用想象力开发的过程,这也是我认为的进阶过程。

面向错误设计是一个设计思路,是为目的服务的一种手段,究其根本是弄清楚我们开发的目的和出发点,目的会决定我们的行为。

当我们的目的是完成功能时,会很希望用户的使用场景是完美的(网络良好,不乱点击,不乱返回,不Crash),好让我们尽快完成这个功能,任何影响完成功能的出错情况,容易被主观地忽视,不愿去想。

而面向错误设计,要求我们将目的从“完成功能”转变为“为用户提供可靠的服务”,后者才是我们追求的东西,而妥当考虑各种错误返回值和 ELSE 分支,正是向用户提供可靠服务的手段。

相关文章

  • 面向错误编程

    本篇文章来自老板的一次分享,分享给大家 我们在实现一个新功能时,往往是考虑功能的难点,只要能攻克难点,就认为完成了...

  • 漫谈编程模型

    简言之,不论是面向对象编程还是函数式编程,如果你走了极端,那都是错误的。面向对象编程的极端是一切都是对象(纯面向对...

  • 面向指针编程(一)

    面向对象编程,面向设计模式编程(亦即设计模式),面向接口编程,面向模板编程(亦即泛型编程),面向函数编程(亦即函数...

  • 全局异常处理

    面向切面编程 异常处理分为: 已知错误:前端请求数据类型校验错误等未知错误:代码语法错误、环境报错等 已知错误:在...

  • 理论三:面向对象相比面向过程有哪些优势?面向过程真的过时了吗?

    什么是面向过程编程与面向过程编程语言?面向对象编程相比面向过程编程有哪些优势?为什么说面向对象编程语言比面向过程编...

  • 探秘Spring AOP

    编程范式概览 主要有面向对象编程、面向过程编程、函数式编程、事件驱动编程、面向切面编程。面向过程编程是以过程为中心...

  • Swift和OC的区别

    一、编程范式 Swift可以面向协议编程、面向函数编程、面向对象编程。 OC主要是面向对象编程。 二、类型安全 S...

  • ES6中的类的总结

    js常用的编程模式有面向过程编程和面向对象编程(1)面向过程编程“面向过程”(Procedure Oriented...

  • python面向对象1

    编程思想 编程思想:面向过程编程(穷人思想)、函数式编程、面向对象编程(富豪) 面向过程编程: 算法和逻辑 函数式...

  • AOP(一)---什么是AOP

    要理解AOP我们先要理解其他一些概念: 面向过程编程 面向对象编程 面向切面编程 面向过程编程OPP 面向过程的编...

网友评论

      本文标题:面向错误编程

      本文链接:https://www.haomeiwen.com/subject/cewvpftx.html