把代码写得简单易懂到底好不好?

2014-11-25 10:58:39 +08:00
 nomemo
最近我喜欢把那些逻辑复杂的大块难懂的代码不再称作垃圾,倒喜欢叫做方法原型或者脑中原始方法的直接映射。也正是因为这样,开始整理那些方法原型,进行拆分与细化。复杂逻辑写得越来越简单易懂。

虽然同事也会说代码漂亮,但就越来越感觉自己容易被人取代

正好,上周有个同事因为家里有事回家一周,他手上的工作就完全停止,因为他大量的代码与功能实现都还是代码原型。

我上周工作了七天,昨天休息了一天,结果别人拿着我的代码就能改。

略微有些想法,跟V友分享一下
16386 次点击
所在节点    程序员
122 条回复
adoyle
2014-11-26 10:31:28 +08:00
Loop680
2014-11-26 10:39:38 +08:00
@PrideChung 任天堂的产品,从GBA到GBASP,再到最后的GBM,东西就是那么个东西,只是体型上越来越小,这不算是客观条件做不到吧,只是不愿意一次发布出最终版而已啊。
xjtlujoe
2014-11-26 10:43:53 +08:00
大道至简
xdeng
2014-11-26 10:48:07 +08:00
这是什么心态=。=
PrideChung
2014-11-26 11:59:26 +08:00
@Loop680 你不想想这么多代产品中间隔了几年,摩尔定律起了多大作用。正常的产品迭代跟主动压箱底不是一个概念。
shoumu
2014-11-26 12:08:18 +08:00
你的核心竞争力不仅仅是你的代码
kaizixyz
2014-11-26 12:22:17 +08:00
如何写出无法维护的代码 http://www.csdn.net/article/2011-06-03/299247
哈哈啊哈哈~
clino
2014-11-26 13:35:54 +08:00
@kaizixyz 我刚看到一篇 http://blog.jobbole.com/80241/
看来最近这种话题挺火热的哈...
sampeng
2014-11-26 16:47:58 +08:00
不知道LZ在什么公司。。。你的leader要是做到这个份上,真是讽刺。
手下能把代码写的大家都能接手,都能看懂,都能解bug的能力,十个人里面不出一二。

其实从国内大环境来看,每个人水平真差不多。这不是嘲讽,是显示。你不会,我会。这种绝对的存在是不可能的。我不会,给我个google,马上搞定行不行?我会,你不会,你自行研究也能搞定行不行。真的很少具体的实现体现出一个程序员的能力来。都是干活而已。。

那程序员能力提现在哪?就是lz说的这种代码的掌握能力,态度,工作热情等等软实力。这种东西才是leader最关心的。。。招来的基本水平差不了太多的。但软实力没有,当leader好累的。。。
tony1016
2014-11-26 16:58:00 +08:00
必须好啊,同样的回掉函数,swift可以把闭包进化成这样,你说好不好:


进化前
func backwards(s1: String, s2: String) -> Bool {
return s1 > s2
}
var reversed = sort(names, backwards)


进化后
reversed = sort(names, >)
miniwade514
2014-11-26 17:57:51 +08:00
必须好。
1. 后来的新人在维护你的这个项目时更轻松,不需要你花很多时间指导。
2. 所以你有更多时间投入到新的项目、更有价值的项目中。
tabris17
2014-11-26 18:15:24 +08:00
@tony1016 不好,最烦这种语法糖
zxhfirefox
2014-11-26 18:39:45 +08:00
我觉得把接口定得简单易懂就好了,具体实现,可以复杂一些,木哈哈
nomemo
2014-11-26 19:19:10 +08:00
@tony1016 我也不喜欢这种过分简写,有点类似于抖机灵。。
fwolf
2014-11-26 22:19:19 +08:00
各位,试着把自己放在 leader 的位置上,再来看看这个问题?
sgissb1
2014-11-27 00:17:09 +08:00
@nomemo 现实就是现实没办法。不可以取代的人也就那么两种,要么极其牛逼的,要么极其差的。
我看你貌似工作也有很长段时间了,对付这种问题应该不难啊
nomemo
2014-11-27 01:06:27 +08:00
@sgissb1

以前公司小,又是在实习,在创业期间没那么多感受。真正开始成为一份职业的时候倒也才几个月,不能在像学生一样玩耍和不在乎咯~
razrlele
2014-11-27 09:02:24 +08:00
最近看见一句话,并且也打算被这句话影响一生:

To code to progress.

楼主可看后自行感受。
tony1016
2014-11-27 09:25:33 +08:00
其实代码的平均bug数量,和代码行数息息相关,因此,我认为,如果能简化的写法,对于减少bug是有很大帮助的

reversed = sort(names, >)这种写法,你总不会再出翔了吧
nomemo
2014-11-27 10:10:46 +08:00
@tony1016 其实为了照顾水平不同的同事,应该还是少用一些语法技巧,减少他们的阅读难度

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

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

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

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

© 2021 V2EX