我想知道執行以下操作是否更好:
String currentUserName = user.getName();
Integer currentUserAge = user.getAge();
User foundUser = userRepository.findByAgeAndUsername(currentUserName, currentUserAge);
或者
User foundUser = userRepository.findByAgeAndUsername(user.getName(), user.getAge());
其中一個比另一個更高效嗎?我想做第一個,因為它增強了代碼庫的可讀性和可理解性,但它看起來確實很冗長,并且在 IDE 上占用了大量文字空間(不是記憶體空間,盡管可能是這樣?)。我正在尋找這些方法的任何優點或缺點,而不僅僅是在這個特定示例中。
謝謝
uj5u.com熱心網友回復:
在性能方面確實沒有區別。在你給出的例子中,它真的沒有什么區別。
- 但 -
這里有兩個重要方面:
嘗試將資訊存盤在 1 個地方。當您將資訊存盤在兩個地方時,資訊可能會不同步。一個地方可以說一件事,另一個地方可以說另一件事。在這種情況下幾乎可以肯定沒有關系,但作為一種編程習慣,如果您可以從源中檢索,最好不要存盤在臨時變數中(盡管有時有理由存盤)
代碼清晰:通過創建變數
userName和userAge變數,它可以讓你更清楚(更詳細)你在做什么。(您也可以使用注釋來做同樣的事情)
uj5u.com熱心網友回復:
始終使您的代碼盡可能可讀和易于理解。您應該假設其他人在某個時候需要除錯、修改、擴展或使用您的代碼。在某種程度上,是什么讓代碼的可讀性或多或少取決于個人喜好,但在這種情況下,我同意您的看法,即第一個選項更易于閱讀和理解。
它在 IDE 中占用更多空間并不是什么大問題。一些專案有編碼指南,例如“一種方法不應超過 X 行”。這個想法是能夠在不滾動太多的情況下閱讀整個方法。為了滿足這樣的指導方針,有時程式員會盡可能地塞進一行,這違背了指導方針的可讀性目標,所以不要那樣做。如果一個方法變得太長,這是一個很好的跡象,表明它做得太多了,所以尋找一種方法將它分成合理的部分。
關于性能,我總是提醒人們解決他們遇到的問題!如果您有性能問題,那好吧,尋找解決方法。如果您沒有性能問題,那么不要浪費時間嘗試修復它!你有足夠多的問題需要解決,對吧?此外,編譯器和解釋器真的非常擅長尋找提高性能的方法。讓那些人擔心這件事。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/360318.html
