金慶的專欄
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)
相冊
公告照片
搜索
積分與排名
積分 - 654065
排名 - 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" 錯誤(11017)
2.?SVN中邪惡的replace(10939)
3.?VS2005編譯libevent(10404)
4.?混音算法的學習與研究(10184)
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精品久久只有精品
|
97精品依人久久久大香线蕉97
|
国产婷婷成人久久Av免费高清
|
精品熟女少妇a∨免费久久
|
国产精品久久国产精品99盘
|
精品无码久久久久国产动漫3d
|
久久久九九有精品国产
|
国产精品久久久久久久人人看
|
Xx性欧美肥妇精品久久久久久
|
亚洲精品乱码久久久久久久久久久久
|
久久精品成人免费国产片小草
|
久久久久亚洲av综合波多野结衣
|
久久久青草青青亚洲国产免观
|
久久久久久久综合狠狠综合
|
伊色综合久久之综合久久
|
成人久久综合网
|
人妻无码中文久久久久专区
|
囯产精品久久久久久久久蜜桃
|
亚洲午夜精品久久久久久人妖
|
狠狠色丁香婷婷久久综合不卡
|
精品久久久久久久久中文字幕
|
精品伊人久久大线蕉色首页
|
人人狠狠综合久久亚洲高清
|
a级毛片无码兔费真人久久
|
亚洲色欲久久久综合网
|
精品久久人人爽天天玩人人妻
|
久久精品亚洲精品国产欧美
|
热re99久久精品国产99热
|
久久精品国产亚洲av水果派
|
国内精品伊人久久久久
|
久久久久人妻一区精品色
|
亚洲AV乱码久久精品蜜桃
|
久久人人爽人人爽人人片AV麻烦
|
看全色黄大色大片免费久久久
|
国产麻豆精品久久一二三
|
欧美午夜精品久久久久免费视
|
色婷婷噜噜久久国产精品12p
|
亚洲欧洲精品成人久久奇米网
|