公正评价,这代码什么水平

2022-05-11 09:46:48 +08:00
 Aliberter
var isOperate_BangDing = false;
var isOperate_ShuaXin = false;
if ("bangDing".equalsIgnoreCase(operateName))
{
isOperate_BangDing = true;
}
else if ("shuaXin".equalsIgnoreCase(operateName))
{
isOperate_ShuaXin = true;
}

if (isOperate_BangDing == true
|| isOperate_ShuaXin == true) {...

15614 次点击
所在节点    程序员
151 条回复
v2eb
2022-05-11 19:26:06 +08:00
就是感觉啰嗦,哈哈哈
l00t
2022-05-11 19:27:07 +08:00
随意了点,啰嗦了点,其他问题不大。至少结构是清晰的。就这么几行也看不出别的,不知道需求的情况下有些没法说好不好。
gogogo1203
2022-05-11 19:35:50 +08:00
大家聊了那么多都不知道为什么

operateName =toLowerCase(operateName)

switch(operateName ) {
case "bangding":
....
break;
case "shuaxin":
...
break;
default:
...
}
gogogo1203
2022-05-11 19:45:44 +08:00
我搞不明白了,为什么还会有人说 原代码容易读.
oldmanong
2022-05-11 19:59:04 +08:00
代码写得绕,简单逻辑写复杂,但能保证性能,也故意埋点儿坑。于是乎一有问题都找他,上司看着工作饱和,老板觉得不可替代。你看他 2 ,他看你也 2
documentzhangx66
2022-05-11 20:02:20 +08:00
1.定义变量,并初始化赋值,是有意义的。你们没写过 C/CPP ,没调试过复杂程序,自然不知道为啥要这么干。
var isOperate_BangDing = false;
var isOperate_ShuaXin = false;

2. if else 这里,我不觉得有啥问题,你要改成别的结构也可以,但我觉得 if else 更能体现思路。
if ("bangDing".equalsIgnoreCase(operateName))
{
isOperate_BangDing = true;
}
else if ("shuaXin".equalsIgnoreCase(operateName))
{
isOperate_ShuaXin = true;
}

3.这里就不得不说了,不能这样子做,一条 if 语句,应该尽量少的包含操作,这样才利于 debug 。
if (isOperate_BangDing == true
|| isOperate_ShuaXin == true) {...

我建议这里加一条临时变量,并且为了可读性,把括号也加上:
var tempResult = ( (isOperate_BangDing == true) || (isOperate_ShuaXin == true) );
if( tempResult ) ....
leaves615
2022-05-11 20:22:04 +08:00
@cnrting 精辟
FanError
2022-05-11 20:30:12 +08:00
@anonydmer 可怕,连这种简单的 if 语句都要用这么秀的代码了吗
RiceNoodle
2022-05-11 20:37:22 +08:00
这命名、字符串常量、缩进风格,不及格。
一个变量,用多个 bool 表述 而不是枚举,不及格。

至于用三目运算符还是 if else ,都可以,多几行影响不了啥。
c138Morty
2022-05-11 20:48:34 +08:00
如果是需求不明确,一直在改动,临时来一版需求,然后还通宵加班必须完成,我只能说很好了,业务逻辑清晰,后续需求变动,还能接着调整
Uplay
2022-05-11 20:50:35 +08:00
@documentzhangx66 有些蒙了
Jakarta
2022-05-11 21:07:34 +08:00
@documentzhangx66 认同。有的语言中变量需要初始化,有的语言 if 判断也需要==true 。唯一就是,变量命名上蛇形命名和驼峰命名混用、英文和拼音混用。
yehoshua
2022-05-11 22:28:57 +08:00
整个代码表达的很清晰方便读,也实现了相应的功能,我觉得问题不大。最大问题反而是命名,看着真难受。我自己 C/C++的习惯,变量初始化必须要赋值。其他的,编译器编译时候会优化掉,反正我觉得没啥大毛病
lululau
2022-05-11 22:36:30 +08:00
明明一行代码就可以搞定

if (Stream.of("bangding", "shuaxin").anyMatch(operateName::equalsIgnoreCase)) {

}
haah
2022-05-11 22:39:12 +08:00
一千个观众眼中有一千个哈姆雷特
lcj2class
2022-05-11 22:41:29 +08:00
就问一句,你领导不上这个网站吗?
waterlaw
2022-05-11 23:23:46 +08:00
变量中英文,驼峰和下划线大杂烩
常量魔法数
boolean == true 可简写
techstay
2022-05-11 23:23:47 +08:00
很烂的代码,但是也不算多烂,毕竟比较容易看懂。那种看不懂的代码才是最烂的。
summersun2021
2022-05-12 00:25:21 +08:00
看不懂,觉得很厉害的样子。
Weixiao0725
2022-05-12 00:58:32 +08:00
楼上吐槽拼音的,这叫“文化自信”

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/852125

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX