程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 冒號和他的學生們(連載4)——編程心法

冒號和他的學生們(連載4)——編程心法

編輯:關於JAVA

編程心法

言者所以在意,得意而忘言   ——《莊子·外物》

問號第一個從小說裡走出來,問道:“剛才談到了低級語言和中級語言,現在該談高級語言了吧?”

冒號微歎:“高級語言大概有近千種,流行的也不下幾十種,有時候選擇過多反而無所適從啊。”

逗號不以為然:“最流行的不就那麼幾個:Java、C++、C#還有VB嗎?”

不意此言遭到冒號連珠炮似的反問:“可你知道它們為什麼會流行嗎?是不是學會這幾樣就是一個合格的程序員了?它們會不會變得不那麼流行,甚至被其他語言取代?如果不會,為什麼?如果會,又怎麼辦?”

逗號赧然語塞。

冒號口氣放緩:“掌握一門語言的語法、工具和技巧固然重要,但那只相當於學會一門兵器的招法,更重要的當然是心法。招法重形,心法重意。得形而忘意,無異捨本逐末;得意而忘形,方能游刃有余。下面要談的就是一種心法:編程范式。”

問號不解:“編程范式?聽上去很學究,那是什麼東東?”

冒號續道:“范式譯自英文的paradigm,也有譯作典范、范型、范例的。如果說每個編程者都在創造虛擬世界,那麼編程范式就是他們置身其中自覺不自覺采用的世界觀和方法論。”

歎號吸口氣:“好抽象哦!”

句號心中一動:“您是說我們都是虛擬世界的創造者,都在創造自己的黑客帝國?”

大家不禁莞爾。

冒號動情地說:“難道不是嗎?只不過帝國有大小之分、優劣之別罷了。當你編程之時,便進入到自己創造的世界之中。這是你的世界,只有注入你的想象力、創造力和激情,它才有勃勃生機。你編寫的豈止是代碼,分明還有樂曲;你敲擊的豈止是鍵盤,分明還有琴鍵;你運行的豈止是程序,分明還有世界。當優美的旋律奏起,整個世界都隨之翩然起舞,一種莫可名狀的滿足是否會充溢你的全身?”

大家都被冒號詩化的語言感染了,沒想到編程也可以如此感性。

良久,引號試探地問:“面向對象編程就是一種編程范式吧?”

冒號點頭:“不錯,它是時下最流行的一種編程范式。順便說一句,‘面向對象’ 譯自Object-Oriented,但‘面向’二字令人費解。據說有本書叫‘面向對象方法’,比別的計算機書都暢銷,知道為什麼嗎?不少同學把它當成戀愛指南買走了。”

全班笑倒。

冒號認真地說:“將Object-Oriented譯成‘對象導向’,雖然稍嫌拗口,但更貼切。並非刻意要咬文嚼字,這關系到對編程范式的理解。我們知道,編程是為了解決問題,而解決問題可以有多種視角和思路,其中普適且行之有效的模式被歸結為范式。由於著眼點和思維方式的不同,相應的范式自然各有側重和傾向,因此一些范式常用‘oriented’來描述。換言之,每種范式都引導人們帶著某種的傾向去分析問題、解決問題,這不就是‘導向’嗎?而‘面向’ 的賓語往往是預先確定的目標,如面向世界、面向未來、面向用戶、面向問題等等。”

句號一語驚人:“找對象是‘對象導向’的,去約會是‘面向對象’的。”

全班再倒。

句號得意地解釋:“按夢中情人的標准去找對象,目標未定但傾向已定,這就是一種導向,而且是對象導向。找到之後再約會,不就面向對象了嗎?”

眾人稱絕。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved