作者wens (文思)
看板Soft_Job
标题Re: [讨论] 主管不认同书本的知识,说我没学好程设
时间Sun May 8 10:27:33 2016
以下不见得跟 Java 有关,纯粹讨论一点关於函数参数过多可能
导致的问题
1.难以阅读、修改不容易
函数的参数越多,表示一个人要使用或是编辑的时候,需要判断
断词 (想不到比较好的说法) 的地方就越多,也越容易失误。
有些编辑软体可能会帮你 highlight 你目前编辑到的参数,或是
提供额外弹出的提示 (如自动完成) ,但不是所有的都会。也有
方法在写的时候让他更明确,如一个参数放一行,但也不是每个人
都喜欢这样的 coding style。而且十个参数就是十行,也占据了
不少版面。
参数多,漏给参数的机会也增大。如果好死不死有许多类似的函数
多载 (在建构子遇到的机会应该不小?) 且参数型态又一样,是不是
很容易呼叫到不正确的建构子呢?
此外, C++ / Java 有 namespace / package 要写,参数型态本身
就已经够长到不好阅读了。
2.效能 & 空间
我不确定其他高阶程式语言怎麽实作,至少在 C / C++ 里面,某些
平台上最前面几个 (0~4, 看平台) 参数是用 register 传,剩下的
要放在stack 上。通常编译器做最佳化的时候已经会直接一次把需要
的空间留下来,效能上大概不会有差,因为编译器可以安排运算指令
让需要传的资料事先存在对的位址。但是堆叠的空间仍然是需要的。
在多绪执行的程式里面,程式堆叠不一定如大家预期的是可以一直
成长的。在一些系统里面,程式堆叠是固定大小,且这个大小还会
影响到开新的执行绪的速度。
最後,写程式很多选择都是取舍。要知道一个方法取什麽舍什麽,
才能真的判断当下用这个方法适不适合。或许你的主管有他的想法
他没讲清楚 (可能他认为你还 junior? 我无从得知),也可能单纯
是他鸭霸而已。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.112.30.76
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1462674456.A.BE6.html
1F:推 siriusu: 推 05/08 11:11
2F:推 ADYex: 推 05/08 11:38
3F:推 ADYex: ②效能的部份我从来没有想到过 XD,学习了 05/08 11:45
4F:→ ADYex: 。 05/08 11:45
5F:推 Luos: 从来不管效能 只在乎程式美不美 05/09 11:19
6F:→ viper9709: 推~ 05/09 23:06