2008年10月24日 星期五

R24 程式設計想法的差異

在某些電影的逃命場景裡,主角敏捷地利用周遭的地形地物脫離敵人的追殺,我們在感嘆主角的反應過人之際,是否也同樣地注意到他對可利用的一切事先所下的苦功?要能快速地使用手邊的資源,勢必要先瞭解該物件的特性與用法,才能依照心中的想法組合為可達成目標的使用順序。

坊間有很多學會XX語言程式設計之類的書籍,對於初次接觸程式語言的新手,那的確可以快速學會該語言的特性與用法。不過那樣的書主要是以學會並使用XX語言為主,裡面並不會說明如何去條理化達成功能的思緒;也就是說它提供的是準備被我們使用的資源,怎麼去用端看設計者的心裡怎麼想。

心中對於完成功能所作的系統佈置就像是Model,以某種程式語言根據心中想法做出的產出就像是View;在想法正確的前提下依功能流程動作在各種語言下所找到的最佳化寫法,是程式寫作上應作的努力。在特定專業領域裡累積的分析設計經驗,也應該能夠在各種不同的平台與語言下落實,其原因是達成功能的動作都可以在各種平台與語言找到對應的程式寫法。

在程式設計的領域裡,精通某種程式語言到出神入化的境界並能對各種需求做出對的結果,充其量只是很會使用該程式語言,如何系統化地佈置達成功能的全部想法以滿足各種不同面向的需求才是成功的關鍵。在需求不變時達成功能並不困難,在需要各種不同的分析統計或是變更時作最小的改變同時得知影響的範圍,我認為這才是設計的目的。

另外,文件記錄的應該是屬於心中想法的Model,而不應該是程式語言的呼叫方法。程式語言的函式庫有文件詳盡地說明各個方法,但是達成功能的分解動作與流程是深入分析過的人才有的結論,這是沒有地方可以找到的。記錄下達成目標的流程動作並對應到為此而宣告的方法與使用到的資源,才是這個系統裡最重要的資產。

沒有留言:

張貼留言