1
cougar 2014-11-25 11:01:58 +08:00
看过一篇文章,说是一个外国程序员接手一个前任同事的修改项目,里面的变量什么的都是番茄、土豆等食品的名字
表达的意思应该和楼主的意思差不多,哈哈 |
2
a591826944 2014-11-25 11:06:39 +08:00
@cougar 这有点替换加密的意思啊
|
3
nomemo OP |
4
7654 2014-11-25 11:15:54 +08:00
这种情况下需要一个懂点什么的领导
|
5
cougar 2014-11-25 11:16:26 +08:00
@a591826944 有点那个意思吧,我觉得是想把项目私有化,潜台词:搞死下一任 or 炒了我你就over
|
7
jmu 2014-11-25 11:16:54 +08:00 via Android 3
代码还是在那里,还是你的成果,为什么害怕?
这不是取代,是继承。这样说会容易接受吧 |
8
sun1991 2014-11-25 11:20:03 +08:00 1
能把复杂的代码简单化是一种高级技能.
|
9
nomemo OP |
10
mcfog 2014-11-25 11:23:36 +08:00 4
如果领导真的觉得“你的代码别人都会改,所以你不如别人”,那这样的领导不跟也罢
|
11
nomemo OP |
13
zhaoace 2014-11-25 11:25:48 +08:00 1
从领导角度来说,有个不可替代的下属是非常危险的事情啊。。。
所以如果我是领导还是喜欢你这种下属吧。毕竟领导自己撸(袖)管子上也不是很罕见嘛哈哈哈。 Good job! 别想太多! |
14
xenme 2014-11-25 11:27:35 +08:00
写的简单明了不好,你看人家加密都要加花。
你可以考虑写的比加花还恐怖,别人拿到源码都看不懂,破解不了。 然后就只有你能干了,不可替代。 |
15
akfish 2014-11-25 11:28:48 +08:00 via iPad
代码写成别人看不懂的渣是为了避免被取代?这逻辑真是醉了。
放到层次稍高一点的公司,这种人死得最快。 |
16
xmvagrant 2014-11-25 11:29:28 +08:00 1
一直觉得能把代码写得简单易懂是一种能力!
|
17
nomemo OP |
18
PrideChung 2014-11-25 11:31:31 +08:00 1
如果写个代码都要搞得好像宫斗剧一样算计来算计去,这种公司我还是趁早滚蛋吧
|
20
zyAndroid 2014-11-25 11:33:02 +08:00
在公司里写东西当然要简单易懂,可读性挺重要的其实,comment 也要写写清楚
|
21
em70 2014-11-25 11:34:54 +08:00 via Android 1
《数学之美》说任何一个事情都有一个简单方法解决,找到这样的方法不是偷懒,越简单的方法才越稳定,更有生产力。
|
22
Doubear 2014-11-25 11:35:02 +08:00
最烦逻辑太复杂的东西了,看都看不懂。也最烦为那些本来很简单的意思,非要取个名称让人摸不着头脑的。很妨碍新手学习~~~
|
24
xenme 2014-11-25 11:37:21 +08:00
@nomemo 真没讽刺,只是夸张了点。
其实这个还是看老板。就像大家写的,简单明了,老板会说你没价值,这么简单别人也能搞,写的复杂,老板担心人走了,没人接手。 |
25
boom11235 2014-11-25 11:37:58 +08:00 8
@mcfog 这个说法很对。
好的程序员要让自己很容易被替代,才能继续往上走,不然你只能focus在自己负责的那一块东西上。 |
26
oldcai 2014-11-25 11:38:20 +08:00 2
通过这种方法不让别人接手是比较短视的,不断有人来接手,项目成了,是自己的成就;没人能接手,自己也忙不过来了,项目拖垮了,自己虽然能拿到工资,也是白费了自己的时间。
|
27
Comdex 2014-11-25 11:39:29 +08:00
这不是技术问题而是管理问题了矣。。。
|
28
tomydays 2014-11-25 11:41:03 +08:00 1
Simple is better than complex.
Complex is better than complicated. |
30
assassinpig 2014-11-25 11:44:15 +08:00
底层和核心代码写的易懂一些,毕竟出了问题好找,其他地方可以选择写飘逸一点,不简单但是少读两本书的肯定看不懂写不了
|
31
caixiexin 2014-11-25 11:44:25 +08:00
就像把话简单说一样,这是个很好而却很难实现的技能啊。。
|
32
icedx 2014-11-25 11:45:55 +08:00 via Android 1
|
35
hackerwgf 2014-11-25 11:52:08 +08:00
我觉得把代码写的简单是挺好的一件事
|
36
jeansfish 2014-11-25 11:52:44 +08:00
本事是自己的。拆成一个个简单的之后,或许别人直接改你的局部代码,而不再关心全局的架构、思想了。原来一个原型,别人要改,可能就要把前前后后都看一遍,全理解了才好下手。
|
37
robertlyc 2014-11-25 11:54:02 +08:00
你以为想写简单就能写简单了? naive
我还想当美国总统哪 |
38
semicircle21 2014-11-25 11:54:26 +08:00
写别人看不懂的代码, 在做 Code Review 的时候, 不是会被骂的狗血淋透才对么?
|
39
lushl9301 2014-11-25 11:54:59 +08:00 1
让我想起了云风。。。最近在看他的书。
他的同事都是拿着他写的框架等等来完成整体代码实现的。 1.自己写的懂 2.了解别人水平,自己写出来让别人懂 比如找个地方可以实现,没有很难。那就写几行注释,标明interface,然后交给同事去写。自己完成架构和核心性能部分。 |
41
cszhiyue 2014-11-25 11:57:58 +08:00
楼主心态要放正啊..首先把代码逻辑写简单是一种能力的体现.其次对于代码你的责任不是去维护它.难道一旦发生什么事都要你去做...解放自己,方便他人,何乐而不为.你的面前是星程大海
|
42
Automan 2014-11-25 11:58:30 +08:00
某本禅书中看到的,能让计算机读懂你的代码容易,能让人读懂你的代码的才是高手
|
43
akfish 2014-11-25 11:59:13 +08:00 3
@nomemo 当然你想在这种环境一直待下去,这种市井小民的“小聪明”也是一种生存方式。
问题是你的职业规划就是从一个路边摊到另一个路边摊么?如果不是,把该做的都做了,而且做得更好,吃点小亏(比如被另外一个更便宜的店小二替代了)又怎样?那时你水平到位早就不用去路边摊了。 |
44
jsjscool 2014-11-25 12:15:55 +08:00
推荐看《重构》
|
45
zakokun 2014-11-25 12:23:04 +08:00
我觉得,从短期利益上来看,写的复杂点是有好处的,就像你说的,让自己在位置上坐的更稳固.但如果从个人能力提高上来说,我觉得还是清晰易懂更好,人不能总是处在一个层次不提高不是?
|
46
jiang42 2014-11-25 12:25:08 +08:00
代码是写给人看的,只不过恰好计算机也能看懂罢了。
|
47
NathanInMac 2014-11-25 12:26:07 +08:00
性能没大差距的情况下,越无脑越好
|
48
sadaharu09 2014-11-25 12:27:41 +08:00 via iPhone
结构合理,简单易懂即可。
|
49
kofj 2014-11-25 12:35:11 +08:00
把代码写到大家都能看懂始终非常厉害的技能,如果你达到了,压根儿就不用为工作什么的担心
|
50
ruchee 2014-11-25 12:36:43 +08:00 via Android
写得简单易懂才是能力的体现,其他别想太多
|
51
zakokun 2014-11-25 12:39:21 +08:00
@zakokun 但是,另外来说,我不知道有没有那个能力让自己水平提高到能脱离这种庸俗的环境. 就像我自己经常觉得中国的各种状况让人不满,然后我就经常对自己说"不和他们一般见识,我不屑和他们为伍",但是,即使再怎么挣扎,依然不得不去面对这些,真是......
|
52
tini8 2014-11-25 12:46:03 +08:00
古人云:杀人放火金腰带,铺路修桥无尸骸
殖民者说:善良的印第安人就是死了的印第安人 为他人考虑的人往往是献出自己的鲜血生命,来成全他人的野心 政治如此,经济如此,IT行业也是如此 |
53
kmvan 2014-11-25 12:47:31 +08:00
以前我做过一款网页应用,稍微用了些逻辑来加密了各种变量,后来连自己也解不开了
|
54
ven 2014-11-25 13:00:51 +08:00
如果代码只能自己知道怎么改,升职也会成问题,可能永远只能在那个位置,因为只有你能改~
|
55
AlanZhang 2014-11-25 13:02:30 +08:00
这个你要看情况了,如果你的领导是真正懂技术的,有好处,如果不懂技术,或者技术风格喜欢面条,那你就吃亏了。当年我就吃过这样的亏,不过现在俺成领导了,谁再把代码写的难懂/面条,扣分。
|
56
xiamingchong 2014-11-25 13:33:37 +08:00
代码是写给人看的, 顺便能在计算机上运行
|
57
Mutoo 2014-11-25 13:39:34 +08:00
从CMMI的角度来看,简单是好的。CMMI里最低级的:个人能力决定项目成败,整个项目是不可控的。
http://zh.wikipedia.org/wiki/%E8%83%BD%E5%8A%9B%E6%88%90%E7%86%9F%E5%BA%A6%E6%A8%A1%E5%9E%8B%E9%9B%86%E6%88%90 |
58
NICE 2014-11-25 13:40:37 +08:00
不可替代的才有价值
|
59
jamiesun 2014-11-25 14:06:34 +08:00 1
@nomemo 眼光放长远一点,你若是有能力的人,走到哪里都有饭吃,该担心没有饭吃的是那些跟随者,你应该从多维度提升自己的专业能力,提升自己的综合实力,单技能是很难形成核心竞争力的。
代码仅仅是软件系统中的一部分而已,还有宏观的架构能力,还有沟通协作,以及写好软件文档都是能力,眼光向前看,不用管这些小心眼。 罗辑思维最近有一期《成大事者不纠结》,强烈建议看一看,讲的是曾国藩的事,很有启发。 |
61
xwsoul 2014-11-25 14:12:14 +08:00
该怎样就怎样吧, 用自己舒服的方式来, 如果良币被劣币驱逐, 说名环境是有问题的.
另外, 自己写的代码不是自己负责么? |
62
wanjun 2014-11-25 14:12:32 +08:00
首先要对业务逻辑理解透彻
|
63
meta 2014-11-25 14:20:42 +08:00
这个完全是两回事吧,如果反复在写同一个东西,当然容易被取代,不管写得多复杂都会被取代。如果不停的开发新项目,不停的进步,那么怎么会被取代呢。就算你的同事具备修改你代码的能力又怎么样,他能像你那样创造新的东西吗。IT又不是传统行业,不可能弄一个东西出来守着就可以吃一辈子。
|
64
21grams 2014-11-25 14:34:35 +08:00
这不是好不好的问题,而是你有没有这个能力的问题,不是随便什么人都能把代码写的简单易懂的。
|
65
devon 2014-11-25 14:40:58 +08:00
当然要简单易懂啊,等别人来接手你的事情,你又可以往更高一层次去发展啊。难不成你想一直消耗在一个项目里啊。要知道,写出简单易懂可维护的代码就是高水平的体现。
|
66
madao 2014-11-25 14:47:19 +08:00 1
能担心会被人取代,真心单纯是太弱太弱太弱。
|
67
Mak 2014-11-25 14:50:17 +08:00
快让他们取代你,然后你来我们这里吧。
|
68
ryd994 2014-11-25 15:30:40 +08:00 via Android
楼上大家说的对,如果你的领导是这种傻B领导,不跟也罢
|
69
ivenvd 2014-11-25 15:32:13 +08:00 1
就我目前看来,代码结构越好,别人越看不懂……
|
70
PrideChung 2014-11-25 15:45:23 +08:00
@ivenvd Sadly true...
|
71
levn 2014-11-25 16:16:58 +08:00
你可以写lisp啊
|
72
tojoevan 2014-11-25 16:31:27 +08:00
用发展的眼光看,对自己也是写优雅的代码比较好呀
|
73
feuvan 2014-11-25 16:34:25 +08:00
提高自己,好过与人为壑
|
74
lygmqkl 2014-11-25 17:02:18 +08:00 2
能把代码写的简单的程序员是团队的宝贝啊。。。。真心的。。。遇到那种写完的代码只有自己能改的程序员,也是罪啊。
吐槽完了,跟楼主聊2句,其实可以反过来想,如果你的代码别人看不了,那么会有一种情况,别人接手你的代码就会出现很多complain,那么你的这份工作估计也会止步于这个项目。。。 正确的逻辑应该是 1. 学会写代码 2. 熟悉写代码 3. 看透复杂逻辑,代码越来越简单 4. 逻辑对你没有任何问题,开始考虑架构方面的东西,及整体实现及优化 5. promotion or find a better team, of cause better salary. good luck. |
75
loryyang 2014-11-25 18:25:46 +08:00
我自己写代码就是力求简洁。帮同事review代码的时候,都会提评论,让他把代码写的更简单易懂,甚至变量、函数的命名也要直白易懂。我是一直这么坚持的。
不过我也挺理解lz,有时候也会有这种想法。现在想想,如果怕自己被替代,那就努力学习,让自己无法替代呗。靠把代码写恶心总归不是正道。。 |
76
zhc 2014-11-25 18:35:00 +08:00
遇到这种情况,做正面正能量的选择.绝对不会错的.
|
77
zachgenius 2014-11-25 18:58:08 +08:00
@boom11235 25楼, 这个回复真棒
|
78
gzb1985 2014-11-25 19:24:57 +08:00
把代码写简单是相当难的,需要不断修炼内功,楼主在思考和践行这件事,已经超越你的很多同事了
楼主把视角放大一点,就不会在意被取代或者吃不饱饭。因为随着功力的提升,路会越走越宽 |
79
michaelye1988 2014-11-25 20:16:13 +08:00 1
我比较有代码洁癖,我的代码相对规范,比较容易让人看懂。我觉得这是一个程序员的基本素养。想起在上一家公司的时候,我的主管,说是在百度腾讯待过,代码写的非常乱,我们跟他说这个不好维护,他说他就喜欢把代码写得让别人看不懂。神经病,后来被开除了。
|
80
crossmaya 2014-11-25 21:23:23 +08:00
我觉得主要还是靠质量,千遍一律的代码不管多么好看总会被别人取代的,继续挖坑吧,往深了挖,那个时候写出的代码不管复杂还是简洁,一般的程序员都是看不懂的。。。
|
81
nooper 2014-11-25 21:55:23 +08:00
推荐一本书, clean code.
|
82
nooper 2014-11-25 21:56:01 +08:00
@michaelye1988 中国的公司只是注重技术,并不懂技术。
|
83
TingHaiJamiE 2014-11-25 22:32:01 +08:00
我到公司的第一个工作就是接手同事写完的系统,开发后续功能。
同事写的比较清楚,无论是修改还是扩充都很方便,现在同事调去做更有意思的产品了。 不太理解,既然自己做得好,为什么会被淘汰和取代? |
84
loading 2014-11-25 22:35:34 +08:00 via Android
别傻了,你的代码写得不易懂,必须马上把你炒了。
编程是个体力活,大不了找人重新写,流程什么的公司都有了,就当是重构! 代码难懂就说明你能力差,必须炒掉。 例如:twitter谁不轻松写出来,在跑的代码,价值不是代码本身,而是里面的流程,在用户的角度看到的一切,腾讯抄袭是不需要代码的,只要知道表现形式和流程就行。 你自己问下自己,你写个其他的项目,不就是个提力活吗?比你牛的多得很强,大不了重新写。 故意写得难懂,是在说‘我没心思干了,代码能跑就行了!’,谁知道你是绞尽脑汁故意写的还是这就是没优化的代码! |
85
Dzinlife 2014-11-25 23:04:41 +08:00
代码是给人看的。
有这种想法,说明你没有核心竞争力。 |
86
wilsonxyz 2014-11-25 23:15:20 +08:00
这是作为高级程序员最基本的事。
|
87
ant_sz 2014-11-25 23:15:40 +08:00
把代码写的清楚应该比写的复杂更困难吧。。。
|
88
sgissb1 2014-11-25 23:36:32 +08:00 1
好的领导,远离不可替代的人,亲近可替代的人。
好的码农,写人类能看懂的代码。不好的码农,写除了他以外,或者两他自己都看不懂的代码。 而现实是,绝大多数领导都是不好的,原因是当他们还在基层或码农时代时;他们并不是好的码农,而正因为做了不好的码农就不知道他该需要什么样的人了。 现实中,绝大多数码农都是不好的。并不是他们水平如何,更多处于“心态”,毕竟“护食”都是人的本性,同时也有部分码农是由于工作压力使得没有精力去顾这么多的问题。 目前我就说会所我自己的经历,我觉得我所遇到差的码农,比较多的还是“护食”和“压力”、少部分是真的由于水平差引起的。 把代码写好,我觉得关键是有个度。60分还是80分?前往不要想着做100分,因为你做到100分的时候,你也可以滚了。滚的理由很复杂。 |
89
nomemo OP |
90
min 2014-11-26 01:39:19 +08:00
人应该有追求
为了看不见摸不着的安全感,天天在烂代码里面打滚是一种追求 写得简洁漂亮易于维护和扩展又是另外一种追求 至于故意写得烂,从老板的角度,除非技术水平渣渣,不然这点小心思还会看不出来? |
91
lzdhlsc 2014-11-26 05:28:10 +08:00
你们都不code review的吗?
|
92
winnie2012 2014-11-26 08:26:28 +08:00 1
有点本末倒置:
劣币驱逐优币,说明环境不行,该换环境了。 稳定饭碗而混,那你也变劣币,该换头脑了。 |
94
jianghu52 2014-11-26 08:42:00 +08:00
我觉得有时候敲代码就像做菜
如果你只是要保证能吃,那么把做菜精准的分成几十步,每一步都有精准的标准,比如多长的菜切多少刀,油下锅多少秒放菜这样的,那么可能真的,教会徒弟饿死师傅。这是必然的。一来是因为徒弟比师傅便宜,二来,这个餐馆买能吃的菜就会赚钱,不会卖那种珍馐美味。三来,师傅已经不会其他的了。 可是你要是把做菜当成艺术,每一次做菜都是一种对食物的升华,每一刀都是为了最完美的体现食物的线条,火候的掌握是为了切合食物的本性,调味是为了更好呈现食物的味道。这个时候,你每一次重复,都是一次升华,一次进步。这个时候,你还会觉得教会徒弟,饿死师傅? |
96
Loop680 2014-11-26 09:00:43 +08:00
突然想到了一个类比,写代码/程序开发与做硬件/工业设计
sony,任地狱,乃至苹果等各大手机厂商,做硬件产品的时候无一不是将确定的设计方案拆开了分成若干年来升级发布,什么PSP/PSP1000/PSP2000/PSP3000/PSP GO/PSV,什么GB/GBC/GBP/GBA/GBASP/GBM/NDS/NDSL/NDSLL/3DS/NEW3DS,还有现在的Iphone12345678s。 为什么这么专业的公司,不一次性把产品做到极致?为什么开这么多产品线和更新线? 他们的职业道德哪儿去了? 大家都是为了利益,为了赚钱,为啥这些公司就可以不要更新圈钱,程序猿就要毕其功于一役? 不太懂,请指教。 |
97
mengzhuo 2014-11-26 09:19:11 +08:00
@Loop680
类比不正确,硬件的限制更加多, 比如苹果想上蓝宝石,工艺决定了上不了,换家工厂试试? 比如特斯拉想做好电池,不好意思,锂的物理特性决定了现在的能量几乎是极限了,换种元素试试? 相比之下,软件改起来容易多了 程序员就应该能在实战中提升自己,赚点技能点,运气好、开窍了可以点开技能树。 技能树够高了,人品也没啥问题,难道还怕找不到好工作? 我真替那些写垃圾代码、替写垃圾代码辩护的人感到悲哀。 最后放Linus大神的话: Talk is cheap, show me the code. |
98
Loop680 2014-11-26 09:29:27 +08:00 1
@mengzhuo 我知道工艺问题是随着其他制约条件而逐步进化的,但是我想说的是,我曾经看过的很多新品发布拆机测评报告,比如PSP或者NDS这种游戏掌机,文章里经常会指出内部结构电路设计等细节上明显留下了可进化可改进的空间。这就与工艺无关,纯粹是工艺设计上为下一代产品更新做的保留,也就是说明明可以把厚度做到14mm,但是他先做到18mm,然后明年出个新的模具,就能叫NDSlite,这不就和程序猿写代码时留下优化空间一样的么。
|
99
PrideChung 2014-11-26 09:29:56 +08:00
@Loop680 客观条件做不到跟主观意愿不想做完全是两码事
|
100
jedihy 2014-11-26 09:52:27 +08:00
乱搞不怕领导撸死你?
|