avatar
关于code的可读性# JobHunting - 待字闺中
y*3
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写的短和紧凑?面试的时候到底该怎么写?请大
牛们指点迷津,谢谢!
avatar
z*8
2
估计是因为白板面积有限吧。。。
avatar
s*e
3
yukichan
可读性明显是前一个高啊,只要看一行信息量就足够了,不用跳着看。
avatar
l*n
4
c语言容易写紧凑的代码
avatar
d*u
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';

avatar
y*3
6
单拿出一行的话,这两种写法区别不大。但如果1000多行code里有100多条都象第一种
那样写,可读性会很差。

【在 s***e 的大作中提到】
: yukichan
: 可读性明显是前一个高啊,只要看一行信息量就足够了,不用跳着看。

avatar
y*3
7
我的问题就是,面试的时候该不该用太多syntax sugar呢?实际工作中,有一些syntax
sugar在很多公司的coding convention里都要求禁止使用的,过于炫技反倒暴露了自
己没啥写code的经验,面试的时候,好的code的标准到底是什么??

【在 d**********u 的大作中提到】
: 炫技而已
: 工作里面大部分时间都在写文档 你说呢

avatar
f*4
8
肯定写第一种。你能写第一种肯定能写第二种,反过来不一定了就。如果公司有要求第
一种很容易就改成第二种了啊
[发表自未名空间手机版 - m.mitbbs.com]
avatar
d*k
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';

avatar
r*n
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';

avatar
y*3
11
这不是会不会写的问题,这是看一个人良好的coding习惯的问题,码工们都读过<
complete code>那本书吧?

【在 f********4 的大作中提到】
: 肯定写第一种。你能写第一种肯定能写第二种,反过来不一定了就。如果公司有要求第
: 一种很容易就改成第二种了啊
: [发表自未名空间手机版 - m.mitbbs.com]

avatar
L*r
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';

avatar
d*h
13
如果是php的话,ternary性能不如if else
avatar
s*e
14
这样的code看多了你就觉得很习惯了。

【在 y*****3 的大作中提到】
: 单拿出一行的话,这两种写法区别不大。但如果1000多行code里有100多条都象第一种
: 那样写,可读性会很差。

avatar
d*u
15
感觉不管什么code 没有文档 都读不懂 有文档都很好读

【在 s***e 的大作中提到】
: 这样的code看多了你就觉得很习惯了。
avatar
s*e
16
目标是the code is the documentation.

【在 d**********u 的大作中提到】
: 感觉不管什么code 没有文档 都读不懂 有文档都很好读
avatar
g*e
17
第一种好 第二种太多行了 函数一长的跪了
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。