zoukankan      html  css  js  c++  java
  • 代码整洁之道 04

    第七章对错误处理(异常)的讲解非常精彩的,整洁的代码中对错误的处理应当是被分离的关注点(不要跟正常的业务逻辑混杂在一起),而面向对象中的异常机制就是一种在不打乱原有业务逻辑的前提下处理掉程序在运行时发生的不正常状况的手段。这章有两个观点我特别欣赏,一是"Use Unchecked Exceptions"(非受检异常允许你在适当的地方处理异常,而适当的地方就是异常影响代码执行逻辑的地方,不管做哪种类型的应用,都应该尽可能向用户隐藏异常的发生,除非发生了不可挽救的状况,这才是符合最小惊讶原则的设计);二是"Don’t Return Null"(如果一个方法在出状况的时候返回null,那么调用者都要通过频繁的检查返回值来判定是否出错,一旦忘了这件事情就有可能出错,既然null是一种异常状况,那么用抛出异常的方式来代替返回null明显是更好的做法)。

    第八章的内容对实际开发有重要的指导意义,因为我们的项目中不可避免的要使用第三方工具,因此我们需要将这些东西整洁的纳入到我们的系统中,这时就需要考虑系统边界的问题。有的时候我们会千辛万苦的发现系统中的一些bug是来源于第三方工具的,当然我们基本上没有时间去重头学习和研究第三方工具或者自己写代码来实现第三方工具的功能,但是我们至少应该先对第三方工具进行测试。我在以前的项目中,即使用Apache提供的那些著名的第三方工具,我的做法也是先写测试代码对这些工具的可用性和有效性进行证实,当然有的时候可能是过于谨慎了,但这种习惯和做法本身是很好的。在这种场景下,适配器模式是非常好的设计,它不仅能将不兼容的接口改写成兼容的接口,还能够对通过对第三方工具重新封装来避免边界的变化对系统的影响。

  • 相关阅读:
    [JavaScript] 根据字符串宽度截取字符串
    [JavaScript] 时间戳格式化为yyyy-MM-dd日期
    [JavaScript] 获取昨日前天的日期
    [As3.0] 获取本机信息
    [CSS3] 几种分割线实现方法
    [JS] js 判断用户是否在浏览当前页面
    [JS] 理解jquery的$.extend()、$.fn和$.fn.extend()
    [JS] 屏蔽右键
    [JS] jq绑定事件的参数传递
    [CSS3] 各种角度的三角形绘制
  • 原文地址:https://www.cnblogs.com/cxy0210/p/14938955.html
Copyright © 2011-2022 走看看