欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

編程語言中一些令人抓狂的規則

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

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