java请求行拆分代码_浅谈代码编写的15行原则与代码的方法拆分

一、什么是十五行原则

代码编写的15行原则是指开发人员在对程序经新开发的时候要尽量保持程序内部方法(函数)的原子性,尽量做到每个个方法(函数)中的代码不超过十五行。

二、为什么要遵循十五行原则

作为一个开发人员,日常我们在对程序进行编码的时候,我们所写的代码并不只是要让机器读的懂,更重要的是我们写的代码可以让人也看得懂。这样当我们要进行现有的代码进行修改和维护的时候,我们的代码的可读性更好。有研究表明,当我们方法(函数)中代码超过10行时,方法(函数)的复杂度就开始大幅度攀升,当我们的方法(函数)中代码达到20行时,其复杂度已经是14行时的两倍,给代码的阅读者的阅读造成非常大的压力,故我们在进行程序的编码时,需要在保证方法(函数)的原子性的前提下,尽量将每个方法里的代码行数控制在15行以下。(代码行不包括注释和但有一个花括号的行)

三、如何做到编写代码的十五行原则

要做到编写代码的15行原则,我们就要在实现方法(函数)的时候采用自顶向下的编程思想进行编码。什么是自顶向下的编程思想呢?我们在进行程序功能的实现的时候,往往是先对最高层次的问题进行定义、设计、编码、和测试,而将其中未解决的问题作为一个子任务放在下一层次中去解决。这样逐层、逐个的定义、设计、编码、和测试,直到所有层次上的问题都由使用程序来解决,这是一种精益求精的自顶向下的编程思想。

可是如何使我们现有代码符合十五行原则呢?在现有的代码中可能设计时并没有采取到自顶向下的程序设计思想,其中的方法可能写的很长,我们怎么拆分这些长方法时期也符合15行原则呢?

我们主要有两个拆分思路:

①看看是否能修改功能实现逻辑使我们的代码结构看起来更清晰。

②使用自顶向下的思维模式,在不改变代码逻辑的条件下,对代码任务进行分解。

例:

第一种情况:假设我们现在需要去除一个List中的重复元素,我们可以使用如下的两种逻辑去实现(Java代码)

//使用Set的特性将List中的重复元素删除

public List deleteReapeatItemFromListBySet(List list){

Set listSet = new HashSet(list);

list.clear();

list.addAll(listSet);

return list

}

//使用循环将List中的重复元素删除

public List deleteReapeatItemFromListByLooper(List list){

for(int i = 0 ; i 

for(int j = list.size()-1 ; j > i ; j--){

if(list.get(j).equals(list.get(i))){

List.remove(j);

}

}

}

return list;

}

上面两种方法所实现的功能一样,都是将List中的重复元素去除,但是第一个方法比第二个方法看起来明显简洁许多,我们在修改我们现有的代码也是一样,在保证复杂度的前提下,可能会存在其他的更简单的逻辑去实现我们的功能,我们可以通过此种方法来优化我们的代码,从而使我们的代码的可读性更好。

第二种情况:假设我们现在需要实现将一个数组先排序再将其全部打印出来,我们可以通过下面的代码进行实现。

public void sortAndPrint(int[] arr){

for(int i = 0 ; i 

for(int j = i + 1 ; j 

if(a[j] > a[i]){

int temp = a[i];

a[i] = a[j];

a[j] = temp;

}

}

}

for(int i = 0 ; i 

System.out.println(arr[i]);

}

}

现在我们分析该方法该方法中由两个子任务组成,对数组排序和打印数组,而这两个子任务并不相互影响,故可以将器拆分出两个子方法,如下:

private int[] sort(int[] arr){

for(int i = 0 ; i 

for(int j = i + 1 ; j 

if(a[j] > a[i]){

int temp = a[i];

a[i] = a[j];

a[j] = temp;

}

}

}

}

private void printIntArray(int[] arr){

for(int i = 0 ; i 

System.out.println(arr[i]);

}

}

然后我们再在sortAndPrint(int[] arr)中调用这两个子方法

public void sortAndPrint(int[] arr){

arr = sort(arr);

printintArray(arr);

}

这样拆分过后sortAndPrint(int[] arr)方法中的结构明显比原来清楚了很多。

四、总结

作为一个优秀的开发人员,我们仅仅掌握程序开发所需使用的语言是不够的,更重要的是我们还需要掌握开发时的编程思想、编程规范。我们所编写的代码不仅仅是需要机器能读,更重要的是也方便于给人阅读。而学习好代码编写的15行规范,仅仅是成为一个优秀的开发人员的第一步。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值