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