锁定老帖子 主题:心理学,再谈好代码
精华帖 (7) :: 良好帖 (3) :: 新手帖 (0) :: 隐藏帖 (3)
|
|
---|---|
作者 | 正文 |
发表时间:2010-04-01
hotjava 写道 冲动后代码:
Java代码 def imgName=XXX?"meigui":"" --------- 这样的代码是垃圾。 讲出道理来,为什么是垃圾?这里不是让你乱说话的。 |
|
返回顶楼 | |
发表时间:2010-04-01
抛出异常的爱 写道 cleanerje 写道 推荐LZ看《code complete》第二版(代码大全)。
详细看完以后,你对好代码的见解会有所改变! CC里没有一句说怎么样写代码才最好 都是自己掂量着办的语气。 代码大全的作者捣糨糊而已。我不喜欢这本书,看了一点就扔了。里面很多东西已经out了。 |
|
返回顶楼 | |
发表时间:2010-04-01
抛出异常的爱 写道 引用 我最讨厌的代码是这样的:最开始我打开一个文件,在阅读的过程中,我发现一个不清楚的方法,于是我按下ctrl并点击鼠标,于是我跳到另外一个文件;接下来,在阅读另外一个方法里,我再次发现了一个不清楚的方法,于是我再次按下ctrl并点击鼠标,哇哈,新的文件打开了....如此反复,终于当我打开最后一个文件时,我发现IDE的文件条里已经密密麻麻的排满了好几排文件,于是,我移动鼠标,右键,弹出一个关闭菜单,我选择了close others,瞬间,哦米拖佛,整个世界清静了,但是,等等,我最初是打算干嘛来着? 所以,请把所有相关联的代码都集中在一个地方,求您了。哦,对了,能不用接口请不要用接口,总会碰到这样的情况,打开好几排的文件,接口文件占了一半,我靠,少几个接口会死啊。对了,这可能是您的一致性心理在作怪,对不起,对不起。 以前看有大师说要分离 要接口 而且看spring代码一个方法也会跟踪出好几排的文件~ 把接口放一起。 在这个目录下建个包放接口的所有的实现。。。。 配合起来也好。弄 一般我看到的都是建立一个impl的包,所有实现都放在里面。 |
|
返回顶楼 | |
发表时间:2010-04-01
sg552 写道 引用 我最讨厌的代码是这样的:最开始我打开一个文件,在阅读的过程中,我发现一个不清楚的方法,于是我按下ctrl并点击鼠标,于是我跳到另外一个文件;接下来,在阅读另外一个方法里,我再次发现了一个不清楚的方法,于是我再次按下ctrl并点击鼠标,哇哈,新的文件打开了....如此反复,终于当我打开最后一个文件时,我发现IDE的文件条里已经密密麻麻的排满了好几排文件,于是,我移动鼠标,右键,弹出一个关闭菜单,我选择了close others,瞬间,哦米拖佛,整个世界清静了,但是,等等,我最初是打算干嘛来着? 所以,请把所有相关联的代码都集中在一个地方,求您了。哦,对了,能不用接口请不要用接口,总会碰到这样的情况,打开好几排的文件,接口文件占了一半,我靠,少几个接口会死啊。对了,这可能是您的一致性心理在作怪,对不起,对不起。 以前看有大师说要分离 要接口而且看spring代码一个方法也会跟踪出好几排的文件~ 我觉得这个问题的根源是 用户对IDE 不熟悉。 在Eclipse中, F3 查看, F3查看, F3查看, alt + left 后退, alt + left 后退, alt + left 后退。不用碰鼠标,不过几秒,如果你还想不起来干啥, 运行一下单元测试,看看哪里FAILED了,就干哪里。 Pragmatic Programmer的作者,建议大家以每天学会一点目前所用IDE的新功能为荣。 自己当初对于Eclipse 的快捷键的基础,让我现在用Aptana 得心应手。。。 *_* 你的付出绝对不会让你失望的。 大师说的没错。withouth EJB 提倡写小方法。refactoring 则是说事不过三,当你第三次见到某段代码应该 extract method, 那么就果断 extract 之。 当今几乎有名的开源程序,几乎都是小方法组成的。 不赞成缩写。如果这个文章确实被徐昊点评过,那么我很好奇,他对你缩写的观点如何看,以及 小方法所处的位置。作为一个TW控,我认为他们的项目中是禁止用缩写的。 对于LZ的其他观点甚是赞同 :-) 我以前也是TW控,不过现在是TW黑 |
|
返回顶楼 | |
发表时间:2010-04-01
最后修改:2010-04-01
黑暗浪子 写道 抛出异常的爱 写道 cleanerje 写道 推荐LZ看《code complete》第二版(代码大全)。
详细看完以后,你对好代码的见解会有所改变! CC里没有一句说怎么样写代码才最好 都是自己掂量着办的语气。 代码大全的作者捣糨糊而已。我不喜欢这本书,看了一点就扔了。里面很多东西已经out了。 可以开个贴子讨论一下哪些已经过时。 我最喜欢聊这些东西了 当然CC糨糊goto那章的例子太特别了。。。。 几乎不可能见的到代码需要这么写。 但的确是用了goto会更好看一些。 其它的地方都是给你两方案让你自己想怎么写好看的。 |
|
返回顶楼 | |
发表时间:2010-04-02
楼主认为should_XXX_when_XXX(),这个以should开头的方法名更高明?难道楼主不知道一般好点的公司都不提倡用三元表达式?
|
|
返回顶楼 | |
发表时间:2010-04-02
andyu2008 写道 楼主认为should_XXX_when_XXX(),这个以should开头的方法名更高明?难道楼主不知道一般好点的公司都不提倡用三元表达式?
楼主的想法应该是这样: 在改进者眼里没有最佳。 只有最差。。。。。 把最差改的好看一些。 三不三元没关系。 好一点是一点的态度来重构代码。。。。。 |
|
返回顶楼 | |
发表时间:2010-04-02
抛出异常的爱 写道 andyu2008 写道 楼主认为should_XXX_when_XXX(),这个以should开头的方法名更高明?难道楼主不知道一般好点的公司都不提倡用三元表达式?
楼主的想法应该是这样: 在改进者眼里没有最佳。 只有最差。。。。。 把最差改的好看一些。 三不三元没关系。 好一点是一点的态度来重构代码。。。。。 有谁能告诉我好一点公司不用三元表达式的原因? |
|
返回顶楼 | |
发表时间:2010-04-02
黑暗浪子 写道 hotjava 写道 冲动后代码:
Java代码 def imgName=XXX?"meigui":"" --------- 这样的代码是垃圾。 讲出道理来,为什么是垃圾?这里不是让你乱说话的。 因为看这行总要想true和false分别对应哪个来着,不直观,打断思路,每次看到这个表达式我都会改成if else表达式。 另外,我也不用switch表达式,因为记不住switch表达式语法和switch表达式潜规则。 我只用if, else, if else,世界从此就清净了。 |
|
返回顶楼 | |
发表时间:2010-04-02
最后修改:2010-04-03
黑暗浪子 写道 抛出异常的爱 写道 andyu2008 写道 楼主认为should_XXX_when_XXX(),这个以should开头的方法名更高明?难道楼主不知道一般好点的公司都不提倡用三元表达式?
楼主的想法应该是这样: 在改进者眼里没有最佳。 只有最差。。。。。 把最差改的好看一些。 三不三元没关系。 好一点是一点的态度来重构代码。。。。。 有谁能告诉我好一点公司不用三元表达式的原因? 我们公司。。。。 曾见有个大哥写过: public Object kk(){ return zz()?tt()?aa():bb():kk(); } |
|
返回顶楼 | |