注释、日志与异常处理

注释

version 1.0 2017-08-29

第一,文档字符串 定义:用于向使用者描述类或函数如何使用,对于API很合适 使用规范:首先是要用简短的语句描述这个类的用途、使用场景等介绍信息,其次是要描述所有参数和返回值,如果不是基本类型或者一眼就能看明白的类型,那么需要描述参数或返回值的类型,如果有抛出异常,需要描述异常

第二,注释 定义:用于描述一段代码做什么,或者是算法的细节,需要注意的问题,通常是给自己或者协作者看的 使用规范:对于我自己的代码而言,如果一段代码的实现运用到了我自己觉得特殊的手段,或者我猜想有必要将其记录下来以备自己对于这种手段的学习和记忆,或者函数本身的流程比较复杂,需要利用注释来辅助阅读,那么我就有必要进行注释。也有情况是我在写这段代码的时候遇到了一些坑,需要记录下来以后提醒自己的,那么我也需要使用注释

日志

更新:要打日志的点 请求出入口 任务是否完成 异常情况下某些要解决异常的关键信息

version 1.0 2017-08-29

分为两类

第一类,flask等框架本身提供日志处理方案的情况: 对于这种情况由于框架本身会处理异常并且进行日志记录,这样的话所有的异常都是有日志记录的,所以error级别的日志我们几乎不需要自己定义,因为这些日志的产生意味着处理过程当中抛出了没有被我们截取的异常。对于这部分日志我们仅需要去强化它,两种方式:

  1. flask自带的error_handler,适合一般性的异常
  2. 在处理函数当中捕获异常,并进行处理,适合特殊性的异常

这种手段的好处在于能够相比于自带的日志系统获取更丰富的信息以解决问题。 另外对于error级别以下的日志,我们是需要手动进行管理的,可以采用flask自己的日志处理器进行处理,不过我觉得还是自己定义会比较好,这部分日志主要是debug的时候用的,一般就设置为debug和info级别,记录一些关键位置的信息,着重点放在信息的入口和出口,比如接收到的request是什么,发出的response是什么,debug的时候都可以记录一下,中间处理过程当中如果有必要也可以进行日志的记录

第二类,自己做的应用的情况: 这种情况下可以自己定义日志处理方法,也是分为error级别和debug级别,不过都要自己定义,error级别的日志都做本地化存储,同时可以建立一个结构化的日志处理模式,具体的还需要深入思考(目前这个量级的应用还不需要考虑那么深远)

异常处理

verison 1.0 2017-08-29

还是分为两类,异常处理其实和日志的关联性极大

第一,框架有统一异常处理方案的: 对于有统一处理方案的,比如flask,我们所能做的只有异常处理的强化,如果你想针对某种异常反馈一些关键的信息,那么可以对特定的点进行异常处理的强化。还有一种情况是你不想让异常打断正常工作流程,那么你也需要去捕捉这个异常。 在这个层面上,我渐渐有些理解处理和上抛两种解决方式的作用了

第二,没有统一异常处理方案的: 由于在顶层没有异常处理手段,任何异常都会导致程序的崩溃,这种情况下就要捕捉到所有可能的异常并制定相应的处理方案,这是挺锻炼人的 还有一条,异常处理的重点在于来源不明的东西(IO操作),所以对于这个东西要么try一下,要么判断一下,我选择try一下