国产高清在线免费观看-国产高清在线免费无码-国产高清在线男人的天堂-国产高清在线视频-国产高清在线视频精品视频-国产高清在线视频伊甸园

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

編程語(yǔ)言中一些令人抓狂的規(guī)則

admin
2014年3月24日 23:39 本文熱度 4123
  摘要:許多年前在編程語(yǔ)言設(shè)計(jì)和操作系統(tǒng)上的選擇可能當(dāng)時(shí)看起來(lái)無(wú)關(guān)緊要。但是,這些遠(yuǎn)古的決定至今仍然繼續(xù)困擾著軟件開(kāi)發(fā)者。下面所介紹的就是一些在編程語(yǔ)言和操作系統(tǒng)里的那些讓開(kāi)發(fā)者頭疼的過(guò)時(shí)的選擇。
  眾所周知,軟件開(kāi)發(fā)者每天都要做各種各樣的決定:如何最好的實(shí)現(xiàn)功能、如何修復(fù) bug、如何提升應(yīng)用程序的性能等等。但是他們同樣是在別人的勞動(dòng)成果下面繼續(xù)做自己的決定的,比如說(shuō):他們使用的是別人開(kāi)發(fā)出來(lái)的編程語(yǔ)言和操作系統(tǒng)以及各種開(kāi)發(fā)工具。一些語(yǔ)言開(kāi)發(fā)和系統(tǒng)設(shè)計(jì)行業(yè)里的前輩以前所作出的決定在那個(gè)時(shí)候可能是很有意義的,不過(guò)在現(xiàn)在看來(lái)可能是多此一舉。
  舉例而言,在 2009 年的時(shí)候,互聯(lián)網(wǎng)創(chuàng)始人蒂姆 · 伯納斯 - 李就承認(rèn),互聯(lián)網(wǎng)網(wǎng)址中 http: 后面的兩條斜線 // 其實(shí)并無(wú)必要,他為這帶來(lái)的不便致歉。蒂姆以幽默的環(huán)保角度道歉說(shuō):真不知道這兩條斜線浪費(fèi)了多少時(shí)間、打印墨水和紙張。
  除此之外,對(duì)于每天都要寫(xiě)代碼的軟件開(kāi)發(fā)者來(lái)說(shuō),前輩們當(dāng)時(shí)做出的令后人覺(jué)得蛋疼的決定還遠(yuǎn)不止這些。接下來(lái)就介紹一下在編程語(yǔ)言和操作系統(tǒng)里的那些讓開(kāi)發(fā)者頭疼的過(guò)時(shí)的選擇。
  1. Unix 隱藏 dot 文件("." 文件)
  早期的 Unix 操作系統(tǒng)就這樣設(shè)計(jì)過(guò):當(dāng)通過(guò) ls 命令把目錄內(nèi)容列出來(lái)的時(shí)候,任何以 . 開(kāi)始的文件或目錄會(huì)在默認(rèn)情況下被隱藏起來(lái)。
  從目錄列表里隱藏當(dāng)前 ( . ) 或者是隱藏根目錄 ( . . ) 的方法將所有帶 . 的文件有效地隱藏起來(lái)了。從那時(shí)起,點(diǎn)文件經(jīng)常性的會(huì)被忽視掉,同時(shí)也成為一種提供惡意文件的簡(jiǎn)單方法。
  " 在之前的 40 年里,因?yàn)檫@一個(gè)小小的走捷徑而導(dǎo)致多少 bug 的出現(xiàn)?浪費(fèi)了多少 CPU 循環(huán)?出現(xiàn)了多少人為失誤?所以我們應(yīng)該記住:下次如果你還想在代碼里抄近路的話,一定要想想之前的教訓(xùn)。" ——Rob Pike
  2. JavaScript 使用 + 字符串連接
  大約在 20 年前,當(dāng) Netscape 首先開(kāi)發(fā) JavaScript 的時(shí)候,他決定大量使用 + 操作符來(lái)連接字符串,主要是用在數(shù)字加法運(yùn)算和字符串連接這兩方面上。
  可是最后結(jié)合 JavaScript 的弱類(lèi)型發(fā)現(xiàn),使用 + 操作符通常會(huì)導(dǎo)致數(shù)值變量的連接,而不是數(shù)值的加減。其他的編程語(yǔ)言同樣選擇了不同的連接操作符,或者是安排專(zhuān)門(mén)的程序員嚴(yán)格輸入變量,以防混淆。
  " 當(dāng)我第一次學(xué)習(xí) JavaScript 的時(shí)候,真的把我害慘了,因?yàn)榍昂蟛灰恢碌牡妮斎胄袨槭沟煤茈y在最后的檢查過(guò)程中發(fā)現(xiàn) bug。" ——Chris Dutrow
  3. Microsoft 選擇反斜杠作為路徑分隔符
  在 1983 年的時(shí)候,微軟發(fā)布了 MS-DOS 2.0,它包括了一個(gè)目錄層次結(jié)構(gòu),就像 Unix。但是和 Unix 有所不同,Unix 使用正斜杠 ( / ) 來(lái)分割目錄路徑,微軟使用了反斜杠 ( ) ,原因是,正斜杠已經(jīng)被用于表示命令行選項(xiàng),所以微軟選擇了反斜杠。
  反斜杠在 Unix 和其他的例如 Perl 和 C 語(yǔ)言中主要是用來(lái)區(qū)分后后面緊跟著的字符,所以這給程序員帶來(lái)的痛苦就是要經(jīng)常在正斜杠和反斜杠之間來(lái)來(lái)回回的兜圈子,以免出錯(cuò)。
  " 回想起來(lái),我覺(jué)得這是一個(gè)可怕的決定,但是換成是我的話,當(dāng)時(shí)可能會(huì)做出同樣的舉動(dòng)。" ——Dave Lindbergh
  4. Python 使用縮進(jìn)表示塊
  絕大多數(shù)編程語(yǔ)言使用明確的分隔符,例如用大括號(hào)來(lái)表示語(yǔ)句的分組,而 Python 卻不是這樣的,它使用前導(dǎo)空白 ( 空格和制表符 ) 來(lái)表示哪一個(gè)塊屬于哪一行代碼。
  事實(shí)上,只有那些經(jīng)驗(yàn)豐富的 Python 程序員比較傾向于使用這個(gè)功能,而對(duì)于那些新手或者是不常使用它的程序員來(lái)說(shuō),別提有多惱怒了,尤其是剪切代碼、粘貼代碼、改變平臺(tái),或者是重構(gòu)代碼的時(shí)候。
  " 在兩個(gè)平臺(tái)之間轉(zhuǎn)換的過(guò)程中,你會(huì)發(fā)現(xiàn)這真是編程語(yǔ)言里的極品功能啊!" ——Joe Zitzelberger
  5. Tony Hoare 發(fā)明了空引用
  在 1965 的時(shí)候,英國(guó)著名計(jì)算機(jī)科學(xué)家 Tony Hoare 將空引用概念引入到 ALGOL W 語(yǔ)言里,以確保所有使用的引用內(nèi)容都是安全的。一直到現(xiàn)在,這一發(fā)明都存在于大部分編程語(yǔ)言里。
  編譯器是不會(huì)抱怨空指針的,但是想要廢棄一個(gè)可能會(huì)導(dǎo)致運(yùn)行時(shí)錯(cuò)誤或系統(tǒng)崩潰的引用的話,那么程序員必須設(shè)法做一些防御措施或者是調(diào)試工作。
  " 我認(rèn)為它是一個(gè)導(dǎo)致數(shù)十億美元損失的錯(cuò)誤。" ——Tony Hoare
  6. JavaScript 使用分號(hào)插入
  JavaScript 中分號(hào)表示語(yǔ)句結(jié)束,但 JavaScript 會(huì)自動(dòng)的在它認(rèn)為合適的地方插入分號(hào)。例如在程序結(jié)尾,或者在緊接 1 個(gè)新行的 return 語(yǔ)句后面。
  在某些情況下,return 后面可能會(huì)有大括號(hào)和新的代碼塊,這種情況下,如果自動(dòng)插入分號(hào),就有可能導(dǎo)致語(yǔ)法錯(cuò)誤。
  " 這一功能著實(shí)讓開(kāi)發(fā)者的工作出現(xiàn)了一點(diǎn)混亂,尤其是當(dāng)你為一個(gè)生產(chǎn)環(huán)境壓縮代碼的時(shí)候。" ——Mike Nelson
  7. 如何表示日期
  在如何表示日期這一問(wèn)題上已經(jīng)產(chǎn)生過(guò)很多比較有效地選擇方案了,例如只使用兩個(gè)數(shù)字或者是更少的數(shù)字來(lái)表示年份,可以被四整除的年份是閏年,或者是像 Unix 系統(tǒng)那樣提供的基本時(shí)間服務(wù)是國(guó)際標(biāo)準(zhǔn)時(shí)間公元 1970 年 1 月 1 日 00:00:00 以來(lái)經(jīng)過(guò)的分秒,這種秒數(shù)是以數(shù)據(jù)類(lèi)型 time_t 表示的。我們稱(chēng)它們?yōu)槿諝v時(shí)間,日歷時(shí)間包括時(shí)間和日期。
  只使用兩個(gè)數(shù)字或者是更少的數(shù)字來(lái)表示年份就會(huì)導(dǎo)致眾所周知的Y2K問(wèn)題,計(jì)算閏年的過(guò)程中也是會(huì)出現(xiàn)很多 bug,有些系統(tǒng)照樣會(huì)出現(xiàn)Y2K38 問(wèn)題。
  " 在 20 世紀(jì) 60 年代的時(shí)候,內(nèi)存的價(jià)值大約為 1 美元 / 字節(jié)。所以,在 60 年代或者是在 80 年代的時(shí)候使用 2 個(gè)數(shù)字來(lái)表達(dá)年份是很合理的。可問(wèn)題就在于是穩(wěn)定而精確的軟件所運(yùn)行的時(shí)間完全超出了其預(yù)期的設(shè)計(jì)時(shí)間。" ——Fred Krampe
  原文:InfoWorld

該文章在 2014/3/24 23:39:15 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專(zhuān)業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車(chē)隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類(lèi)企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷(xiāo)售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 亚洲一区二区三区另类 | 中文字幕人妻痉挛按摩在线 | 欧洲无码一区二区三区 | 欧美成人家庭影院 | 久久精品ⅴ无码中文字幕 | 国产亚洲欧美精品永久 | 色婷婷我要去我去也 | 欧美日韩无线码免费播放器 | 色欲av无码一区二区人妻 | 欧美日韩国产小电影 | 亚洲欧美一区二区三区国产另 | 日韩国产精品视频 | 国产人成激情视频在线观看 | 国产伦精品一区二区三区免费观看 | 日韩中文字幕在线免费观看 | 无码专区久久综合久中文字幕 | 亚洲精品一区二区三区婷婷月色 | 中文无码乱人伦中文视频播放 | 国产又黄又爽又刺激的免费网址 | 亚洲精品乱码99999主播 | 无码精品a∨在线观 | 尤物99国产成人精品视频 | 国产毛片欧美毛片久久久 | 国产亚洲精品无码专区 | 国产成人亚洲影院在线观看 | 久久无码人妻一区二区三区午夜 | 欧洲亚洲国产成人综合色婷婷 | 国产强奷在线播放免费不卡 | 国产免费无码又爽又刺激A片动漫 | 中文字幕日本久久2025 | 国产成人影院一区二区三区 | 亚洲第一综合天堂另类专 | 成年女人18级毛片毛片免费观看 | 久久久精品2025免费观看 | WWW日韩AV免费高清看 | 最新黄色网址在线观看 | 四虎精品免费视频 | 亚洲嫩草精品 | 日韩色情图片AV一区 | 国产午夜一级鲁丝片 | aⅴ欧美在线观看 |