英语轻松读发新版了,欢迎下载、更新

抱怨毛啊

sumtec 发布于 2014年03月05日
tinyfool kxdd2002 等2人欣赏。

有位同学在我的另一个贴里面写:

抱怨毛啊。

说个事吧,以前有个项目(网游),有个同事离职了,后来没有人看得懂他的代码,然后就都重新写了。。。

说实话,我在一些地方曾经说过:做“架构”最重要的就是平衡一事,比如要注意团队的理解能力和技术的先进性之间的平衡。上面这位同学说的情况,很多时候就是我说的这个平衡问题。当然,也有代码写得很烂不知道是个什么意思的。

不过我想无论是代码真写得烂,还是平衡性做得不好,都是有槽点的。前者毋庸置疑那就是烂,后者需要看情况了。比如说连DRY都不知道何物,代码到处Copy Paste,有人用更好的方式进行重构结果被抱怨看不懂,然后稀里哗啦改回了Copy Paste模式。对啊,每一处都很好懂,可是一旦改起来就非老鼻子劲了。这个问题不多说了,能懂的我再写也是罗嗦,不懂的写多少都不会动,直到你撞冰山的时候你才会觉得自己错了。关于这个问题在补充一下,那个自动隐藏物内容的列,老板打算针对每一个DataGrid当中的每一个有可能没有内容的列,写一遍:

 <mx:DataGridColumn ... labelFunction="showXXX()" />

 function showXXX() : void
 {
    ...
    if (...) 
       column.visible = false;
    else
       column.visible = true;
 }

呵呵,每列的判断代码还些微有些不同,但你看这怎么都是几乎一个意思。有个页面有两个DataGrid,每个有十来个列,所以就有大概三十来个这样的短小精悍意思一样的函数出现。

如果你仔细思考,你还会发现这种奇葩的代码并不是根据某一列是否有任意内容来决定某一列的显示和隐藏的,而是根据某一个单元格来决定某一列是否显示。脑补一下吧,如果更新数据的时候,这一列交叉出现有和没有的内容,那么这一列就要不停的设置显示然后隐藏然后再显示在隐藏。性能问题我就不说了,虽然看着很难受但反正现在CPU能力足够我也不在意这些。关键是,如果最后该列最后一行是没有内容的,那么尽管前面的列都有内容,这一列仍然是不会显示的。

这种明显的错误,我都不好意思指出来。原因倒不是我觉得太伤人面子,而是我模拟运行了一下对方的大脑,觉得最后的结果是听不懂的几率大概有一半,到时候我还得替大家找台阶下。

是的,我当时想Fix这个Bug来的,顺便将这种自动隐藏功能封装在一个地方,一旦有问题或者需要改,定位和处理都会比较方便。总不至于像现在这样,想要Fix这个Bug还要挨个DataGrid来读和修改。不过,既然理解不了,那就算了咯。

共15条回复
JackChen 回复于 2014年03月05日

楼主的话,深表赞同,工作中有很多这样的事出现。说出来都是泪呀

goodsong 回复于 2014年03月05日

老板是指直接上级还是给你发工资的人阿,搞糊涂了。

sumtec 回复于 2014年03月05日

2楼 @goodsong 广义的说就是你上级呗,敬称老板。

bluefrog 回复于 2014年03月05日

正常,前人挖坑后人填!~

goodsong 回复于 2014年03月05日

碰到这种情况,我做的事情很简单,帮这个人把名字加上。 在所有的这种小函数上面,加上 by XXX

灵感之源 回复于 2014年03月05日

留着,让别的人来修复,自己喝咖啡去

damon 回复于 2014年03月05日

我郁闷的是,让人做A,结果A没有给我汇报结果,去修改B了,幸好我中间去问下,做的怎么样了?然后发现B业务逻辑上是不应该去修改的,应该在更上层做处理,然后巴拉巴拉的说了一大堆,终于让人听明白了。

顺带求问sumtec,如何带领下面的人?

ichenxiaodao 回复于 2014年03月05日

把我的回帖来发贴,至少要先让我知道吧?

sumtec 回复于 2014年03月06日

7楼 @damon 这样吧,改天写一贴?

sumtec 回复于 2014年03月06日

8楼 @ichenxiaodao 我想对事不对人,给出原贴连接主要是把前因后果贴一遍很多余。其实,我还是有点不理解你说的“先让你知道”是哪一种意思。如果是说为什么不圈你,那么除了前面的解答外,我想其实不圈你不也看到了么?如果你的意思是别的意思,那就另当别论了。

ichenxiaodao 回复于 2014年03月06日

10楼 @sumtec 我的意思是,我的那条回帖只是对于你的那个帖子的一个回复而已,我不想别人直接把我的回复内容贴出来。

sumtec 回复于 2014年03月06日

11楼 @ichenxiaodao 这是基于什么理由呢?版权还是什么?

lory_yang 回复于 2014年03月06日

clean code确实非常难,即使我现在的环境,rd都非常在意clean code,经常会讨论程序的架构设计的问题,但是鉴于精力有限以及个人能力的局限性,各种脏的东西总是会慢慢冒出来。说实话,维护一个项目是个异常复杂的事情。超过一定时间,建议做重构。一个是技术升级了,一个是系统已经难以维护了。这个时间依赖于维护有多优秀

ichenxiaodao 回复于 2014年03月06日

12楼 @sumtec 个人喜好。

sumtec 回复于 2014年03月07日

14楼 @ichenxiaodao 这样啊,我尊重你的发言权利。

本帖有15个回复,因为您没有注册或者登录本站,所以,只能看到本帖的10条回复。如果想看到全部回复,请注册或者登录本站。

登录 或者 注册
[顶 楼]
|
|
[底 楼]
|
|
[首 页]