金慶的專欄
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)
相冊
公告照片
搜索
積分與排名
積分 - 653959
排名 - 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" 錯誤(11016)
2.?SVN中邪惡的replace(10938)
3.?VS2005編譯libevent(10404)
4.?混音算法的學習與研究(10183)
5.?C調用lua腳本的效率測試(9003)
評論排行榜
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
金慶
閱讀(344)
評論(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 © 金慶
偷偷做久久久久网站
|
精品久久久久久99人妻
|
伊人久久无码中文字幕
|
国内精品综合久久久40p
|
老色鬼久久亚洲AV综合
|
青青草原1769久久免费播放
|
精品久久久久久无码国产
|
一本大道久久东京热无码AV
|
久久久久无码精品国产
|
久久久久综合中文字幕
|
久久久久AV综合网成人
|
国产精品午夜久久
|
亚洲精品乱码久久久久久中文字幕
|
99久久国语露脸精品国产
|
亚洲Av无码国产情品久久
|
国产精品一久久香蕉国产线看
|
婷婷久久精品国产
|
久久国产精品成人免费
|
中文字幕久久精品无码
|
久久久精品视频免费观看
|
大伊人青草狠狠久久
|
久久丫精品国产亚洲av
|
精品久久久久久无码不卡
|
国产综合精品久久亚洲
|
97久久久久人妻精品专区
|
国内精品人妻无码久久久影院导航
|
国产精品免费久久久久久久久
|
色欲久久久天天天综合网
|
亚洲午夜精品久久久久久app
|
品成人欧美大片久久国产欧美...
|
三上悠亚久久精品
|
97久久国产露脸精品国产
|
久久99热这里只频精品6
|
久久久这里只有精品加勒比
|
激情五月综合综合久久69
|
精品久久久久中文字幕一区
|
久久天堂电影网
|
狠狠色综合网站久久久久久久
|
精品无码人妻久久久久久
|
欧美午夜精品久久久久久浪潮
|
久久天天躁狠狠躁夜夜不卡
|