2012年3月14日星期三

我与下载库调度某一段代码的故事


纯属工作杂谈,放放松!



我与下载库调度某一段代码的故事

标题很戏剧性,有抢眼之嫌疑,但初衷完全是想让我放放松自己心情,避免边描述边心情太激动了。那开始讲述这么段简单的故事吧。
一年多前,我刚来下载库接触到调度器的其中一段代码,很辛苦啃了一段代码,好“心酸”的感觉啊,啥叫“肉牛满面”哭笑不得就是那种感觉了没错,当时也没敢没好意思抱怨太多……这段代码有将近四百行,各种诡异逻辑都包含在一个函数里头……一年多之后,就最近段时间重新翻查到了这段代码,真是想骂娘了都。
说真的,倘若你没有清醒的头脑和富有耐心,想必你是看不下懂不了其中的逻辑!冰山一角,简单贴一段看看:




简单罗列上面代码包含的糟糕点:
1. 函数参数迭代器传引用。
2. 滥用while循环,根本不需要;while,if,return,break各种乱。
3. 函数内部修改外部的迭代器引用。
4. 定义无必要的的变量new_map_pos增加函数逻辑的复杂性。
……
算了,后面还有三百多行代码,哥不想继续说了,不然伤神的是自己。
其实,这只是冰山一角!My god.

冰山一角

PS.
最后庆幸,我已经针对该函数,整理好了一份文档,准备放到svn上与有需要的同事分享。
同时希望的是,同事可帮忙发现其中包含理解上或表述上存在错误的地方,欢迎指正!
唉,感慨一点,对于程序猿们,需要的是耐心与毅力啊,最重要的了。

没有评论:

发表评论