關於程式設計裡的那些ABC

Dan Siepen發表於2014-10-05

A - Angular.JS 

如果被設計用來構建 Web 應用程式的話,那就和 HTML 沒什麼區別了。它是一款開源 JavaScript 函式庫,由 Google 和它的社群來維護,用來協助單一頁面應用程式執行的。它的目標是透過 MVC模式(Model-View-Controller)功能增強基於瀏覽器的應用,使開發和測試變得更容易。函式庫讀取包含附加自定義(標籤屬性)的 HTML,遵從這些自定義屬性中的指令,並將頁面中的輸入或輸出與由 JavaScript 變數表示的模型繫結起來。這些 JavaScript 變數的值可以手工設定,或者從靜態或動態 JSON 資源中獲取。



Angular.JS 是建立在這樣的信念上的:即宣告式程式設計應該用於構建使用者介面以及編寫軟體構建,而指令式程式設計非常適合來表示業務邏輯。Angular.JS 最引人注目的特徵就是它的雙向資料繫結功能,這樣可以大大減少你在必要程式碼上的編寫數量,Coder Factory 最先向澳大利亞提供 Angular.JS課程。

B - Booststrap

是一個用於響應式前端開發的框架,最主要是應用在移動 Web App 上面。它由Twitter 的設計師 Mark Otto 和 Jacob Thornton 合作開發,是一個 CSS/HTML 框架。Bootstrap 提供了優雅的 HTML 和 CSS 規範,它即是由動態 CSS 語言 Less 寫成。Bootstrap 一經推出後頗受歡迎,一直是 GitHub 上的熱門開源專案,包括 NASA 的 MSNBC(微軟全國廣播公司)的 Breaking News 都使用了該專案。



Bootstrap 是基於 jQuery 框架開發的,它在 jQuery 框架的基礎上進行了更為個性化和人性化的完善,形成一套自己獨有的網站風格,併相容大部分 jQuery 外掛。

C - CSS

是 Cascading Style Sheet 的縮寫,中文名稱是層疊樣式表,又稱串樣式列表、層次結構式樣式表檔案,一種用來為結構化文件(如 HTML 文件或XML 應用)新增樣式(字型、間距和顏色等)的計算機語言,由 W3C 定義和維護。目前最新版本是CSS2.1,為 W3C 的推薦標準。CSS3 現在已被大部分現代瀏覽器支援,而下一版的 CSS4 仍在開發過程中。



CSS 最重要的目標是將檔案的內容與它的顯示分隔開來。在 CSS 出現前,幾乎所有的 HTML 檔案內都包含檔案顯示的資訊,比如字型的顏色、背景應該是怎樣的、如何排列、邊緣、連線等等都必須一一在 HTML 檔案內列出,有時重複列出。CSS 使作者可以將這些資訊中的大部分隔離出來,簡化HTML 檔案,這些資訊被放在一個輔助的,用 CSS 語言寫的檔案中。HTML 檔案中只包含結構和內容的資訊,CSS 檔案中只包含樣式的資訊。

D - DRY

 是 Don't repeat yourself 的簡稱,一個規則,實現一次(one rule, one place)是物件導向程式設計中的基本原則,程式設計師的行事準則。旨在軟體開發中,減少重複的資訊。



DRY 的原則是──系統中的每一部分,都必須有一個單一的、明確的、權威的代表──指的是(由人編寫而非機器生成的)程式碼和測試所構成的系統,必須能夠表達所應表達的內容,但是不能含有任何重複程式碼。當 DRY 原則被成功應用時,一個系統中任何單個元素的修改都不需要與其邏輯無關的其他元素髮生改變。此外,與之邏輯上相關的其他元素的變化均為可預見的、均勻的,並如此保持同步。違反 DRY 原則的解決方案通常被稱為 WET,指代“Write everything twice”。

E - Elegant 

每一個程式碼都應該是優雅、簡潔的。其實編寫程式的過程就像是一種藝術,也許有些人會問你:“如果可以編寫有效程式碼的話,為什麼還要編寫優雅程式碼呢?”然而,我們認為提供優雅程式碼的標準首先這個目的就是比較好的,因為它會帶領程式設計師編寫出更加簡明的、可維護的程式碼。



你應該永遠記住:讀程式碼比寫程式碼更重要。我猜你不想讓你的同事花整個週末的時間來搞懂你的程式碼到底是什麼意思吧!所以多花一點時間讓程式碼更漂亮!

F - Flash

是由 Adobe 開發出來的用於建立動畫視訊、圖形和網際網路應用程式的。就像你剛從一個粗略的網站上看到的一部電影一樣,都是通過 Adobe Flash 播放器播放的。儘管有很指責說 Flash 很耗資源且不安全,但是絕大多數網站上一直在使用它。



或許你已經聽說了 Steve Jobs 拒絕將 Flash 用在蘋果裝置上,如果真的有所說的那樣的缺點,或許只是 Steve Jobs 和 Flash 之間的個人恩怨,那樣我們可能永遠不會發現 Flash 的偉大之處。即使 HTML5 被預測為 Flash 的即將繼承者,但是 Flash 仍然值得我們多看它幾眼。

G - GitHub

是每一位編碼人員的最好的朋友。擁有超過 1150萬 個倉庫的 GitHub 是這個世界上最大的程式碼託管網站。GitHub 包含社交網路功能允許開發人員將他們的專案整合到一起,這樣一來的話就能在對開源軟體以及私人專案的維護產生重大意義。



GitHub 提供免費和付費計劃,只需選擇你所需要的東西。有趣的是:GitHub 是建立在 Ruby on Rails 基礎上的,Coder Factory 可以教你框架。

H - Hydracode

是一段不能修復的程式碼,就像古希臘怪物每個脖子上都生出兩個頭,最後都被 Hercules 砍掉了。程式碼有的時候就像這個一樣,即使你修復了一個bug之後,又會出現很多個bug,所以,除了重寫整個程式碼以外,你別無選擇。


I - GraphicUser Interface

圖形使用者介面,這是一種自我解釋。圖形使用者介面估計是你看到最多的也是互動最多的一部分。第一個 GUI 是在 Stanford Research Institute 發明的,後繼開發是由 Xerox PARC 施行的。在參觀完 Xerox 之後,Steve Jobs 首次將GUI技術用在了 Apple Lisa 和 Macintosh 上面,在當時來說這是一次革命創舉。



Bill Gates 釋出 Windows GUI 之後,看看下面這段有趣的對話,Steve:“你偷了我們的技術!”Bill 迴應:“我想我們兩個都有一個叫做 Xerox 的非常富有的鄰居,但是當我跑到他的房間裡想要偷走電視機的時候,我發現你已經把電視機偷走了。”哈哈哈

J - Javascript

是一個動態的程式語言(尤其是在客戶端),可以讓你在不用重新整理網頁的情況下更新網頁內容。雖然 Angular.js 是一個相當不錯的框架,但它是 建立在 JavaScript 這個基礎之上的。



JavaScript 最先是由 Netscape 開發的,用來對抗和 Microsoft 進行的瀏覽器之戰。現在的Javascript 已經出現在高階 App 開發課程裡面了。

K - Donald Knuth

是一個很有趣的IT專家,它也是我們很喜歡的書《The Art of Computer Programming》的作家。現在他是 Stanford University 的名譽教授,也是公認的“演算法分析之父”。


L - Libraries

程式碼類庫是實現行為的一個收集,這裡面有一個介面用來呼叫行為。估計這麼說的話聽起來還是比較複雜的。基本上可以這麼理解:通過類庫這種方式將這些程式碼組織起來,這樣就可以被很多沒有什麼關係的程式呼叫了。於是,使用者只需要知道類庫的介面就行了,而不是內部的邏輯結構。


M - MongoDB 

是一種檔案導向資料庫管理系統,由 C++ 撰寫而成,以此來解決應用程式開發社群中的大量現實問題。2007年10月,MongoDB 由 10gen 團隊所發展。



MongoDB 可以從開放原始碼來建構與安裝,更常見的是安裝 binary 檔案,目前有 Windows,Linux,OS X 和 Solaris 版本。許多 Linux 套件管理系統現在已包含了 MongoDB 的套件,包括 CentOS 和 Fedora,Debian 和 Ubuntu。MongoDB 已經被一些重要的網站所採納了,例如 Ebay,Craigslist 甚至是 New York Times。

N - Nopping

是一個用於區分輸出的編輯器,來源於 NOP(no-operation),這是程式設計行業裡的行話——小睡一下。每個人時不時的都需要休息一下,現在就NOP一下吧!

O - Object

物件導向的程式設計是一個範例,代表這一概念所描述的物件的屬性和方法改變。物件通常是類的例項,設計應用程式已達到彼此互動設計的目的。許多主要的程式語言如C++、Java、Ruby和 PHP 都是物件導向的。


P - Push

推動基礎的交流來描述一個互動請求,這首先是出版商發起的,例如這些需求都是來自伺服器而不是來自客戶端的推送。

Q - Quality

程式碼質量是一個廣義上的術語,每個程式設計師都有自己的不一樣的定義。我們通常比較樂於將程式碼質量描述為易讀的、可測試的、靈活的、依賴關係小、順從的,還有就是經濟的。這一原則被稱為LTFCE。


R - Ruby on Rails

是一個使用 Ruby 語言寫的開源 Web 應用框架,嚴格按照 MVC 結構開發的。在2005年左右由 David Heinemeier-Hansson 開發出來的。它努力使自身保持簡單,來使實際的應用開發時的程式碼更少,使用最少的配置。Rails 的設計原則包括“不做重複的事”(Don't Repeat Yourself)和“慣例優於設定”(Convention Over Configuration)。



Ruby on Rails 是一種結合 Ruby 語言與 Rails 平臺的一種網頁程式語言,Ruby 語言以自然、簡潔、快速著稱,全面支援物件導向程式設計,而 Rails 則是 Ruby 廣泛應用方式之一,在 Rails 平臺上設計出一套獨特的 MVC 開發架構,採取模型(Model)、外觀(View)、控制器(Controller)分離的開發方式,不但減少了開發中的問題,更簡化了許多繁複的動作。

S - Scaffolding

框架是一個技術,用在 MVC 框架上,例如 Ruby on Rails。通過 Scaffolding 基架,開發者可以詳細說明一個資料庫到底是怎麼運作的。允許你生成程式碼,例如使用非常簡化的方法來讀取、建立或刪除資料庫條目。Scaffolding 基架基於資料庫架構生成網頁模板的過程。在 ASP .NET 中,動態資料使用基架來簡化基於 Web 的 UI 的生成過程。使用者可以通過這種 UI 來檢視和更新資料庫。

T - Alan Mathison Turing

(又譯阿蘭·圖靈,1912年6月23日-1954年6月7日),被認為是電腦科學的保護神,但是,他是一個永遠也得不到公正宣佈的聖人。他是英國數學家、邏輯學家,他被視為電腦科學之父。



圖靈對於人工智慧的發展有諸多貢獻,例如圖靈曾寫過一篇名為《機器會思考嗎?》(Can Machines Think?)的論文,其中提出了一種用於判定機器是否具有智慧的試驗方法,即圖靈測試。至今,每年都有試驗的比賽。此外,圖靈提出的著名的圖靈機模型為現代計算機的邏輯工作方式奠定了基礎。

U - Usability

可用性測試是一個很有存在意義的任務,在你的App出現在眾人面前之前必須要經過可用性測試。你的程式碼也許很優雅、質量很高、不會重複,但是要是它的可用性不過關的話,那麼一切都是扯淡。你想讓你的 App 儘可能的使用者友好型的,那麼使用者是不會讓你的產品埋沒的。



一個最常見的技術測試就是 A/B testing,這種方法就是用兩種不同的介紹方式將產品介紹給不同的使用者,並且監視結果。效果最好的那個才會被採納。

V - for View 

對於外觀、模型、控制器來說,它們就是實現使用者介面的樣品。這裡面的核心部件就是 Model,其包括App 資料,商業邏輯規則和產品功能。View 是實際產出,也是你的使用者在瀏覽器裡最想看到的。Controller 接收輸入並將其轉換成命令傳送給 Model 或者是 View。

W - W3C

是 World Wide Web Consortium 的縮寫,是Web上主要的國際標準組織,由網際網路的發明者 Tim-Berners Lee 建立並由其領導,W3C是 World Wide Web 的監護者。

X - Experience 

很多人都認為他們能學習程式碼並能做得很好,就像 Mark Zuckerberg 一樣。事實是:作為一個開發者,根本沒有停下來學習的時候。科技技術改變的速度很快、很迅速,也就是說,在你的整個職業生涯裡你必須抓住機會不斷學習新的知識。


Y - Yoda

Yoda 條件是一個程式設計術語,用來編寫一個表達的兩個部分,而這個表達是一個典型條件語句順序的顛倒表達方式,就像“learn to code you should, young padawan”。


Z - Konrad Zuse

當然,在這個綜合性的列表上,我們沒辦法將 Konrad Zuse 排除在外。他是一位德國科學家,創造出了第一臺可程式設計的計算機——Turing-complete Z3。在第二次世界大戰之後,IBM 選擇了它的專利,這也是他的工作第一次被德國以外的國家所認可。



本文主要是根據26個字母的排序來整理了在程式設計方面比較重要的知識點供你參考。如果有什麼好的建議可以在下面的評論出寫出來。
評論(1)

相關文章