台灣最大程式設計社群網站
線上人數
479
 
會員總數:245788
討論主題:189423
歡迎您免費加入會員
討論區列表 >> ASP.NET >> 該怎麼命名Class與分類(希望老手能分享經驗)
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
該怎麼命名Class與分類(希望老手能分享經驗)
價值 : 50 QP  點閱數:176 回應數:3
樓主


門外漢
0 5
340 2
發送站內信

想請版上有經驗的大大能不能分享一下開發的經驗,一般會如何分類自己寫的class與如何命名呢?
網路上看到不少程式碼的class命名會叫做XXXHelper.class XXXUtil.class XXXManager.class 等等的 ,有點搞不太懂該如何分類
我只知道Util一般是公用函示,但假設我今天要寫一支加密解密的class 大家會是再開一支 "加解密Util.class" 還是 在原先的 XXXUtil.class加入加解密的函數呢

還有一個就是 如果我的Class有分基底類別與子類
假設Man跟Women都繼承Personal,
Dog跟Cat都繼承Aninal,
那麼大家的習慣是會開一個資料夾放 Personal Man Women,另一個資料夾放 Aninal Dog Cat ,
還是把 Personal Aninal放一起 , Man Women Dog Cat 放一起呢? 或是怎麼分類會比較好,
每次案子程式一多我就容易亂,不好維護,很想知道大家如何保持程式的可維護性,希望有老手可以分享開發經驗,謝謝。

搜尋相關Tags的文章: [ 規範 ] , [ 規則 ] , [ 命名 ] , [ 經驗分想 ] , [ 分類 ] , [ 習慣 ] ,
本篇文章發表於2020-05-11 11:38
1樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
我只能說說我命名的方式。沒辦法說我的是對的。
給你參考。

一般我的命名,會用「分類名」+「類別型」為主要命名方式。

如模組類的類別型是Model。則使用在user分類上的。
我的命名就會是userModel借此區分。

類別我大多是區分「orm」「模組model」「控制(Cont)(Util)」「資源型(Repos)」「物件式(class)(Lib)」
如果是有繼承性的類別。如主類別為「demoClass」來說,其對應的子繼承命名則會是「demo_d1Class」來區分,有時會用「demoClass_D1」會比較方便程式對應處理。

分類的方面就看個人了。像我大多只會用大項分類。比較少用細項分類處理。

以上是我目前的命名的方式。可以提供給你參考。
本篇文章回覆於2020-05-13 13:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

誰是誰
檢舉此回應
分類是必要的,但方式卻不一定。
通常是著重在內聚性。
本篇文章回覆於2020-05-15 01:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
最有價值解答

Allen
捐贈 VP 給 Allen 檢舉此回應
>>假設我今天要寫一支加密解密的class 大家會是再開一支 "加解密Util.class" 還是 在原先的 XXXUtil.class加入加解密的函數
基於單一職責原則, 如果原本的Util工作內容是負責縮圖, 我就會另外寫一支加解密的class,不會混用; 此外, 由於我是接專案, 在不同的專案裡, 也許不會同時用到縮圖及加解密, 因此, 我甚至會分成二支dll 檔

>>那麼大家的習慣是會開一個資料夾放 Personal Man Women,另一個資料夾放 Aninal Dog Cat ,
如果我需要在既有系統裡,加寫一個"電子公文流程模組", 它需要10個類別及介面, 我會先考慮另外寫一個dll專案,完成之後再引用到本系統; 如果公司有規定必需要寫在同一系統裡面, 我會考慮建立一個EForm 資料夾, 放入需要的類別, 這些類別裡就算有幾個是繼承關係,我也不會再建子資料夾, 畢竟類別很少, 不會難閱讀

>>每次案子程式一多我就容易亂,不好維護
如果是接專案, 每一個專案我通常會寫成多支project, 例如前後台各一個網站專案, 商業邏輯一個或多個dll專案, 資料存取單獨一個專案, 如果有程式要外包給其他廠商,也要考慮將介面抽離成獨立專案並交給廠商,請他們寫程式時,要實作我指定的介面
因此, 要怎麼分其實還挺主觀的,也要看實際狀況, 我寫的專案, 商業邏輯的class數量大約是從幾個,到一百多個, 感覺是還好, 就算商業邏輯的一百多個類別都放在一起也不會覺得難找; 不過如果是比較獨立的功能, 是可以考慮單獨放在一個資料夾或單獨一個dll專案(日後比較好重複使用)

本篇文章回覆於2020-05-16 10:35
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.