close

框架是:

在有限制的條件下,提供使用者在更短時間內開發出品質更佳

 

Framework這個名詞在軟體業中應該不算陌生,只要有寫過程式(尤其是web apps)應該多少都有使用或聽過。舉例而言,在java solutionweb-based開發常見的frameworkspringhibernatestruts…等等的火紅framework;當然,若你是MS的擁護者那.NET framework我想對你一定更不陌生。 

然而到底什麼是framework呢?個人的見解覺得framework其實不難懂。簡單來說,framework其實就是『interface+add values。以實例來說:

  • Ø          spring framework主要就是為了達到IoCDI,致力於依賴性注入的使得系統的彈性能大幅提升。有使用過spring的朋友們一定就能體會他提供了需多規範好的interface供設計師依照規範實做之;此外,當你將各個interface實做並且依規範指定好注入的實際類別時,內部將有一連串的work flow來幫你達到IoCDI的效果(add values)
  • Ø          hibernate framework主要就是為了達到ORMDAO,致力於操作物件就可以直接映設到底層的RDB資料。有使用過hibernate的朋友們應該也能體會到他就是提供一系列的外在api(我們可以看成對外的interface);此外當我們透過api來操作物件時,底層會自動轉換成操作RDBDDLDMLDCL等指令(add values)

以軟體的角度而言,框架其實扮演了很重要的角色,而要開發一個好的框架首要一定要記得:框架是在有限制的條件下提供使用者(即一般程式開發者)在更短時間內開發出品質更佳(因為add values中的work flow通常已採用良好的design pattern)且更穩定的軟體系統(當中的work flow大多經過較縝密的驗證過)

當聽到一個框架也以適用於任何情況下,那換句話說也就是沒有一個地方可用,主要是當領域別的限制條件去除後將使得框架為了滿則任何可能情況而變得需彈性到極致,試想spring若說同時能支援IoCDIORMDAOMVC…等等各式各樣的效果,那將成為一個四不像的框架。此時建議你直接用java手寫開發吧。

還有,在此給予一個忠告:若不能徹底瞭解一個framework的實際原理,那建議你放棄吧,畢竟framework背後代表的邏輯意義跟設計模式,通常是一體兩面,有利有弊。學過design pattern的同道中人應該瞭解各pattern都有其適用情況跟時機,若不當使用framework而不瞭解其原委將大大降低日後系統的可擴充性,在此時恭喜你維護案的苦日子將離你不遠了(或許過不了多久你就會為了逃避而開啟104yes123等逃脫平台了;當然如果你是遊戲高手就是你要gg)

若要開發出一個好的框架要從兩個層面下手處理:

  1. 妥善設計好跟外在的互動使用者介面(apisdkinterface…),例如facebook提供的外部資料擷取方式的apigoogle maps apigoogle search api等等。好的介面設計是你日後修改內部程式的彈性優劣之關鍵。
  2. 內部的add values請記得隨時保持簡約性(不要over design)易讀性易除錯性
arrow
arrow
    全站熱搜

    劉逸 發表在 痞客邦 留言(0) 人氣()