金慶的專欄
C++博客
::
首頁
::
新隨筆
::
聯系
::
聚合
::
管理
::
423 隨筆 :: 0 文章 :: 454 評論 :: 0 Trackbacks
公告
我的隨筆
我的評論
我參與的隨筆
留言簿
(12)
給我留言
查看公開留言
查看私人留言
隨筆分類
(502)
1. C/C++(166)
(rss)
2. 網游開發(108)
(rss)
3. Golang(20)
(rss)
4. Linux/Unix(30)
(rss)
5. 軟工與管理(44)
(rss)
6. Python(23)
(rss)
7. Erlang(18)
(rss)
8. Rust(16)
(rss)
9. 其它(77)
(rss)
隨筆檔案
(423)
2023年1月 (1)
2022年11月 (1)
2022年10月 (2)
2022年9月 (1)
2022年4月 (6)
2022年1月 (2)
2021年12月 (4)
2021年11月 (6)
2021年10月 (2)
2021年9月 (2)
2021年8月 (7)
2021年7月 (2)
2021年5月 (2)
2021年3月 (1)
2021年2月 (2)
2021年1月 (1)
2020年12月 (1)
2020年10月 (1)
2020年9月 (5)
2020年8月 (1)
2020年7月 (1)
2020年6月 (1)
2020年4月 (2)
2020年3月 (3)
2020年2月 (3)
2020年1月 (1)
2019年12月 (1)
2019年9月 (2)
2019年4月 (2)
2019年1月 (1)
2018年12月 (1)
2018年11月 (3)
2018年10月 (1)
2018年9月 (3)
2018年8月 (3)
2018年7月 (2)
2018年6月 (4)
2018年5月 (4)
2018年4月 (4)
2018年3月 (1)
2018年1月 (2)
2017年12月 (2)
2017年11月 (3)
2017年10月 (3)
2017年8月 (7)
2017年7月 (1)
2017年6月 (1)
2017年5月 (3)
2017年4月 (3)
2017年3月 (3)
2017年2月 (2)
2017年1月 (2)
2016年12月 (5)
2016年11月 (2)
2016年10月 (2)
2016年9月 (1)
2016年8月 (6)
2016年7月 (3)
2016年6月 (2)
2016年5月 (4)
2016年4月 (2)
2016年3月 (2)
2016年1月 (3)
2015年12月 (2)
2015年11月 (2)
2015年10月 (1)
2015年8月 (2)
2015年7月 (1)
2015年6月 (1)
2015年5月 (4)
2015年4月 (3)
2015年3月 (4)
2015年2月 (5)
2015年1月 (4)
2014年12月 (3)
2014年11月 (3)
2014年10月 (2)
2014年9月 (3)
2014年8月 (1)
2014年4月 (4)
2014年3月 (1)
2014年2月 (4)
2014年1月 (5)
2013年12月 (5)
2013年11月 (5)
2013年9月 (2)
2013年8月 (2)
2013年7月 (2)
2013年6月 (2)
2013年5月 (1)
2013年1月 (2)
2012年12月 (1)
2012年11月 (1)
2012年9月 (1)
2012年8月 (3)
2012年7月 (2)
2012年6月 (1)
2012年4月 (3)
2012年3月 (2)
2012年2月 (3)
2012年1月 (2)
2011年11月 (2)
2011年10月 (3)
2011年9月 (2)
2011年8月 (2)
2011年7月 (3)
2011年6月 (2)
2011年5月 (3)
2011年1月 (2)
2010年12月 (1)
2010年11月 (2)
2010年10月 (2)
2010年9月 (3)
2010年8月 (2)
2010年7月 (3)
2010年6月 (1)
2010年5月 (3)
2010年4月 (3)
2010年3月 (5)
2010年2月 (4)
2010年1月 (4)
2009年12月 (2)
2009年11月 (3)
2009年10月 (4)
2009年9月 (3)
2009年8月 (2)
2009年7月 (4)
2009年6月 (1)
2009年5月 (3)
2009年4月 (4)
2009年3月 (2)
2009年2月 (5)
2009年1月 (1)
2008年12月 (7)
2008年11月 (4)
2008年10月 (1)
2008年9月 (3)
2008年8月 (4)
2008年7月 (3)
2008年6月 (4)
2008年5月 (6)
2008年4月 (7)
2008年3月 (6)
2008年1月 (5)
2007年12月 (7)
2007年11月 (4)
2007年10月 (5)
2007年9月 (6)
2007年8月 (8)
2007年7月 (5)
相冊
公告照片
搜索
積分與排名
積分 - 659023
排名 - 25
最新評論
1.?re: boost::asio::spawn 將一統C++網絡庫
asio 成為C++首選網絡庫
--linda
2.?re: log4cxx中文輸出錯誤補丁
評論內容較長,點擊標題查看
--金慶
3.?re: mingw編譯OrzNet
能發送一個mingw編譯好的OrzNet庫給我嗎? liuweiqcxy@163.com
謝謝!
--劉威
4.?re: log4cxx中文輸出錯誤補丁
評論內容較長,點擊標題查看
--bigbad
5.?re: log4cxx中文輸出錯誤補丁
評論內容較長,點擊標題查看
--bigbad
閱讀排行榜
1.?"multiple definition of" 錯誤(11054)
2.?SVN中邪惡的replace(10972)
3.?VS2005編譯libevent(10429)
4.?混音算法的學習與研究(10230)
5.?C調用lua腳本的效率測試(9019)
評論排行榜
1.?VC6正在被拋棄(35)
2.?VS2005編譯libevent(21)
3.?"multiple definition of" 錯誤(18)
4.?C++引用優于指針(17)
5.?ACE與ASIO之間關于Socket編程的比較(16)
命名
# 命名
摘自:[警惕軟件復雜度困局][1]
軟件中的API、方法、變量的命名,對于理解代碼的邏輯、范圍非常重要,也是設計者清晰傳達意圖的關鍵。
然而,在很多的項目里我們沒有給Naming /命名足夠的重視。
我們的代碼一般會和一些項目關聯,但是需要注意的是項目是抽象的,而代碼是具體的。
項目或者產品可以隨意一些命名,如阿里云喜歡用中國古代神話(飛天、伏羲、女媧)命名系統,
K8s也是來自于希臘神話,這些都沒有問題。
而代碼中的API、變量、方法不能這樣命名。
一個不好的例子是前一段我們的Cluster API 被命名為Trident API(三叉戟),
設想一下代碼中的對象叫Trident時,我們如何理解在這個對象應該具備的行為?
再對比一下K8s中的資源:Pod, ReplicaSet, Service, ClusterIP,
我們會注意到都是清晰、簡單、直接符合其對象特征的命名。名實相符可以很大程度上降低理解該對象的成本。
有人說“Naming is the most difficult part of software engineering”,
或許也不完全是個玩笑話:Naming的難度在于對于模型的深入思考和抽象,而這往往確實是很難的。
需要注意的是:
(a)Intention vs what it is
需要避免用“是什么”來命名,要用“for what / intention”。“是什么”來命名是會很容易將實現細節。
比如我們用 LeakedBarrel做rate limiting,這個類最好叫 RateLimiter,而不是LeakedBarrel:
前者定義了意圖(做什么的),后者 描述了具體實現,而具體實現可能會變化。
再比如 Cache vs FixedSizeHashMap,前者也是更好的命名。
(b)命名需要符合當前抽象的層級
首先我們軟件需要始終有清晰的抽象和分層。
事實上我們Naming時遇到困難,很多就是因為軟件已經缺乏明確的抽象和分層帶來的表象而已。
[1]https://mp.weixin.qq.com/s?__biz=MzIzOTU0NTQ0MA==&mid=2247498895&idx=1&sn=35b1d00e367c18c3d4ed7d4b15b38996&chksm=e92ac180de5d4896fd5d789ffbe8c963986717b634f2dac09821c2b3ab2270a42f4a1c006ff5&scene=21#wechat_redirect
posted on 2020-12-31 09:45
金慶
閱讀(351)
評論(0)
編輯
收藏
引用
所屬分類:
5. 軟工與管理
只有注冊用戶
登錄
后才能發表評論。
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
相關文章:
TortoiseGit is OK but GitExtensions fails
命名
SVN重命名時不要更改內容
刪除隱性的git submodule
用docker stack開啟redis集群
Lua區分公有私有接口
Lua53 premake
ejabberd開發和部署
Windows運行GitStats
CMake搜索Boost1.57失敗及解決
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Powered by:
C++博客
Copyright © 金慶
国产精品免费久久久久久久久
|
久久WWW免费人成—看片
|
国产精品欧美久久久天天影视
|
乱亲女H秽乱长久久久
|
99久久国产亚洲高清观看2024
|
久久国产美女免费观看精品
|
久久夜色精品国产欧美乱
|
2022年国产精品久久久久
|
久久国产乱子伦精品免费午夜
|
久久久亚洲裙底偷窥综合
|
久久久久久亚洲精品影院
|
人妻少妇久久中文字幕一区二区
|
国产欧美久久一区二区
|
欧美粉嫩小泬久久久久久久
|
国产亚洲精品自在久久
|
久久有码中文字幕
|
伊人久久大香线蕉精品
|
亚洲va久久久噜噜噜久久男同
|
久久这里只精品国产99热
|
久久久久青草线蕉综合超碰
|
国产精品热久久无码av
|
久久无码人妻一区二区三区午夜
|
国产精品欧美久久久久无广告
|
青青草原综合久久大伊人
|
国产精品成人久久久久久久
|
人妻无码中文久久久久专区
|
午夜精品久久久久成人
|
久久综合综合久久综合
|
伊人久久大香线焦AV综合影院
|
久久天天躁狠狠躁夜夜2020老熟妇
|
99久久国产主播综合精品
|
国产精品久久久久…
|
精品免费久久久久久久
|
午夜精品久久久久久99热
|
久久久久亚洲AV成人网人人网站
|
久久青草国产精品一区
|
波多野结衣中文字幕久久
|
少妇高潮惨叫久久久久久
|
国产成人精品综合久久久久
|
区久久AAA片69亚洲
|
人妻无码久久一区二区三区免费
|