新足迹

 找回密码
 注册

精华好帖回顾

· 忠诚的价值?答案在风中飘摇。我的职场故事(更新第六篇,在#18,全文完~) (2013-4-28) philowen · 如何种好草莓 (2012-9-11) HALAN
· 拜个晚年——秀下今天的早餐和风五彩冷面和情人节准备的抹茶黄桃慕斯提拉米苏 (2013-2-15) feicunzic · 从事admin工作的同学们一起分享工作中的小tips吧!-- 电梯在1楼! (2011-6-25) lovemylife
Advertisement
Advertisement
查看: 3853|回复: 42

【程序员必看】Unfactoring your code [复制链接]

发表于 2014-6-13 16:09 |显示全部楼层
此文章由 不会游泳的鱼 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 不会游泳的鱼 所有!转贴必须注明作者、出处和本声明,并保持内容完整

评分

参与人数 1积分 +2 收起 理由
atransformer + 2 感谢分享

查看全部评分

Advertisement
Advertisement

发表于 2014-6-14 11:47 |显示全部楼层
此文章由 finger|regnif 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 finger|regnif 所有!转贴必须注明作者、出处和本声明,并保持内容完整


公司一伙计就是这么干的. sqlcmd1, sqlcmd2, sqlcmd2a, sqlcmd2b, ...... sqlcmdx

发表于 2014-6-14 13:06 |显示全部楼层
此文章由 nali 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 nali 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Unfactoring is my bread and butter.

发表于 2014-6-15 23:11 |显示全部楼层
此文章由 drowndog 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 drowndog 所有!转贴必须注明作者、出处和本声明,并保持内容完整
没有code review的公司不值得长呆

发表于 2014-6-16 10:43 |显示全部楼层
此文章由 kksp 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kksp 所有!转贴必须注明作者、出处和本声明,并保持内容完整
应该朝着unOOP和unORM的方向发展

发表于 2014-6-16 10:58 |显示全部楼层
此文章由 binbenban 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 binbenban 所有!转贴必须注明作者、出处和本声明,并保持内容完整
when i used to work on J2EE web development, i took over some code in JSP. In every page, there is a class called StringBag which contains every value to be used in the page. And the strings are named str1, str2, str3... I thought that was pretty unfactored.
Advertisement
Advertisement

发表于 2014-6-16 12:43 |显示全部楼层
此文章由 鱼羊鲜 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 鱼羊鲜 所有!转贴必须注明作者、出处和本声明,并保持内容完整
很快会被揩掉的

发表于 2014-6-16 13:39 |显示全部楼层
此文章由 不明觉厉 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 不明觉厉 所有!转贴必须注明作者、出处和本声明,并保持内容完整
於我心有戚戚焉
头像被屏蔽

禁止发言

发表于 2014-6-20 17:40 |显示全部楼层
此文章由 smbk 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 smbk 所有!转贴必须注明作者、出处和本声明,并保持内容完整
哈哈,自从有人窃取了我的劳动果实拿去award winning以后,我现在也开始时不时unfactoring一下子。

做developer这行,特别是在一些大型企业里做久了,就学会技术性的保护自己的知识产权了。毕竟大部分应用层的东西都很简单,从我们的角度能说这个程序写的好那个程序写的不好,但从管理层角度,只要最终系统能用就行,他们总觉得随便找谁来写程序都是一样的,实际上这也是事实。所以在一些复杂的重要的系统上,如果不留下点个人烙印,自己永远都可以轻易的被替代。

当然了,我是不会低级到写一堆屎一样的烂代码然后让所有人都不愿意触碰,那样首先写烂代码对自己是一种折磨,其次长此以往对自己的水平肯定是有负面影响的,第三别人看了我写的东西难免小瞧了我。我的做法是把简单的问题抽象化,我知道有简单直接的solution,但是我偏偏会选择一种酷炫的,高度封装的,复杂的generic solution。

这样一来在无聊的应用层软件开发中练了手,二来即使有人code review我也完全不怕,因为那代码看起来非常高大上,他只能觉得如果是他或许不会这样写,但是无法找出我的写法有什么问题,无论是运行效率上,代码长度上往往都不逊于甚至好于常规solution,难点完全在于架构逻辑上。其实维护上扩展上也比常规做法方便的多,前提是你理解了这个系统。我的程序主要只有一个缺点,就是comments很少基本上只有懂的人才能懂,当然啦这是刻意的。

我相信优秀的developer花些时间认真看是能够看懂的,但是优秀developer一般都很忙,而且优秀developer也不屑于窃取我的劳动果实拉

评分

参与人数 2积分 +9 收起 理由
+ 6 感谢分享
ysihaoy + 3 你太有才了

查看全部评分

发表于 2014-6-26 16:05 |显示全部楼层
此文章由 很明显 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 很明显 所有!转贴必须注明作者、出处和本声明,并保持内容完整
烂公司最喜欢讨论代码质量,不想想用户看你丫的代码吗,决定做个屎产品的时候脑子长哪去了,写代码时候倒是讨论起质量来了

只要performance最优,就是好代码,看不懂的是傻子

发表于 2014-6-26 16:50 |显示全部楼层
此文章由 心平气和 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 心平气和 所有!转贴必须注明作者、出处和本声明,并保持内容完整
smbk 发表于 2014-6-20 16:40
哈哈,自从有人窃取了我的劳动果实拿去award winning以后,我现在也开始时不时unfactoring一下子。

做deve ...

牛人
Advertisement
Advertisement
头像被屏蔽

禁止发言

发表于 2014-6-26 17:04 |显示全部楼层
此文章由 smbk 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 smbk 所有!转贴必须注明作者、出处和本声明,并保持内容完整
很明显 发表于 2014-6-26 15:05
烂公司最喜欢讨论代码质量,不想想用户看你丫的代码吗,决定做个屎产品的时候脑子长哪去了,写代码时候倒是 ...

连好代码的定义和意义都不知道。你根本就不知道什么叫做可维护性,可见你根本就没做过复杂的系统。

要不你就是 半桶水瞎晃荡,要不你就压根不是程序员。

发表于 2014-6-26 17:07 |显示全部楼层
此文章由 很明显 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 很明显 所有!转贴必须注明作者、出处和本声明,并保持内容完整
smbk 发表于 2014-6-26 16:04
连好代码的定义和意义都不知道。你根本就不知道什么叫做可维护性,可见你根本就没做过复杂的系统。

要不 ...

难道再复杂的系统不能只用一个class,一个method写出来吗?哈哈哈哈

发表于 2014-6-26 17:07 |显示全部楼层
此文章由 ljalee 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 ljalee 所有!转贴必须注明作者、出处和本声明,并保持内容完整
finger|regnif 发表于 2014-6-14 10:47
公司一伙计就是这么干的. sqlcmd1, sqlcmd2, sqlcmd2a, sqlcmd2b, ...... sqlcmdx

code review的时候能过?
没有naming convention?
头像被屏蔽

禁止发言

发表于 2014-6-26 17:11 |显示全部楼层
此文章由 smbk 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 smbk 所有!转贴必须注明作者、出处和本声明,并保持内容完整
很明显 发表于 2014-6-26 16:07
难道再复杂的系统不能只用一个class,一个method写出来吗?哈哈哈哈

你对可维护性一无所知,就知道点名词而已。
不懂别装懂,谢谢。

发表于 2014-6-26 17:12 |显示全部楼层
此文章由 ljalee 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 ljalee 所有!转贴必须注明作者、出处和本声明,并保持内容完整
smbk 发表于 2014-6-20 16:40
哈哈,自从有人窃取了我的劳动果实拿去award winning以后,我现在也开始时不时unfactoring一下子。

做deve ...

不看comments,直接断,trace比较靠谱。或者利用输出等其他手段,知道那些语句得到执行。
comments一般都是瞎写,或者misleading下,code review的时候一般不注意看你的注释具体和现在做的逻辑等是否一致。
这是我的个人经验。

不干已经4年了。想想都费脑子。
Advertisement
Advertisement

发表于 2014-6-26 17:14 |显示全部楼层
此文章由 ljalee 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 ljalee 所有!转贴必须注明作者、出处和本声明,并保持内容完整
smbk 发表于 2014-6-20 16:40
哈哈,自从有人窃取了我的劳动果实拿去award winning以后,我现在也开始时不时unfactoring一下子。

做deve ...

办法不错,可是这不会增加你自己的工作量吗?

发表于 2014-6-26 17:15 |显示全部楼层
此文章由 很明显 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 很明显 所有!转贴必须注明作者、出处和本声明,并保持内容完整
smbk 发表于 2014-6-26 16:11
你对可维护性一无所知,就知道点名词而已。
不懂别装懂,谢谢。

你没听过单class流吗,修炼到最后就是单method流,眼中有码心中无码的境界你懂吗

发表于 2014-6-26 17:16 |显示全部楼层
此文章由 ingeer 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 ingeer 所有!转贴必须注明作者、出处和本声明,并保持内容完整
基本一天大概只写一行

发表于 2014-6-26 17:18 |显示全部楼层
此文章由 很明显 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 很明显 所有!转贴必须注明作者、出处和本声明,并保持内容完整
ingeer 发表于 2014-6-26 16:16
基本一天大概只写一行

我靠,不用回车的高手现身了!

发表于 2014-6-27 00:03 |显示全部楼层
此文章由 kanjunhai 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kanjunhai 所有!转贴必须注明作者、出处和本声明,并保持内容完整
totally unprofessional.
Advertisement
Advertisement

发表于 2014-6-27 00:50 |显示全部楼层
此文章由 bfox 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 bfox 所有!转贴必须注明作者、出处和本声明,并保持内容完整
ingeer 发表于 2014-6-26 16:16
基本一天大概只写一行

我昨天的生产力比你高 三倍, 改了三行代码

发表于 2014-6-27 09:22 |显示全部楼层
此文章由 mengqing 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 mengqing 所有!转贴必须注明作者、出处和本声明,并保持内容完整
ingeer 发表于 2014-6-26 16:16
基本一天大概只写一行

我靠 人工minification啊
头像被屏蔽

禁止发言

发表于 2014-6-27 11:24 |显示全部楼层
此文章由 smbk 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 smbk 所有!转贴必须注明作者、出处和本声明,并保持内容完整
ljalee 发表于 2014-6-26 16:14
办法不错,可是这不会增加你自己的工作量吗?

说到工作量,有的时候的确是闲得蛋疼才这么干的,最初写的时候多花些时间(练得久了速度变快,基本也就比常规做法稍微慢一些),但是以后如果要维护要扩展什么的其实会省很多时间。再说在澳洲企业,一般大家都慢吞吞的,delivery压力也不大,只要不影响进度,适当玩点花活也不错。


再说写程序累不累主要在于自己写的东西有没有意思。如果工作非常老套,所有logic都用简单的if, for loop等等实现,那这纯粹是体力劳动,即使工作两不大也会烦会累。但如果每次遇到点复杂的logic咱都玩点花样,其实更有意思。

其实这也是企业文化,因为这是在澳洲。在中国IT企业,你干不完活就就得加班,这里主要不是看完成了多少,而是看你一天8小时做够了么,不存在干不完的时候,因为干不完就留到第二天接着干,除非你太慢影响整个team进度了。而我通常是轻松跑到进度前面去的,而我们都知道企业里总有很多low priority的垃圾工作,做那些纯粹就是毫无意义的瞎忙,虽然很多人天天都在那样瞎忙。如果我太快了没事干就只能去做那些没有意义的工作,还不如多花时间把代码写好,以后自己维护更轻松,别人想维护却没那么简单。

评分

参与人数 1积分 +3 收起 理由
ysihaoy + 3 我很赞同

查看全部评分

头像被屏蔽

禁止发言

发表于 2014-6-27 11:26 |显示全部楼层
此文章由 smbk 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 smbk 所有!转贴必须注明作者、出处和本声明,并保持内容完整
很明显 发表于 2014-6-26 16:15
你没听过单class流吗,修炼到最后就是单method流,眼中有码心中无码的境界你懂吗 ...

你没听说过二进制流吗?修炼到最后只用零和一的境界你懂吗?

发表于 2014-6-27 13:21 |显示全部楼层
此文章由 drowndog 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 drowndog 所有!转贴必须注明作者、出处和本声明,并保持内容完整
smbk 发表于 2014-6-27 10:24
说到工作量,有的时候的确是闲得蛋疼才这么干的,最初写的时候多花些时间(练得久了速度变快,基本也就比 ...

你可以用一些新的技术,别人不怎么了解的。
比如,在Java程序中掺杂一点Scala……
Advertisement
Advertisement

发表于 2014-6-27 14:45 |显示全部楼层
此文章由 yourock 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 yourock 所有!转贴必须注明作者、出处和本声明,并保持内容完整
公司要砍人的时候,会不会考虑这个人的代码别人都不懂,所以不能砍?
头像被屏蔽

禁止发言

发表于 2014-6-27 16:03 |显示全部楼层
此文章由 smbk 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 smbk 所有!转贴必须注明作者、出处和本声明,并保持内容完整
yourock 发表于 2014-6-27 13:45
公司要砍人的时候,会不会考虑这个人的代码别人都不懂,所以不能砍?

你得到了它。这才是code unfactoring 的真谛。

发表于 2014-6-27 17:14 |显示全部楼层
此文章由 ysihaoy 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 ysihaoy 所有!转贴必须注明作者、出处和本声明,并保持内容完整
很明显 发表于 2014-6-26 15:05
烂公司最喜欢讨论代码质量,不想想用户看你丫的代码吗,决定做个屎产品的时候脑子长哪去了,写代码时候倒是 ...

你要么就是写代码很烂的程序员,要么就是只注重金钱和时间的资本家,不过我觉得你属于后者的可能性很小

发表于 2014-6-27 17:23 |显示全部楼层
此文章由 ysihaoy 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 ysihaoy 所有!转贴必须注明作者、出处和本声明,并保持内容完整
drowndog 发表于 2014-6-27 12:21
你可以用一些新的技术,别人不怎么了解的。
比如,在Java程序中掺杂一点Scala…… ...

最头疼的就是在团队里面说服那些不喜欢接受新技术的人来使用新技术了,当然scala不能叫做新技术,但是在土澳这就是新技术,呵呵

比如我现在的团队一些东西是ruby的,就是因为以前有几个人倡导ruby。我很纳闷你既然倡导ruby何苦来做java的东西,直接去ruby shop算了

能否介绍一下你如何在团队中最先引入scala吗?

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部