日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

c++ 命名规则 private_【译】代码中如何写出更有意义的命名

發(fā)布時間:2024/1/23 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++ 命名规则 private_【译】代码中如何写出更有意义的命名 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

作為一名開發(fā)人員,在編碼過程中,你總會花很多時間來思考如何正確命名。因為名稱無處不在,你需要考慮文件名、類名、方法名和變量名。

雖然我們需要花費很多時間,但是為了更好的命名還是值得的。本文我將向你介紹幾個能夠幫助你編寫優(yōu)質命名的簡單規(guī)則。命名這件事本身也是一門藝術。

使用顯示意圖的名稱

名稱直接顯示意圖這件事說起來容易做起來難。你是否經常遇到一些難以判斷其用途的名稱?

一個好的經驗法則是:如果一個名稱需要注釋,那么它本身就是不能說明意圖的。

這個代碼片段就演示了一個不能顯示意圖的變量命名。

<?phpprivate $s; // Time in seconds

變量$s什么也說明不了。它沒有任何時間流逝的感覺,我們最好是能選擇一個名稱指定測量內容和測量單位。下面這些變量名看起來就好很多。

<?phpprivate $days_since_creation; private $elapsed_time_in_seconds; private $seconds_since_last_modified;

選擇一個可以顯示意圖的名稱能使一段代碼更容易理解,從而降低維護成本。雖然選擇的過程會花費一些時間,但這是為了節(jié)省更多的時間。我們來一起看看下面這個例子。

<?phpfunction getList() {$list1 = [];foreach ($this->the_list as $x) {if ($x % 2 != 0) {$list1[] = $x;}}return $list1; }function getOddNumbers() {$odd_numbers = [];foreach ($this->numbers as $number) {if (isOdd($number)) {$odd_numbers[] = $number;}}return $odd_numbers; }

你能馬上說出 getList 函數(shù)的作用嗎?恐怕需要看完具體實現(xiàn)之后才能說出來吧。而這段代碼本身沒有什么復雜的邏輯,一共3個變量和不到10行的邏輯。

接下來我們再來看看 getOddNumbers 這個函數(shù),有沒有發(fā)現(xiàn),它的邏輯和 getList 其實是一樣的。并且沒有更加代碼的復雜性,變量數(shù)量相同,代碼嵌套層級也相同,唯一不同的是代碼寫的更加清晰了。但你卻可以通過函數(shù)名一眼看出這個函數(shù)的作用。

通過上面的例子我們發(fā)現(xiàn),只需要在命名上做一些小小的改變,就能夠輕易的告訴別人你的代碼的作用。

避免虛假信息

你應該避免留下一些能夠掩蓋代碼真實意圖的錯誤線索。

你應該避免使用一些有歧義的單詞,例如不要把產品集合命名為 productList,除非它本身就是一個 List 類型的對象,這有可能會誤導別人,更好的名字應該是 products。

命名中千萬不要使用大寫的 o 或者小寫的 L 因為它們看起來就像0和1一樣。

對于相近的名稱也要小心使用,例如,你讓你來分辨 SomeMethodForEfficientHandlingOfFiles 和 SomeMethodForEfficientStorageOfFiles 這兩個單詞時,你需要用多長時間,我相信大多數(shù)人第一眼看上去,就認為它倆完全一樣。

做出有意義的區(qū)分

數(shù)字序列的命名不是命名的好方法,這樣的名字是沒有任何意義的,也不能夠展示出作者的意圖。

我們來看一下這個例子

<?phppublic function duplicateArray($arr1, &$arr2) {foreach ($arr1 as $key => $value) {$arr2[$key] = $value;} }

這段代碼中,如果我們用 $source 和 #destination 來代替 $arr1和 $arr2 會更好。

使用你知道發(fā)音的名稱

如果你們不知道名字的發(fā)音,那么你和人交流起來就會像白癡一樣,這就很麻煩,畢竟社交是編程中比較重要的一個環(huán)節(jié)。你的命名最好是每個人都能夠通過發(fā)音就馬上就能想到的單詞。

假如我們有一個變量命名為 $xsq 并且這在公司內是一個很重要的變量,想象一下你日常和同事的對話:

"Hey, what about that variable eke ess kjew?"

"You mean the access queue?"

有些開發(fā)者會嘗試把變量湊成一個單詞的發(fā)音,而有些開發(fā)者則會選擇讀單詞的字母拼寫。

使用便于搜索的名稱

由一個字母組成的名稱的不好之處在于難以定位。數(shù)字常量也有同樣的問題,所以我們在開發(fā)過程中需要把魔數(shù)替換為常量。在代碼里搜索數(shù)字8是一件很困難的事情,但是如果你搜索常量 MAX_BLOCKS_DISPLAYED 就會簡單很多。單字母命名的唯一用例是在簡短方法中的局部變量。

成員屬性前綴

不要使用成員屬性前綴。

有些開發(fā)者習慣把淚中所有的私有變量用下劃線為前綴命名。不要這么做,你應該保證的是,你的類和方法要足夠小,以至于你不需要使用這些前綴。

或者,你可以使用IDE(或安裝插件)來根據(jù)變量的使用范圍給變量著色。

把你的代碼想象成一個露營地,讓它盡可能的保持整潔。

原文鏈接

https://medium.com/better-programming/how-to-create-meaningful-names-in-code-20d7476537d4

總結

以上,就是創(chuàng)建有意義命名的一些原則和方法。有任何問題歡迎給我留言,本文靈感來源于《代碼整潔之道》,推薦大家都讀一下這本書。


原文結束了,我個人還是比較認可作者的觀點的,代碼中的各種命名還是要花時間去琢磨琢磨的,這里也分享一下我在工作中通過 code review 的一些小感悟吧。在代碼中,文件名、類名、方法名,這些不要嫌長,要盡可能的達意,并且可讀。而對于一些局部變量,則可以適當放寬限制,如果太長的話會導致代碼中有很多不必要的換行,但是也最好不要出現(xiàn) a1 、 a2 這樣的命名。因為這種是完全不能理解它代表什么的。

這篇文章在 medium 上收獲的 3k+ 的 claps。所以就想著翻譯過來推薦給大家,同時也推薦大家讀一讀《代碼整潔之道》。

總結

以上是生活随笔為你收集整理的c++ 命名规则 private_【译】代码中如何写出更有意义的命名的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。