传说中的谷歌招聘委员会成员之一,从幕后走出来,教你学系统设计!


一亩三分地论坛

 找回密码
 获取更多干活,快来注册
天天打游戏、照样领工资、还办H1B
这份工作你要不要?
把贵司招聘信息放这里
查看: 822|回复: 16
收起左侧

[Leetcode] 问 代码风格检测的必要性

[复制链接] |试试Instant~ |关注本帖
why1992 发表于 2017-6-19 06:25:10 | 显示全部楼层 |阅读模式

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干活,快来注册

x
最近发现lintcode有一个功能是代码风格检测的功能,比如if后面要加空格,每个符号前后都要加空格,if后必须用{}括起来,变量声明一个占一行等等。我很好奇是否有必要这么做?很多时候看leetcode很多答案有都是尽量求简,恨不得把答案写成一行最好。但是我觉得代码不应该是在可读性好和清楚的基础上做简化?

先谢谢各位解答
NikoToretto 发表于 2017-6-19 07:42:20 | 显示全部楼层
过量的简化其实不是好习惯。if后接一行语句不用{}括起来多不安全,感觉就像是ML不戴Condom。

评分

1

查看全部评分

回复 支持 3 反对 0

使用道具 举报

dukecat0613 发表于 2017-6-19 06:50:20 | 显示全部楼层
coding style 我觉得很重要, 给人很profession的感觉. 因为我为某开源项目contribute的时候, coding style如果不对, 别谈code review了,jenkins自动检测都过不了。
回复 支持 反对

使用道具 举报

dukecat0613 发表于 2017-6-19 07:48:35 | 显示全部楼层
NikoToretto 发表于 2017-6-19 07:42
过量的简化其实不是好习惯。if后接一行语句不用{}括起来多不安全,感觉就像是ML不戴Condom。

兄弟 你这个比喻 我服 哈哈哈哈哈哈哈哈哈哈哈

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

NikoToretto 发表于 2017-6-19 07:50:01 | 显示全部楼层
dukecat0613 发表于 2017-6-19 07:48
兄弟 你这个比喻 我服 哈哈哈哈哈哈哈哈哈哈哈

在此谢过了
回复 支持 反对

使用道具 举报

sheepmiemies 发表于 2017-6-19 08:08:31 | 显示全部楼层
lintcode 现在还有这么个功能了,感觉还是不错的啊。上了班感觉大家要是coding style都比较好,读代码就没那么费力了。。。毕竟几乎不可能一个人永远维护一部分代码,极度简洁风格独特不利于合作。除非你不想跟别人分享你的牛逼代码哈哈哈哈。

不过每个变量声明一个一行不是很重要吧,个人觉得显示声明类型和有一个可读的变量名更加重要一些。楼上老兄这个比喻真是服了哈哈哈,人才啊
回复 支持 反对

使用道具 举报

 楼主| why1992 发表于 2017-6-20 01:49:56 | 显示全部楼层
NikoToretto 发表于 2017-6-19 07:42
过量的简化其实不是好习惯。if后接一行语句不用{}括起来多不安全,感觉就像是ML不戴Condom。

666666,学习了

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

 楼主| why1992 发表于 2017-6-20 01:52:29 | 显示全部楼层
sheepmiemies 发表于 2017-6-19 08:08
lintcode 现在还有这么个功能了,感觉还是不错的啊。上了班感觉大家要是coding style都比较好,读代码就没 ...

好的,明白了,还是应该以可读性好作为标准
回复 支持 反对

使用道具 举报

krizalio001 发表于 2017-6-20 02:46:38 | 显示全部楼层
NikoToretto 发表于 2017-6-19 07:42
过量的简化其实不是好习惯。if后接一行语句不用{}括起来多不安全,感觉就像是ML不戴Condom。

别的不服,就服你

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

JustSoSo 发表于 2017-6-20 07:09:33 | 显示全部楼层
NikoToretto 发表于 2017-6-19 07:42
过量的简化其实不是好习惯。if后接一行语句不用{}括起来多不安全,感觉就像是ML不戴Condom。

墙都不服就服你 LOL

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

大马士革的枪声 发表于 2017-6-20 07:45:04 | 显示全部楼层
NikoToretto 发表于 2017-6-19 07:42
过量的简化其实不是好习惯。if后接一行语句不用{}括起来多不安全,感觉就像是ML不戴Condom。

学习了老铁

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

今天不吃早餐 发表于 2017-6-20 08:03:16 | 显示全部楼层
NikoToretto 发表于 2017-6-19 07:42
过量的简化其实不是好习惯。if后接一行语句不用{}括起来多不安全,感觉就像是ML不戴Condom。

道理我都懂 Machine Learning为什么要戴condom?
回复 支持 反对

使用道具 举报

NikoToretto 发表于 2017-6-20 08:05:41 | 显示全部楼层
今天不吃早餐 发表于 2017-6-20 08:03
道理我都懂 Machine Learning为什么要戴condom?

发现一枚装单纯的cs狗
回复 支持 反对

使用道具 举报

又见紫风铃 发表于 2017-6-20 08:20:54 | 显示全部楼层
必要,当年作为公司组里著名的处女座,被大家称作有代码洁癖,然后leader就让我整个了一套检测ci和git hook,风格不对的都commit不了,因为即使交了也会被我review打回去,哈哈哈
回复 支持 反对

使用道具 举报

newgod2500 发表于 2017-6-20 08:52:34 | 显示全部楼层
因为不是Java选手,所以没用过Lintcode.. 所以就只讨论Leetcode上面的。

感觉很多高票答案在coding style上面都过不了关.... 就冲使用brackets这点...虽然只是业余/刷面经,但是加了brackets真的提高了易读性。 其余的例如 nums[i++] > nums[x]这种....我宁愿分两行写。

真正的简洁并不是体现在行数上。
回复 支持 反对

使用道具 举报

FightForTomo 发表于 2017-6-20 08:53:06 | 显示全部楼层
应该挺重要的。面试的时候主要目的是让面试官看懂,并且说服他你的代码work。
简洁的代码是挺好看的。
比如说 a > b? :再嵌套两个。但读起来没有if else 好懂。
回复 支持 反对

使用道具 举报

头像被屏蔽
carlvane110 发表于 2017-8-2 04:23:24 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

本版积分规则

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2017-9-24 14:50

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表