作者zanyking (遥远的旅人)
看板Soft_Job
标题Re: [请益] 如何快速的看懂程式码?
时间Sun Nov 9 00:55:40 2008
※ 引述《gogogogoooo (...)》之铭言:
: 目前刚进去工作
: 主管便把他们Team开发成品到现在的source code丢给我看
: 大概数十万行吧 里头的注解非常的少 可以说是没有
: 主管叫我自行trace code 看懂整个程式码在干麻
: 常常看到一大堆变数 却完全不晓得意义为何
: 也不知道干麽用 觉得非常的挫折
: 那种感觉就有点像是你写了一个算式
: 例如说 3*2=6 看得懂式子
: 可是我却不晓得他实际在干麻
: 或许他的意义可能是有3个人 每个人有2颗苹果 总共有6颗苹果
: 公司是写韧体的 算是网通厂 最近又丢了一份datasheet给我看
: 因为程式码里头有些是写入Register的 要看datasheet才知道在干麽
: 以前也从来没碰过硬体 看了spec也是一个头两个大
: 有时候问了主管一些问题 跟我说这看天份的...
: 不晓得版上的人 刚遇到一份几乎没注解的code的时候
: 是怎样才可以比较快速的去看懂整个程式码在干麽?
我们公司是作Java方面的,在我们Team(开发Eclipse Plugin),我们工程师
遇到这种情况时常常会说:
愿原力保佑你。
『看到这个A方法了吗?那麽在这个Class里,必然有B方法的存在。』
『虽然我从没学过Ruby,不过这行应该是例外处理对吧?我想你写错了,你应该呼叫一
个也许是叫做...的机制来作这件事的。』
『这个Class虽然超过3000行,但是看它的命名还有interface,进入点应该是位於
某个类似XXX的方法里...你瞧,我们剩下500行了。』
『从这个Package(name space)的名称来看,里面的Class应该不用trace,你就Call那个
Factory就好了,他需要的资讯(决定输出所应有的Argument)至少是...。』
『这个系统为了完成A这样的功能必然存在一个子系统B,我猜它的名字大概会是...』
『这个Helper(约1000行)从API来看跟我目前需要的东西同构(isomorphism),看来
我可以把他借过来用(ctrl C+V),边际效应应该会出现在...』
所以关於注解,那是好心、仁慈而且善良的佛祖工程师,送你帮助你准时下班的礼物。
我个人微薄的希冀,只有拜托他们命名时有遵守行规,缩排Code时不要太有创意。
剩下的,关於那些邪恶Seth搞出来的Anti Logic 的 Code 义大利面,我会当作那是成为
Jedi Master所必须经历的磨练的。
--
『你知道人有脑子,所以不要只是单纯的满足它,偶尔也要使用它啊。』
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.194.153.181
1F:推 joy830:我觉得有些乱改的CODE 看不懂是正常的 11/09 01:09
2F:推 TonyQ:推这篇对话 还蛮常用到的.XD 11/09 10:27
3F:推 buffon:May the force be with RD 11/09 18:03
4F:推 iincho:是May the source be with you.... 11/09 18:52
5F:推 kenzou:推。 的确是这样没错。 11/09 20:26
6F:推 choufeng:你们公司是..ibm吗 11/10 16:43
7F:推 abovelight:什麽是义大利面? 11/10 20:11
8F:推 iincho:整团糊在一起.... 11/11 00:10
9F:→ zanyking:也有人说是被猫玩过的毛线球。 11/11 10:38