|
從事編程工作這么多年,經(jīng)常會(huì)有人問我什么樣的程序是好程序,有的甚至把程序給我看,讓我給程序提提意見。而我從編程開始就踏上尋覓好程序之路。“路漫漫其修遠(yuǎn)兮 吾將上下而求索。”這好象正是我心歷的寫照。可以說追求編寫好程序是我不變的目標(biāo)。
好的程序?好的程序?什么樣程序是好的?為什么這樣程序是好的?中國人從小就被“好壞”教育。面對(duì)任何事物,他們都能給評(píng)出好壞來。評(píng)出結(jié)果出來,無非讓復(fù)雜事物簡單化,讓人在第一時(shí)間能判別這件事好不好,這件事能不能做,好的就給與支持和贊美,好的就想去做就想做好。反之。我就不說了。
但是,好壞兩個(gè)字好寫,但是事物好壞的理由和標(biāo)準(zhǔn)卻是絕對(duì)的復(fù)雜,有時(shí)甚至絕對(duì)的對(duì)立。從某種意義上來說,人類就是在事物的好壞上不斷爭斗中延續(xù)著自己。
“白日依山盡,黃河入海流,欲窮千里目,更上一層樓。”我們從小到大,經(jīng)歷過無數(shù)次教育,讀過不知道多少本的書,看過不知道多少篇文章,能夠記憶出來的,能夠背誦出來的,能夠打動(dòng)自己心扉的,那就是詩了。詩成了生活的濃縮、提煉和升華。而詩人則成為歷代百姓文人追捧的對(duì)象。雖然現(xiàn)代詩處于動(dòng)蕩和衰敗過程之中,但是經(jīng)過歷史長河沉淀下來的名詩依然膾炙人口,讓人永生難忘,幾乎找不到一個(gè)連一句詩都不會(huì)說的人,可見詩的魅力無窮。
編寫程序如同寫文章,有的人會(huì)寫成報(bào)告,有的人會(huì)寫成小說,有的人會(huì)寫成雜文,文體不限各顯神通。但是我以為,好的程序如同一首詩,讀起來行云流水,韻味十足。詩中或工整對(duì)仗,或錯(cuò)落有致,或排比擬人,或比喻夸張?jiān)诔绦蛑幸材鼙憩F(xiàn)出來。
程序和詩歌都有內(nèi)容和形式兩個(gè)部分。內(nèi)容是本質(zhì),反應(yīng)了程序的功能,反應(yīng)了程序的設(shè)計(jì)水平。形式是表現(xiàn),反應(yīng)了內(nèi)容表述。好的程序應(yīng)該象一首詩,有好的內(nèi)容,有好的表現(xiàn)形式。我發(fā)現(xiàn)好程序和好詩歌一樣都有一些要素,這些兩者要素有相當(dāng)?shù)墓餐c(diǎn):其要注意如下:
第一要素是要有邏輯。程序的邏輯從大的方面來說是反映了程序的結(jié)構(gòu),結(jié)構(gòu)清晰明了,才能引人入勝!例如,有詩的格律,如五言、七律等,詩歌只能按照格式填寫,詩的格律就是詩的邏輯構(gòu)架。程序的邏輯結(jié)構(gòu)往往體現(xiàn)在時(shí)序上,例如:初始化處理、功能處理、結(jié)束處理。如此設(shè)計(jì)將使得程序更顯邏輯。從小的方面來時(shí)是反映程序構(gòu)架下的流程,流程次序井然、前接后續(xù),才能使得程序執(zhí)行順暢。
第二要素是用詞。程序的用詞一方面是指各種變量的命名方式,另一方面是函數(shù)命名的方式。程序的用詞應(yīng)該用英語,變量命名和函數(shù)命名其英文單詞無論是用縮寫還是全寫都要符合大眾的讀者的習(xí)慣,避免用生詞、偏詞、自造詞。我們看到古今中外的名詩大都是用通俗易懂的詞匯進(jìn)行藝術(shù)組合而形成的。很少有非常用字出現(xiàn)。編程中要特別注意函數(shù)名中的主謂賓搭配,讓讀者讀起來更加上口。
第三個(gè)要素是短小。編程如同編寫文章,好的文章如歌如詩,其特點(diǎn)就是短小,一般的五言、七絕只有四行就能包含一個(gè)很深刻的主題了。編寫程序也是相同的道理,要盡量讓程序的行數(shù)減少。一方面要考慮在總的程序行數(shù)減少,另一方面要增加函數(shù),使得函數(shù)里的語句行數(shù)減少。
第四個(gè)要素是精煉。一首好詩能在幾句話中就激發(fā)讀者的情緒、鼓舞讀者的斗志、展示大自然的美景,揭示各種人生哲理。其中主要原因是詩人的能用精煉的詞匯來表達(dá)詩的內(nèi)容。對(duì)于編程來說,精煉就是多用函數(shù),多用系統(tǒng)函數(shù),讓各種功能都濃縮在函數(shù)之中。
第五個(gè)要素是一致。一首好詩往往能讀到排比、讀到對(duì)仗這樣的修辭手法。說到底者都是詩歌的一致性的要求。編寫好的程序同樣要注意一致性的要求,例如,我們盡可能采用相同的語句結(jié)構(gòu)、相同的語句的縮進(jìn)、相同的命名規(guī)則、相同的動(dòng)詞、相同長度的語句、相同計(jì)數(shù)變量、相同緩沖區(qū)變量、相同的處理函數(shù)、相同的處理流程等等。這些相同使得程序各個(gè)層次和各個(gè)方面看上去非常規(guī)范和一致。
當(dāng)我們能用寫詩的要求去編寫程序,當(dāng)我們能用詩朗誦的感覺去閱讀程序,我們的程序員將不再機(jī)械地編寫那毫無生命的代碼,我們的程序員將充滿激情譜寫出一曲動(dòng)人的樂章,感動(dòng)著自己,也感動(dòng)著讀者。每一個(gè)代碼充滿著活力,是跳躍的藝術(shù)音符,無數(shù)個(gè)代碼的組成卻是流淌的詩,一段一段,一行一行,給人以詩的享受。我們可能永遠(yuǎn)不能寫出傳世之詩,我們卻能夠要求自己編寫如詩的程序,享受那種寫詩的過程和情趣。 不斷地追求詩的境界將會(huì)讓我們的程序更加精煉、編程工作更加美好。
it知識(shí)庫:好的程序象一首詩,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。