1、程序的可用性:

程序的设计很多常见的算法都是空间换时间。增加空间复杂度,减少时间复杂度,提高用户体验度。比如参数过滤,使用bloom过滤器,底层需要增加一个非常大的数组进行存储错误的参数值和可能错误的参数值。但是能够过滤大部分的错误参数。

2、错误处理:

程序设计需要对一些考虑到的边界问题进行处理,需要尽可能减少错误率。

例如数据库键重复,数据库底层会爆出键重复的异常,上层虽然有捕捉,但反馈结果是报错。这种设计是不合理的,这种应该在数据的入口就进行排查。程序设计的错误不仅仅是用户级别,也在监控级别。不仅要尽量减少用户反馈的错误,也要尽量减少监控能检测的错误。

真的错误是指程序无法处理的错误,比如系统奔溃。程序的错误一定需要提前考虑并进行处理。

3、技术选型

  • 场景适配

4、方案设计

  • 需求切入点

  • 需求切割