Flex項目技術架構前的假想

          Posted on 2008-01-30 09:08 久城 閱讀(4283) 評論(4)  編輯  收藏 所屬分類: Flex&ActionScript
          最近接觸一個Flex項目,我一個新員工,接觸不到架構,只能在這里假想。

          背景:
          外包項目,已完成系統設計,畫面(所有mxml的Demo)基本完成。

          40多人,分8個小組作業。每一個小組一個組長,每兩個小組一個試樣負責人。上面還有幾層領導分別負責不同的工作,管事兒的是部長。

          作業內容包括詳細設計,編碼和測試。

          我的問題:
          項目進行十分緩慢,最大的問題就是技術框架未定。由于大家都是第一次做Flex的項目,沒有什么經驗,對于一個新手來說,要想做好詳細設計,首先要有編碼的概念,但是現在,我沒有。
          面對分到的模塊,我不知道數據是如何封裝的,是如何傳遞的,數據如何處理,在哪里處理,更重要的是,如何與數據庫交互。這些問題沒有確定,對于一個Flex新手而言,真的很困難。

          與后臺交互的分析:
          這里要感謝cimmicola對我的講解!

          1. 下策  直接采用flex的httpservice,服務器端手動的拼裝xml,或者使用webservice。然后在客戶端手動的解析xml。這是這幾天做Demo時的做法,我相信這樣項目最終不會這樣做的。這樣做,對Flex新手而言,開發的復雜程度較低,但是工程化程度也很低。

          2. 中策  使用自己的框架,已經帶有序列化消息轉發層,(不知道有沒有,但感覺這樣一個大公司應該會有),比如可以將java對象序列化成xml數據或者json,這樣可以直接通過httpservice來請求服務器端數據,避免自己拼裝xml。這樣的框架目前開源的也有很多,其中把java對象序列化成json數據的方法有很多人都寫過,在學習Extjs的時候,就用到過。以前一直不理解java為什么要序列化,現在才真正體會到一點點。

          3. 上策  使用hessian或者remoteobject。講講兩者的區別。hessian和ro都是基于二進制的序列化協議。即將服務器端數據對象,比如 java".net"php等轉化到某個2進制的數據,從而在客戶端再次反序列化成as 數據對象。并且這兩種方式都能直接暴露服務器端方法(通過配置),因此可以看作是直接請求遠程對象的方法那樣使用,當然這個過程仍然是異步的。因此他們的 好處就是,請求容易,服務端實現容易,傳輸速度快,數據量大,客戶端直接識別這樣的好處。hessian是開源組織的通訊協議,起源很早,而且實現的語言很多,甚至包含C++,ruby等。他并不是為flash而生的。java上的實現是以servlet形式實現的,因此他是以繼承自他的servlet這樣的框架規范,來控制你的返回值的序列化,從某種含義說,他仍然算是傳統web框架。因為開源,因此可以對他框架可以靈活修改。
          ro是基于adobe的amf通訊協議,當然現在也開源了,實現ro的有很多服務,比如最常聽說到的LCDS,或者他的開源簡化版BlazeDS,amfPhp,webrob等等。LCDS 是java實現,也是官方出品,自然功能最強大了,他的ro部分(這只是LCDS最基礎的功能)類似spring的aop,直接對配置的java類進行切 入,因此對于設計模式來說,他打破了傳統的web請求模式,純粹通過訪問一個messagebroker這個servlet來訪問java類。因此如果不 太容易接受新架構或者對新架構不能靈活改變的話,會有些麻煩,比如說,他獲取不到傳統request對象。當然這也是可以完全通過改造程序框架得到解決 的。

          最后
          項目還在進行中,我還在緩慢的學習Flex的過程中。
          可以感覺到領導們都很忙,而最底層的人卻很清閑,包括我,還有時間在這里寫BLOG呢。
          很想幫上忙,卻幫不上什么,只希望這個項目的技術框架早一些定下來。


          歡迎來訪!^.^!
          本BLOG僅用于個人學習交流!
          目的在于記錄個人成長.
          所有文字均屬于個人理解.
          如有錯誤,望多多指教!不勝感激!

          Feedback

          # re: Flex項目技術架構前的假想  回復  更多評論   

          2008-01-30 13:21 by 魚中魚
          在安裝Flex builder 的時候需要apach conifgura文件是怎么回事?

          怎么操作?

          麻煩了

          wangqianyfz@163.com

          # re: Flex項目技術架構前的假想  回復  更多評論   

          2008-01-30 13:36 by 咖啡屋的鼠標
          我的上一個項目就是用的第一種方法,然后用AS寫了一個底層通訊的類,總的來說代碼是比較清晰的,唯一的問題是前后臺的數據傳遞,Flex端不管是解析XML(偉大的E4X?。┻€是使用JSON對象都很方便,可是后臺就不太方便了。mapping那塊很麻煩,還對重構不太友好。或許可以考慮寫一個CodeGen來輔助。

          我個人是傾向第三種解決方案。試用了一下BlazeDS還是不錯的,省掉了很多麻煩。不過沒有在真實項目用過還不知道在細節上會不會有嚴重的問題。如果采用這種方式,我覺得像寫Servlet一樣寫一些門面類,讓Flex通過門面來訪問是比較穩妥的一個方案,不要暴露太多后臺的類給前臺。

          寫模塊的時候mxml寫view,as寫model和controller(必要的時候as也可以寫點view,因為編譯速度快),盡量減少代碼行數,不要寫沒用的類結構。較大而且獨立性比較強的模塊就用Module,Module直接寫在mxml中是沒用的,得使用ModuleLoader。

          # re: Flex項目技術架構前的假想  回復  更多評論   

          2008-01-30 13:46 by 久城
          @魚中魚
          沒遇到過這種情況,不知道你裝的是什么版本,如果你安裝的是FLEX BUILDER 3 BETA3的STANDALONE版本的話,一定不會有這個現象的。建議下載重新安裝一下試試。
          @咖啡屋的鼠標
          多謝指點!:)你也可以說是老手了,我還在不停的寫DEMO呢。別人也推薦我用BlazeDS,都說很好很強大,但最終項目用什么還是領導們說了算嘿嘿。目前項目view層的模塊化實現的挺好,如你所說的,mxml寫view,as寫model和controller,但是畫面的邏輯還是寫在view里。

          # re: Flex項目技術架構前的假想  回復  更多評論   

          2008-01-30 16:54 by 地球玩家
          框架有問題?!進www.cnflex.org看看吧

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          Copyright © 久城

          主站蜘蛛池模板: 长乐市| 高雄市| 集贤县| 措美县| 定结县| 鄂州市| 台前县| 湟源县| 扎赉特旗| 屏东县| 二连浩特市| 自治县| 凉城县| 伊金霍洛旗| 抚州市| 修武县| 赣州市| 晋江市| 营口市| 定襄县| 巍山| 伊吾县| 马边| 拉萨市| 昂仁县| 连州市| 徐州市| 沙河市| 邯郸市| 隆子县| 当涂县| 广汉市| 诸暨市| 栾城县| 东明县| 阳朔县| 永平县| 石楼县| 长宁区| 株洲市| 新邵县|