到底要不要拆分函式

2021-09-22 07:17:10 字數 644 閱讀 6381

問題描述:

怎樣的函式才算是有意義的函式?

比如這樣的函式有沒有意義?

(1)只被呼叫一次的函式

(2)只有一句實現內容的函式

(3)函式很多的引數

比如乙個函式,有很多區域性變數,如果要拆成多個函式,那麼每個函式都要傳遞這些區域性變數,會造成函式的引數很多。

在拆分函式這個問題上,我們要考慮我們在開發過程中,是以寫為主?還是以讀為主?

uncle bob剛好在這方便做過一些統計,他發現,即使是在開發過程中,大部分時間也是在讀**的。

那麼更何況後期維護,即使是修改**,也是要以讀懂**為基礎的。

很顯然,我們的開發是以讀為主的,因此,便於閱讀的**就是有意義的**。適當地犧牲「寫的方便性」來實現「讀的方便性」是有必要的。

就事論事:

(1)只被呼叫一次的函式是否有意義?

答:如果它有助於閱讀,就是有意義的,比如init();

(2)只有一句實現內容的函式是否有意義?

答:如果它有助於閱讀,就是有意義的,比如將多個判斷條件合併

(3)有很引數的函式是否有意義?

答:如果「讀得方便」的代價是「寫得很不方便」,這並不意味著它不應該被拆分。而是說明這個函式本身設計不合理。它不只要被拆分,更要被重構。

jiahuafu

到底要不要拆分函式

怎樣的函式才算是有意義的函式?比如這樣的函式有沒有意義?1 只被呼叫一次的函式 2 只有一句實現內容的函式 3 函式很多的引數 比如乙個函式,有很多區域性變數,如果要拆成多個函式,那麼每個函式都要傳遞這些區域性變數,會造成函式的引數很多。在拆分函式這個問題上,我們要考慮我們在開發過程中,是以寫為主?...

到底要不要拆分函式

怎樣的函式才算是有意義的函式?比如這樣的函式有沒有意義?1 只被呼叫一次的函式 2 只有一句實現內容的函式 3 函式很多的引數 比如乙個函式,有很多區域性變數,如果要拆成多個函式,那麼每個函式都要傳遞這些區域性變數,會造成函式的引數很多。在拆分函式這個問題上,我們要考慮我們在開發過程中,是以寫為主?...

企業到底要不要選擇PaaS

數位化程序正在用遠超以往的速度改變傳統商業模式,創業公司能夠以極低的成本構建高效的應用,而傳統企業則有些猝不及防,正在試圖努力跟上不斷變化的商業環境。對於創業公司來說,雲計算是他們實現速度 敏捷和成本效益的法寶,而paas platform as a service 又在其中扮演著重要的角色。與大家...