精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

史上最糟糕的兩個變量名

開發 后端
每次在寫代碼的時候,給事物起名字又是不可回避的工作。無論是程序變量名還是數據庫表名或者是表里的列名,甚至是文件系統中的文件名,以及你的項目名稱、產品名稱,給這些東西起名字可不是個輕松活兒。

作為一個程序員,“起名字”是他們工作中非常重要的一部分。Phil Karlton就說過:“在計算機科學領域,有兩大難題,如何驗證緩存和如何給各種東西命名。”雖然很難,但是每次在寫代碼的時候,給事物起名字又是不可回避的工作。無論是程序變量名還是數據庫表名或者是表里的列名,甚至是文件系統中的文件名,以及你的項目名稱、產品名稱,給這些東西起名字可不是個輕松活兒。

糟糕的命名方式隨處可見。你會發現,有的變量名字起得太短,根本沒法提供足夠的描述信息。或許有這個問題的人都做過TRS-80 BASIC程序員,在這種BASIC語言里,無論你起多長的變量名,只有名字的頭兩個字母有效,所以那個時候的程序員不得不在鍵盤邊兒上放個筆記本,以便將很短的變量名稱和他們的對應含義記錄下來,這樣才能不搞混淆。

有的時候,你會發現這樣的命名方法:直接將變量名稱中的原音字母省略,以此來縮短變量的長度。這種方法被用來替代常用的“截斷法”,也就是簡單地把字母截斷來縮短長度。比如你可以用$cstmr(原音省略)來代替$cust(直接截斷). 但是,對于customers(顧客)和costumers(服裝提供商)這兩個單詞來說,原音省略法就會造成混淆(customers和costumers采用原音省略法,其結果都是cstmr)。更糟糕的是,$cstmr缺乏原音字母,打字的時候會更加別扭,而且從讀音的角度來說,也很難對其進行發音。

TSR80計算機,只支持4位的變量名

還有一種人為的特殊命名方式,有的時候程序的作者只是為了小幽一默,所以起了些有趣的名字。我就曾經見到過有人把循環變量命名為$crap (crap在英語里是輕微的咒罵,跟damm,shit這種詞語差不多——譯者注),我的一個同事告訴我,他在給一段代碼做整理的時候,看到過有個函數被命名為:THE_LONE_RANGER_RIDES_AGAIN()。雖然這樣的命名方式非常特殊,但是他們并不屬于我說的“糟糕”的命名的范疇。

雖然我很清楚,對于命名規范這種事情,大家是公說公有理,婆說婆有理,但是,我還是非常自信地宣布,我認為,史上最糟糕的命名是:$data!

是的!必須是$data! 這個命名完全是循環定義,實際上就是一句廢話。就仿佛你把你們家所有的東西都扔到一個行李箱里,然后在行李箱上面貼個條,赫然寫著:“東西”

正確變量命名應該寫清楚變量的數據類型。因此在命名是考慮數據類型是一個很好的提升命名質量的辦法。我有一次在看一段讀數據庫表記錄的代碼時,看到了$data這個名字,大概像下面這樣:

  1. $data = read_record();   
  2. print "ID = ", $data["CUSTOMER_ID"]; 

如果這時候問問:“$data是什么數據類型呢?”,然后你就很想給它換個名字了。把名字改成$record是一個好的開始。進一步改成$custormer_record,就更好一些了。

模糊的命名相當糟糕,糟糕程度緊隨其后的就是,長得幾乎一樣,無法分辨的變量名。因此,有史以來第二糟糕的變量名就是: $data2.

總的來說,任何僅僅依靠數字編號來區分的變量名都應該被重構。馬上舉個例子給你看,你就明白了:

  1. $total = $price * $qty;     
  2. $total2 = $total - $discount;     
  3. $total2 += $total2 * $taxrate;     
  4. $total3 = $purchase_order_value + $available_credit;     
  5. if ( $total2 < $total3 ) {   
  6.     print "You can't afford this order.";   

你可以發現,要讀懂這個代碼就跟讀甲骨文一樣痛苦。很明顯,這個程序的目的就是要計算訂單的總花費,$total. 如果程序的邏輯沒有問題,那么$total這個變量名也算是恰如其分。但是,偏偏有人修改了這個程序,給添加了計算折扣和稅率的功能,然后他還在變量命名上偷懶,直接起了個$total2, 更可恨的是,還有其他人在這個程序里計算了用戶的可用賬戶金額,然后直接起名叫$total3!

真正倒霉催的是下面這行代碼:

  1. if ( $total2 < $total3 )  

如果你不回頭看之前的代碼,要想知道這句代碼的意義是完全不可能的。所以你必須往回閱讀,看看哪個變量究竟是什么意思。

如果你看到了類似像$total2這樣的變量,那就應該把這個名字改得更加具體一些?;?分鐘的時間讓這些變量名稱變得更加合理。這個層面上的軟件重構是最簡單,代價最小,也是最安全的,尤其是在你要修改的變量是個局部變量的時候。

讓我們用最簡單的“搜索-替換”功能來解決我們之前發現的問題

  1. $order_total = $price * $qty;   
  2. $payable_total = $order_total - $discount;   
  3. $payable_total += $payable_total * $taxrate;   
  4. $available_funds = $purchase_order_value + $available_credit;   
  5. if ( $payable_total < $available_funds ) {    
  6.     print "You can't afford this order.";     

經過修改后,唯一變化的就是變量名,而且代碼變得簡單易懂了?,F在對于每個_total,就不存在二義性的問題了。看看我們發現了什么:原先if語句中的兩個比較變量的位置寫反了。有效的命名方法讓我們能夠更快地發現錯誤。

通常,我們都認為用數字作為變量的結尾是不好的命名方法,但是有一個例外。如果變量描述的實體本身就是以數字結尾的,那變量名***也是以數字結尾。比如,如果我們要定義一個SHA-1哈希實體,那干脆就把它命名為$sha1,這樣就很好,你完全沒有必要把它搞成$sha_one,然后來避免在變量名中使用數字。

在我完成了對本文的***版后,我創立了自己的命名規則,并使用Perl::Critic包來檢測上述提到的兩種命名問題。我制作的插件 Perl::Critic::Bangs 可以檢測出這兩種問題:ProhibitVagueNames 和 ProhibitNumberNames.

還有哪些其他的糟糕的命名方法逼得你發瘋?你自己有去做些什么糾正這些錯誤么?

原文鏈接:http://blog.jobbole.com/18304/#4_2,3_0_c9d1ea616a2788_298

【編輯推薦】

  1. 讀代碼整潔之道
  2. 提高面試代碼質量的三要素
  3. 編程是一種藝術創作
  4. 開發人員眼中***的代碼編輯器是什么
  5. 你的代碼值多少錢 ?你算過嗎
責任編輯:張偉 來源: 伯樂在線
相關推薦

2015-04-20 17:12:53

變量變量名最糟糕變量名

2013-01-06 17:40:10

GitHub宕機事故

2014-07-15 11:10:01

面試題面試

2012-12-28 09:47:07

程序員代碼編程

2013-09-29 13:40:21

項目

2023-07-18 15:56:05

2021-11-12 23:41:27

Windows 11Windows微軟

2020-05-13 17:15:49

CPUPC處理器

2013-09-16 11:12:51

編程環境開發

2009-05-07 09:02:15

思科錢伯斯營收

2022-04-28 23:27:08

人工智能機器學習工具

2009-11-30 09:16:30

Windows 7電池續航

2010-12-10 14:37:01

PHP可變變量名

2018-08-14 15:13:36

CPU驍龍810奔3

2017-12-21 05:24:41

2009-11-10 15:52:20

VB.NET變量名

2021-01-13 15:19:27

Python中文變量

2009-12-22 15:27:58

Gartner

2022-05-28 12:33:17

谷歌項目經理領導者

2020-09-13 13:23:12

Windows微軟功能
點贊
收藏

51CTO技術棧公眾號

精品人妻伦一二三区久久| 青青草原在线免费观看视频| 欧美性片在线观看| 亚洲日本电影在线| 国内精品视频在线播放| 成人一二三四区| 韩日视频一区| 最新国产精品拍自在线播放| 白嫩情侣偷拍呻吟刺激| jizz亚洲女人高潮大叫| 亚洲成av人在线观看| 污视频在线免费观看一区二区三区 | 欧美 日韩 国产 激情| 在线三级电影| 日本一区二区三区四区 | 香港日本韩国三级网站| 免费在线播放电影| 亚洲国产精品v| 久久久99国产精品免费| 国产日产亚洲系列最新| 日韩经典一区二区| 午夜精品久久久久久99热| 黑人狂躁日本娇小| 亚洲成人一品| 亚洲精品国产精品自产a区红杏吧| 999在线观看| 欧美黑人一区| 精品久久久久久久大神国产| a级片一区二区| 午夜精品一区| 中文子幕无线码一区tr| 久久伊人一区| 欧美一区二区黄片| 国产乱子伦一区二区三区国色天香| 欧美一区在线直播| 亚洲一区二区91| 欧美精品综合| 欧美大片网站在线观看| 成人国产1314www色视频| 国产91视觉| av首页在线观看| 国产人成精品一区二区三| 欧美伦理91i| 欧美做爰爽爽爽爽爽爽| 成人在线免费小视频| 精品无人区太爽高潮在线播放| 丰满少妇中文字幕| vam成人资源在线观看| 欧美日韩免费高清一区色橹橹| 久久无码高潮喷水| 欧美男男激情videos| 亚洲成人一区二区在线观看| 成人一区二区av| 后进极品白嫩翘臀在线播放| 一区二区三区四区蜜桃| 一二三在线视频| 制服丝袜在线播放| 亚洲线精品一区二区三区| 欧美一级特黄aaaaaa在线看片| 日本免费在线观看| 自拍偷拍国产亚洲| 免费日韩在线观看| 丁香花在线高清完整版视频| 亚洲国产aⅴ天堂久久| 黄色片网址在线观看| 黄色18在线观看| 欧美日韩国产一区在线| 久久久久人妻精品一区三寸| 成人性生交大片免费网站| 色域天天综合网| 色综合天天色综合| 四虎国产精品永久在线国在线| 欧美精选一区二区| 无人码人妻一区二区三区免费| 亚洲国产欧美国产第一区| 欧美大片拔萝卜| 国模私拍在线观看| 色综合综合网| 色一情一乱一区二区| 午夜剧场免费在线观看| 狠狠爱www人成狠狠爱综合网 | 日本在线看片免费人成视1000| 国产精品久久久久久亚洲毛片 | 国内不卡一区二区三区| 韩国三级av在线免费观看| 国产精品灌醉下药二区| 99久久免费观看| 欧美动物xxx| 日韩欧美一区二区三区在线| 亚洲天堂资源在线| 成人av动漫在线观看| 欧美日本高清一区| 天码人妻一区二区三区在线看| 精品在线观看视频| 久久av一区二区| 黄色一级大片在线免费看产| 午夜成人免费视频| 一区二区三区 欧美| 99国产精品免费网站| 亚洲色图综合久久| 久久久久久久黄色| 欧美aaaaaa午夜精品| 亚洲xxx自由成熟| 韩国免费在线视频| 亚洲一区中文日韩| 一道本视频在线观看| silk一区二区三区精品视频 | 精品国产免费一区二区三区| 午夜视频在线免费观看| 精品人伦一区二区三区蜜桃免费| 色一情一区二区三区| 欧洲vs亚洲vs国产| 欧美激情图片区| 91麻豆成人精品国产| 久久久久久久久久美女| 欧美高清中文字幕| 91成人小视频| 在线视频中文亚洲| 九九精品免费视频| 成人sese在线| 欧美极品少妇无套实战| 日日夜夜亚洲| 伊人久久久久久久久久| 在线观看亚洲欧美| 丁香婷婷综合色啪| 久久久久福利视频| 在线视频成人| 中文字幕无线精品亚洲乱码一区 | 91av免费观看91av精品在线| 国产黄色片av| 亚洲欧美色一区| 国产日韩欧美久久| 精品美女久久| 日本免费一区二区三区视频观看| 少妇精品视频一区二区| 一区二区三区精品在线| 五月天国产视频| 先锋资源久久| 91视频88av| 国产超级va在线视频| 欧美剧情片在线观看| 阿v天堂2014| 三级亚洲高清视频| 欧洲在线视频一区| 免费观看成人性生生活片 | 日韩欧美国产一二三区| 人人澡人人澡人人看| 精品亚洲porn| 日本丰满少妇黄大片在线观看| 色综合视频一区二区三区日韩| 在线国产精品播放| 中文字幕一区二区免费| 国产精品视频第一区| 亚洲成人福利在线| 国产精品成久久久久| 91久久精品国产91久久性色| a免费在线观看| 日韩一级大片在线观看| 国产在线观看免费av| 成人精品视频网站| 成人在线免费观看av| 少妇精品久久久一区二区三区| 欧美自拍视频在线观看| 成人免费一区二区三区视频网站| 欧美在线综合视频| 男人av资源站| 国产成人精品免费一区二区| 国产毛片视频网站| 国产中文字幕一区二区三区 | 成年人视频在线免费| 精品理论电影在线| 亚洲伊人一本大道中文字幕| 免费在线看污片| 亚洲欧美另类中文字幕| 中文字幕免费高清在线观看| 一区二区三区四区国产精品| 亚洲欧美日本一区| 日本伊人午夜精品| 国产女主播av| 九九热线有精品视频99| 成人福利在线观看| 3344国产永久在线观看视频| 亚洲日韩欧美视频一区| 狠狠操一区二区三区| 欧美日韩国产另类一区| 欧美日韩国产精品综合| www.久久久久久久久| 麻豆传传媒久久久爱| 91精品一区二区三区综合| 国产69精品久久久久9999apgf| 日韩影院在线| 日韩在线不卡视频| 欧美熟妇乱码在线一区| 日本福利一区二区| 中文字幕人妻一区二| 99久久精品免费精品国产| 一区二区三区 欧美| 亚洲黄色高清| 综合网五月天| 伊人久久大香线蕉综合网蜜芽| 国产日韩精品在线播放| 国产粉嫩在线观看| 日韩最新av在线| 日漫免费在线观看网站| 欧美一卡在线观看| 成人h动漫精品一区二区下载| 亚洲欧美激情一区二区| 欧美18—19性高清hd4k| 国产高清久久久| 国产一级特黄a大片免费| 一区在线视频| 视色,视色影院,视色影库,视色网 日韩精品福利片午夜免费观看 | 99er热精品视频| 色8久久人人97超碰香蕉987| 国产无码精品在线播放| 亚洲免费三区一区二区| 中文字幕在线1| 不卡电影免费在线播放一区| 超碰中文字幕在线观看| 免费不卡在线视频| 久久婷婷国产精品| 亚洲天堂男人| 一级性生活视频| 久久久久av| 亚洲在线色站| 色中色综合网| 亚洲精品日韩成人| 国产成人黄色| 久久久久网址| 另类尿喷潮videofree| 亚洲一区二区在线| 国产精品成人3p一区二区三区| 国产精品欧美亚洲777777| 97成人资源| 日韩**中文字幕毛片| 欧美13videosex性极品| 97视频免费看| 丁香花在线影院| 91精品国产91久久| 国产va在线视频| 91国产一区在线| 欧美aaaaa性bbbbb小妇| 午夜精品美女自拍福到在线| 大黄网站在线观看| 欧美寡妇偷汉性猛交| 金瓶狂野欧美性猛交xxxx| 欧美大秀在线观看| av福利在线导航| 欧美在线观看网站| 中文在线аv在线| 日韩免费视频在线观看| 怡红院成人在线| 国产精品极品在线| 国产精品亚洲成在人线| 成人免费视频网址| 久久天堂久久| 99电影网电视剧在线观看| 成人三级av在线| 蜜桃av噜噜一区二区三| 欧州一区二区| 91麻豆天美传媒在线| 黄色欧美成人| av片在线免费| 久久狠狠婷婷| 五月激情五月婷婷| 国产精品456| 国产高清自拍视频| 国产日产欧美一区| 在线观看黄网址| 亚洲成av人片在线| 97人妻一区二区精品视频| 欧美久久久久久蜜桃| 成人免费一级视频| 亚洲女成人图区| 欧美成人性生活视频| 欧美极品欧美精品欧美视频| 欧美办公室脚交xxxx| 国产日韩欧美一二三区| 中文字幕日韩高清在线| 麻豆视频成人| 91不卡在线观看| 3d动漫一区二区三区| 免费观看日韩av| 极品白嫩的小少妇| 国产日韩精品久久久| avtt天堂在线| 91极品视觉盛宴| 国产特级黄色片| 亚洲色图综合久久| 羞羞电影在线观看www| 日本精品视频在线| 国产精品一区免费在线| 蜜桃麻豆www久久国产精品| 亚洲一区欧美| 无遮挡又爽又刺激的视频 | 91牛牛免费视频| 色综合久久中文| 老汉色影院首页| 日本亚洲三级在线| 怡红院一区二区| 成人免费一区二区三区视频| 日韩精品人妻中文字幕| 欧美日韩久久不卡| 青青国产在线| 欧美极品少妇xxxxⅹ喷水| 99久久精品一区二区成人| 国产日韩一区二区| 国产精品毛片一区二区在线看| 高清在线观看免费| 国产精品1区二区.| gv天堂gv无码男同在线观看| 精品久久久久久亚洲精品| 国产精品无码天天爽视频| 亚洲欧美另类自拍| 国产99在线观看| 丁香五月网久久综合| 91久久久精品国产| 北条麻妃av高潮尖叫在线观看| 成人免费观看视频| 欧美黄色免费看| 欧美精品777| 午夜免费视频在线国产| 国产精品久久久久久久久久| 日韩在线黄色| 免费一级特黄特色毛片久久看| 国产成人精品三级| 免费高清在线观看电视| 欧美色区777第一页| 黄色大片在线免费观看| 日本久久久久久久久久久| 欧美人妖视频| 鲁一鲁一鲁一鲁一色| 成av人片一区二区| 久久成人国产精品入口| 日韩三级免费观看| av免费网站在线观看| 91免费版网站入口| 亚洲国产日韩欧美在线| 97超碰人人看| 亚洲综合免费观看高清完整版| 国产三级午夜理伦三级| 伦理中文字幕亚洲| 日本伊人久久| 国产日本在线播放| 成人免费黄色大片| 久久不卡免费视频| 亚洲精品电影在线| 天堂√8在线中文| 欧美亚洲另类在线一区二区三区| 亚洲一区国产一区| 成人国产精品久久久网站| 在线免费观看日本一区| av大片在线看| 91久久国产精品91久久性色| 欧美暴力喷水在线| 国产视频精品视频| 欧美日韩国产一区二区| 国产一二在线观看| 国产日韩欧美91| 国产精品hd| 天天插天天射天天干| 欧洲精品视频在线观看| 在线免费观看黄| av资源一区二区| 亚洲欧美日韩精品一区二区| 69视频在线观看免费| 欧美一区二区三区四区久久| 都市激情久久综合| 欧美日韩一区二区视频在线观看| 蜜臀av性久久久久av蜜臀妖精| 国产传媒免费在线观看| 精品国产乱码久久久久久蜜臀| 日韩伦理在线一区| 亚洲图片小说在线| 丁香激情综合五月| 日本黄色一级视频| 久久久极品av| 伦理一区二区三区| 午夜视频你懂的| 亚洲午夜羞羞片| 国产大学生校花援交在线播放| 亚洲专区国产精品| 亚欧美中日韩视频| 日本少妇高清视频| 亚洲欧美日韩精品久久亚洲区| japansex久久高清精品| 久久久999免费视频| 中文无字幕一区二区三区| www.日本在线观看| 国产v综合ⅴ日韩v欧美大片| 正在播放日韩欧美一页| 蜜桃传媒一区二区亚洲av | 国产又粗又猛又爽又黄| 丰满岳妇乱一区二区三区| dy888亚洲精品一区二区三区| 美女亚洲精品| 成人永久免费视频| 中文字幕资源网| 欧美在线视频一区二区| 午夜精品婷婷|