前缀命名
如果您是第一次查看Takes或Cactoos的源代碼,則很可能會像其他名稱一樣被命名約定觸發,這意味著大多數類名稱都有兩個字母的前綴: BkSafe , RqFake , RsWithStatus , TkGzip等。 老實說,我還沒有見過一個Java開發人員會對這種約定一見鐘情。 但是,我看到許多現在愛上它的人。 本文適用于那些有興趣從第一類轉到第二類的讀者。
布法羅66(1998),文森特·加洛(Vincent Gallo)任何大小合適的軟件包,模塊,庫或框架都具有大量的類。 好吧,它必須有 。 如果沒有,則肯定是其設計存在問題。 因此,如何命名這些類始終存在問題。 最簡單,最明顯的方法是用在Java及其旗艦框架Spring中的方法 :使類名盡可能具有描述性且盡可能長。 以下是一些示例 :
- ObjectFactoryCreatingFactoryBean
- SimpleBeanFactoryAwareAspectInstanceFactory
- TransactionAwarePersistenceManagerFactoryProxy
- AbstractAnnotationConfigDispatcherServletInitializer
這是垃圾,不是嗎?
DDD范式是一種更復雜,更耗時的類命名方式,它建議在現實世界中的實體之后使用名詞 ,例如港口,汽車,書籍,故事,用戶,插座等。 對于軟件架構師而言,確定正確的實體是一項巨大的挑戰。 一個不好的人只會求助于ConnectionFactoryUtils或DefaultListableBeanFactory并稱之為一天。 一個更專業的人可能要花費數小時或數天的時間,但最終會提出更多由域驅動的東西。
假設您是后者,并且您設法找到了正確的名詞。 您的域中將有多少個? 我相信有幾十個。 即使應用程序非常復雜,問題域中的實體也不會超過30個。 但是, 如上所述 ,類的數量將更大,有時超過一千或更多。 因此,您將面臨的第二個問題是如何命名“帶有說明符的實體”的類。 例如,您有一個端口,還有一個隨機端口和一個TCP端口,一個端口已經關閉,一個端口尚未打開,依此類推。
會有帶有形容詞的名詞 :隨機端口,關閉端口,打開端口,TCP端口,斷開端口等等。 您如何命名這些班級? 也許就這么簡單: RandomPort , OpenedPort , ClosedPort , TcpPort 。 也許可以,但是我認為最好將所有類的公共Port部分轉換為公共前綴Pt :
- PtRandom
- PtOpened
- PtClosed
- PtTcp
這種方法的唯一缺點是,新手可能不知道Pt前綴的含義。 確實,學習它可能需要一些時間(幾分鐘)。 但是,這樣做的好處是更大的:一旦您了解了應用程序中存在的所有前綴(由于域中的實體數量非常有限,所以只有少數前綴),您可以立即了解該前綴的哪一部分該類所屬的類型層次結構(這來自Takes ):
一旦看到Rq前綴,您將立即了解到您正在處理org.takes.Request接口的實現。 不是來自JDK的ServletRequest ,不是來自Spring的HttpRequest ,也不是來自OkHttp的 Request 。 您知道這是Takes的Request !
因此,通過使用短前綴而不是名詞,我們使代碼更加清晰。 我們消除了一遍又一遍重復使用同一名詞的噪音,并使引用變得更容易。 每個前綴都是類型層次結構中類的唯一定位器。
翻譯自: https://www.javacodegeeks.com/2020/03/prefixed-naming.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
- 上一篇: linux 进程启动时间(linux 进
- 下一篇: linux设置时间命令(linux设置