Skip to content

基本原则

制定完善和遵守开发过程的基本原则,可以减少软件的安全风险,提高代码可读性,可维护性,可扩展性,可复用性,可测试性等。可以帮助开发人员提高开发效率,降低开发成本。以下为个人开发过程总结的一些原则。

最小化原则

  • 原则:最小化原则-强烈推荐
  • 说明:为系统系统的参数更简洁,更方便维护,制定以下推荐条例:
    1. 接口定义,参数需要尽可能的简洁。所有的参数都是必需参数。能后端获取的参数,不要让前端传。
    2. 接口参数定义,尽可能封装对象传输,不要包含不必要的参数。
    3. 自定义 sql 查询,结果集将只包含必要的数据。
    4. 接口参数返回,所有参数都需要是必要且不多余的。

最快收敛原则

  • 原则:最快收敛原则-强烈推荐
  • 说明:为提高系统的性能,偷换数学的概念,结合编码学,创建了最快收敛原因:
    1. 前端(接口定义)聚合数据进行传输。如,批量删除,只应传一组id,调一次接口
    2. 需要调用其他服务模块,如果其他服务批量操作,应预先准备数据,进行一次调用
    3. 对数据库进行多次类似的操作,如果有批量操作接口,应预先准备数据,只对数据库进行一次操作
    4. sql 查询进行数据关联时,应找对 join 条件,使得进行关联的数据以最快的速度减少
    5. 数据返回时,尽可能聚合参数,尽可能减少数据的传输次数
    6. 如果可以做到以上的快速收敛,可以不考虑 java 代码对数据的处理量。原因是:以上的调用过程都要经过 http 请求,或者磁盘的读写。而 java 的运行,会全部在内存中运行。效率不是同一个数量级

互不信任原则

  • 原则:互不信任原则-强烈推荐
  • 说明:在程序运行上下游的整个链路中,每个点都是不能保证绝对可靠的,任何一个点都可能随时发生故障或者不可预知的行为,包括机器网络、服务本身、依赖环境、输入和请求等,因此要处处设防。
    1. 参数严格校验
    2. 权限严格校验
    3. 数据返回严格筛选
    4. 权限最小化
    5. 白名单模式
    6. 健全的敏感操作日志体系
    7. 其他任何可能的倏忽,都提前防备

金钱的计算原则

  • 原则:单位精确到分。BigDecimal.ROUND_HALF_UP 原则-强制执行

前端:

  • 计算后的值,必需使用 toFixed(n) 函数进行处理。
  • 也可以使用:Math.round(parseFloat(price*100 * quantity))/100

后端:

  • 强制使用 BigDecimal,后端:bigDecimal.setScale(2,BigDecimal.ROUND_HALF_UP)

Released under the MIT License.