百科问答小站 logo
百科问答小站 font logo



项目组里的代码审查员要我把代码写的很啰嗦,怎么办? 第1页

  

user avatar   yao-dong-27 网友的相关建议: 
      

我有时也会写成这样

       boolean flag = getMboValue().isNull(); if (flag) {     this.getMboValue("vendor").setReadOnly(false); } else {     this.getMboValue("vendor").setReadOnly(true); }     

原因是这样方便下断点调试,比如 flag是true为正常,false是异常情况需要调试。写成一行断点就不好下了。

我也不反对这种情况直接写成一行,只要命名合理逻辑清晰可读就好

我反对以下这样一行的写法:

       foo.setDisable( ! (bar.isEnable()  && this.getValue().isNull()) );     

肯定、否定、并且、取反来回兜几个圈后我脑子就冒烟了,智商欠费。


user avatar   Ivony 网友的相关建议: 
      

首先,很显然的代码审查员的建议写法除了增加代码量之外,在可读性方面并没有太多的提升,甚至因为代码量的提升带来更多的心智负担和出错的概率。

例如因为某个奇怪的失误把代码写成了这样:

       boolean flag = getMboValue().isNull(); if (flag) { this.getMboValue("vendor").setReadOnly(false); } else { this.getMboValue("vendor").setReadOnly(false); }     

所以,原本一个可能出现问题的地方现在变成了四五个。


除此之外,flag的命名不够meaning,而我也倾向于移除这个变量,毕竟这个表达式并不长。但与上面不同的是,我个人会建议完全弃用 ! 运算符,原因是这个运算符实在是太不够明显了。所以我个人建议的写法是:

       this.getMboValue("vendor").setReadOnly( getMboValue().isNotNull() );     

增加一个isNotNull方法来使得语义更为清晰。

或者:

       this.getMboValue("vendor").setReadOnly( getMboValue().hasValue() );     

在无法增加方法的情况下,我也会建议用 == false来代替 ! ,因为在字面上这样会更难以被忽略:

       this.getMboValue("vendor").setReadOnly( getMboValue().isNull() == false );     

比较一下:

       this.getMboValue("vendor").setReadOnly( !getMboValue().isNull() );     

很显然上面的写法在提醒看的人,嘿,哥们儿注意点,我这里是反的。




当然,抛开代码审查员的问题,作为一个一无所知的程序员来重新审视这段代码,我会发现Mbo这个缩写其实会非常的令人费解,而且getMboValue这个方法实在是出现了太多次,另外为代码中一个有this,另一个没有this,让这段逻辑更加离奇。


最后,童鞋你写大括号的习惯我很欣赏,趁着你们的代码审查员还没有让你把所有的大括号都变成半展开之前,赶紧换工作投入大C#的怀抱吧……到时候同样的代码可能只需要写成这样就可以了:

mbo["vendor"].ReadOnly = mbo["vendor"] != null;


user avatar   qin.chao 网友的相关建议: 
      

景甜:抱歉,是我选的他。




  

相关话题

  Java很垃圾吗? 
  请问大佬们能2000行代码0 error 0 warn 0 bug一遍过吗?如果能过,是什么水平? 
  为什么 .NET 平台在技术上远强过 Java,而多数大公司却仍采用后者? 
  Java只有中国人在搞了吗? 
  Spring是否代表着目前Java技术的顶峰,未来的Java将如何发展? 
  低代码开发前景如何,大家都真的看好低代码开发吗? 
  C++ 和Java 的 double 类型都是 8 字节,为何 C++ 存不下 3.1415926 ? 
  如何写好业务代码? 
  JAVA 学到什么水平就可以转战 Android 了? 
  c#中没有友元类那么这种设计是否不太合理,如何修改才能得到更好的方案? 

前一个讨论
维基百科比百度百科差在哪里?
下一个讨论
女性健身的常见误区和谣言有哪些?





© 2024-12-18 - tinynew.org. All Rights Reserved.
© 2024-12-18 - tinynew.org. 保留所有权利