编程规范:长函数的思考

        在工作,我们应该都不想看到非常的长函数。对于一个运行5年左右的项目,极有可能出现这种情况。由于长函数的长、if/else嵌套,导致代码的可读性非常差,这对于项目的维护和开发带来了极大的困难。所以我们应该避免写长函数,并且有改造方法。

1.长函数的定义

        针对一个函数,多长才算是长函数呢?这个每个人都有不同的定义。我认为,不能仅仅从代码的多少去判断,应该从另一个角度(是否分类处理数据)来思考这个事情。如果是平铺直叙,一点点地加代码,这必会成为长函数。有人说超过20行就算是长函数,有人的标准更高。我认为一屏能够看下,基本都是可以接受的。

2.如何写程序,才能避免或改造长函数?

1)分类处理数据

   public void  TestLongMethod(Map map){
       // 1.校验数据
       checkData(map);
       // 2.处理数据
       handleData(map);
       // 3.发送mq消息
       sendMq(map);
   }

2)继承或策略模式处理数据

        在分类处理数据时,如果出现多种情况,每种情况都有这样一套分类处理的流程,此时可以考虑继承或者策略模式处理数据。

        例如:一个活动,分为很多类型。每种类型的数据都是这样一套数据。

3)避免多重嵌套,应该规定最多2级

        如下代码,一个方法内出现过多的if语句,应该根据具体业务,避免过多的if嵌套。

编程规范:长函数的思考_第1张图片

4)避免方法过长,有意识地去优化代码

如下代码,一个方法过长,应该分类处理数据,可以参考步骤1。(生产代码,所以做了处理)

编程规范:长函数的思考_第2张图片

3.自律

        一个追求优秀的程序员对自己的代码风格应该有严格的自律,一定不会写出长函数。

你可能感兴趣的:(编程约定/规范,长函数,编程规范,如何避免长函数)