天天看點

程式設計的本質

程式員們每天為之忙碌而編寫的程式歸根到底是由什麼組成的?——資料和算法 。

想想是不是這樣?

那麼,究竟是“資料/結構”重要?還是“算法”更重要呢?

思考一下我們為什麼要編寫程式?——處理資料 。

不是麼,無論是存儲和讀取、發送和接收、監聽和訂閱、服務端與用戶端,我們翻來覆去,玩的就是一堆“數”。

是以可以想象,如果程式建立在一個不佳的資料模型之上,改進的成本将遠遠大于建立在不佳的算法之上。

資料模組化是建構好系統的第一步,如同建造一座高樓,好的基礎是最重要的,而優秀的算法如同華麗的裝飾,可以看作是後來的錦上添花,盡管這在很多情況下是必不可少的……

編寫程式的難點在哪裡?或者說我們如何把“數”玩到極緻?——多線程和記憶體 。

對于這兩點算法的研究和改進可以說永無止境!因為它們決定着系統的安全性、健壯性和效率。

多線程和記憶體的算法一直是高手們談論的話題、面試中的難點、工作中的陷阱,想想吧:JVM Cache 高性能 高負載 …… 都與二者密切相關。

一個改程序式的例子:

Gaven King 寫 Hiberate 的動力就是因為厭倦了RD(關系資料模型)和OOP(面向對象程式設計)之間的轉換——通過 JDBC + MetaData 你已經可以全部掌控對象資料模型,那麼為什麼不多加一個工具層,實作這種軟化呢。

     本文轉自胡奇 51CTO部落格,原文連結:http://blog.51cto.com/huqicto/280909,如需轉載請自行聯系原作者