y*****3 发帖数: 451 | 1 最近看leetcode和很多牛人的blog,发现都很追求code写的短,写的紧凑,比如下边这
条:
int p = (i < m) ? a.charAt(m - 1 - i) - '0' : 0;
可是,有实际经验的码工们都知道,code的readibility非常重要,没有必要用太多的
syntax sugar来压缩代码。比如上边这条如果改写成下边这样,可读性大大提高,但是
performance其实是一样的。
int p = 0; //always initiate a member field
if (i < m)
{
p = a.charAt(m - 1 - i) - '0';
}
else
{
p = 0;
}
我比较迷惑,在面试的时候,那些面试官们难道不懂在实际工作中code的readibility
很重要吗?为什么大家都那么追求code写的短和紧凑?面试的时候到底该怎么写?请大
牛们指点迷津,谢谢! |
z*********8 发帖数: 2070 | |
s***e 发帖数: 403 | 3 yukichan
可读性明显是前一个高啊,只要看一行信息量就足够了,不用跳着看。 |
l********n 发帖数: 1038 | |
d**********u 发帖数: 3371 | 5 炫技而已
工作里面大部分时间都在写文档 你说呢
【在 y*****3 的大作中提到】 : 最近看leetcode和很多牛人的blog,发现都很追求code写的短,写的紧凑,比如下边这 : 条: : int p = (i < m) ? a.charAt(m - 1 - i) - '0' : 0; : 可是,有实际经验的码工们都知道,code的readibility非常重要,没有必要用太多的 : syntax sugar来压缩代码。比如上边这条如果改写成下边这样,可读性大大提高,但是 : performance其实是一样的。 : int p = 0; //always initiate a member field : if (i < m) : { : p = a.charAt(m - 1 - i) - '0';
|
y*****3 发帖数: 451 | 6 单拿出一行的话,这两种写法区别不大。但如果1000多行code里有100多条都象第一种
那样写,可读性会很差。
【在 s***e 的大作中提到】 : yukichan : 可读性明显是前一个高啊,只要看一行信息量就足够了,不用跳着看。
|
y*****3 发帖数: 451 | 7 我的问题就是,面试的时候该不该用太多syntax sugar呢?实际工作中,有一些syntax
sugar在很多公司的coding convention里都要求禁止使用的,过于炫技反倒暴露了自
己没啥写code的经验,面试的时候,好的code的标准到底是什么??
【在 d**********u 的大作中提到】 : 炫技而已 : 工作里面大部分时间都在写文档 你说呢
|
f********4 发帖数: 988 | 8 肯定写第一种。你能写第一种肯定能写第二种,反过来不一定了就。如果公司有要求第
一种很容易就改成第二种了啊
[发表自未名空间手机版 - m.mitbbs.com] |
d******k 发帖数: 4295 | 9 抄一句别人说的
If the condition is short and the true/false parts are short then a ternary
operator is fine, but anything longer tends to be better in an if/else
statement
【在 y*****3 的大作中提到】 : 最近看leetcode和很多牛人的blog,发现都很追求code写的短,写的紧凑,比如下边这 : 条: : int p = (i < m) ? a.charAt(m - 1 - i) - '0' : 0; : 可是,有实际经验的码工们都知道,code的readibility非常重要,没有必要用太多的 : syntax sugar来压缩代码。比如上边这条如果改写成下边这样,可读性大大提高,但是 : performance其实是一样的。 : int p = 0; //always initiate a member field : if (i < m) : { : p = a.charAt(m - 1 - i) - '0';
|
r*******n 发帖数: 3020 | 10 同意可读性是首要的,不要追求代码短。
尤其面试官可能不用c,c++,需要跟面试官没必要的过多解释。
【在 y*****3 的大作中提到】 : 最近看leetcode和很多牛人的blog,发现都很追求code写的短,写的紧凑,比如下边这 : 条: : int p = (i < m) ? a.charAt(m - 1 - i) - '0' : 0; : 可是,有实际经验的码工们都知道,code的readibility非常重要,没有必要用太多的 : syntax sugar来压缩代码。比如上边这条如果改写成下边这样,可读性大大提高,但是 : performance其实是一样的。 : int p = 0; //always initiate a member field : if (i < m) : { : p = a.charAt(m - 1 - i) - '0';
|
|
|
y*****3 发帖数: 451 | 11 这不是会不会写的问题,这是看一个人良好的coding习惯的问题,码工们都读过<
complete code>那本书吧?
【在 f********4 的大作中提到】 : 肯定写第一种。你能写第一种肯定能写第二种,反过来不一定了就。如果公司有要求第 : 一种很容易就改成第二种了啊 : [发表自未名空间手机版 - m.mitbbs.com]
|
L*******r 发帖数: 119 | 12 how about the following?
int index = m-1-i;
int p = index>=0 ? a.charAt(index)-'0' : 0;
【在 y*****3 的大作中提到】 : 最近看leetcode和很多牛人的blog,发现都很追求code写的短,写的紧凑,比如下边这 : 条: : int p = (i < m) ? a.charAt(m - 1 - i) - '0' : 0; : 可是,有实际经验的码工们都知道,code的readibility非常重要,没有必要用太多的 : syntax sugar来压缩代码。比如上边这条如果改写成下边这样,可读性大大提高,但是 : performance其实是一样的。 : int p = 0; //always initiate a member field : if (i < m) : { : p = a.charAt(m - 1 - i) - '0';
|
d*******h 发帖数: 642 | 13 如果是php的话,ternary性能不如if else |
s***e 发帖数: 403 | 14 这样的code看多了你就觉得很习惯了。
【在 y*****3 的大作中提到】 : 单拿出一行的话,这两种写法区别不大。但如果1000多行code里有100多条都象第一种 : 那样写,可读性会很差。
|
d**********u 发帖数: 3371 | 15 感觉不管什么code 没有文档 都读不懂 有文档都很好读
【在 s***e 的大作中提到】 : 这样的code看多了你就觉得很习惯了。
|
s***e 发帖数: 403 | 16 目标是the code is the documentation.
【在 d**********u 的大作中提到】 : 感觉不管什么code 没有文档 都读不懂 有文档都很好读
|
g*********e 发帖数: 14401 | |