看板 Soft_Job 關於我們 聯絡資訊
以下不見得跟 Java 有關,純粹討論一點關於函數參數過多可能 導致的問題 1.難以閱讀、修改不容易 函數的參數越多,表示一個人要使用或是編輯的時候,需要判斷 斷詞 (想不到比較好的說法) 的地方就越多,也越容易失誤。 有些編輯軟體可能會幫你 highlight 你目前編輯到的參數,或是 提供額外彈出的提示 (如自動完成) ,但不是所有的都會。也有 方法在寫的時候讓他更明確,如一個參數放一行,但也不是每個人 都喜歡這樣的 coding style。而且十個參數就是十行,也占據了 不少版面。 參數多,漏給參數的機會也增大。如果好死不死有許多類似的函數 多載 (在建構子遇到的機會應該不小?) 且參數型態又一樣,是不是 很容易呼叫到不正確的建構子呢? 此外, C++ / Java 有 namespace / package 要寫,參數型態本身 就已經夠長到不好閱讀了。 2.效能 & 空間 我不確定其他高階程式語言怎麼實作,至少在 C / C++ 裡面,某些 平台上最前面幾個 (0~4, 看平台) 參數是用 register 傳,剩下的 要放在stack 上。通常編譯器做最佳化的時候已經會直接一次把需要 的空間留下來,效能上大概不會有差,因為編譯器可以安排運算指令 讓需要傳的資料事先存在對的位址。但是堆疊的空間仍然是需要的。 在多緒執行的程式裡面,程式堆疊不一定如大家預期的是可以一直 成長的。在一些系統裡面,程式堆疊是固定大小,且這個大小還會 影響到開新的執行緒的速度。 最後,寫程式很多選擇都是取捨。要知道一個方法取什麼捨什麼, 才能真的判斷當下用這個方法適不適合。或許你的主管有他的想法 他沒講清楚 (可能他認為你還 junior? 我無從得知),也可能單純 是他鴨霸而已。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.30.76 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1462674456.A.BE6.html
siriusu: 推 05/08 11:11
ADYex: 推 05/08 11:38
ADYex: ②效能的部份我從來沒有想到過 XD,學習了 05/08 11:45
ADYex: 。 05/08 11:45
Luos: 從來不管效能 只在乎程式美不美 05/09 11:19
viper9709: 推~ 05/09 23:06