本日字母湯 - SOA, CBD, PB/OOAD
PB/OOAD: Pattern-Based Object Oriented Analysis and Design.
CBD: Component-Based Design.
SOA: Service Oriented Architecture.
這三個字真是 料多 實在 妙用無窮 啊~
任何一個好的、成熟的、複雜的專案,都應該遵照這三個原則,從一開始的規畫設計就整合Pattern與OO,並使用UML做為溝通的工具(我常用的幾種圖是 use case, class diagram, sequence diagram, ER,其它就隨緣了),等A/D出來後,在實作階段就應該盡量採取Component-Based Design(在flash裏面,component可以是指單純的UI components,但也可以是多個UI components的集合單元);而後端的部份則應該儘量採用SOA(不論是像.net的code behind, coldfusion的cfc或其它各種web service應用,總之後端服務應該有一定的封閉性,透過facade或adapter原理來操作)。
所以簡單來講,這三個字是有先後性的:
分析 - 前端實作 - 後端實作
PB/OOAD - CBD - SOA
雖然這三個字每個都不簡單,個個也都是大學問,但越早採用受益越多,對flash-based 的 RIA製作來說,比較大的難題可能是工程師得先從其它領域(.NET/JAVA)學會這些概念,然後再自行轉換到actionscript 2來,雖然過程中會造成進度遲緩,但就像大浪要來前必然會先退潮,退的越多後續沖上來的力道越強,一旦過了這個轉折之後就輕鬆了。
經過近兩個月的努力,最近我們終於完成一套貼近人性、彈性高又易用的framework(或稱做RIA best practice也行),可以用最接近傳統win32 programming的方式達到快速開發(RAD)應用程式的效果,在未來幾個星期中我會將部份範例程式整理成教學文章放上來,請大家多指教。
ps. 經常被問到:為何我要這麼在意 方法論/framework/best practice/軟體工程 之類的東西,理由其實很簡單:
1、要認真開發商用軟體(不論是用flash/.net/java),這都是必經的路,就跟做音樂一定要買mac是一樣的道理,雖然用其它方法也能達到類似效果,但路遙知馬力差別總有顯現出來的一天(而且往往會快的讓人嚇一跳),所以與其繞路不如直指核心一次搞定最重要的部份。
2、受夠了flash向來惡名昭彰的惡搞開發流程,十個設計師寫出來的程式就會有二十種不同的手法跟三十種不同的錯誤加上四十個修不掉的bug,這一切會發生絕對都是有原因的,其中共通的一點就是在於先天缺乏正統的CS訓練,後天又沒有generally agreed-upon methodology可依循,再加上flash也是這一兩年才開始進入Application的開發領域,所以一切都太年輕、太混亂(不論是人、技術、市場皆是如此)。


1 Comment Add your own
1. miao&hellip | May 17th, 2005 at 2:43 pm
Hi,nice to meet your blog.
It is more than my anticipation.
I will come frequently.
Trackback this post | Subscribe to the comments via RSS Feed