Flex項(xiàng)目技術(shù)架構(gòu)前的假想
Posted on 2008-01-30 09:08 久城 閱讀(4285) 評論(4) 編輯 收藏 所屬分類: Flex&ActionScript最近接觸一個(gè)Flex項(xiàng)目,我一個(gè)新員工,接觸不到架構(gòu),只能在這里假想。
背景:
外包項(xiàng)目,已完成系統(tǒng)設(shè)計(jì),畫面(所有mxml的Demo)基本完成。
40多人,分8個(gè)小組作業(yè)。每一個(gè)小組一個(gè)組長,每兩個(gè)小組一個(gè)試樣負(fù)責(zé)人。上面還有幾層領(lǐng)導(dǎo)分別負(fù)責(zé)不同的工作,管事兒的是部長。
作業(yè)內(nèi)容包括詳細(xì)設(shè)計(jì),編碼和測試。
我的問題:
項(xiàng)目進(jìn)行十分緩慢,最大的問題就是技術(shù)框架未定。由于大家都是第一次做Flex的項(xiàng)目,沒有什么經(jīng)驗(yàn),對于一個(gè)新手來說,要想做好詳細(xì)設(shè)計(jì),首先要有編碼的概念,但是現(xiàn)在,我沒有。
面對分到的模塊,我不知道數(shù)據(jù)是如何封裝的,是如何傳遞的,數(shù)據(jù)如何處理,在哪里處理,更重要的是,如何與數(shù)據(jù)庫交互。這些問題沒有確定,對于一個(gè)Flex新手而言,真的很困難。
與后臺交互的分析:
這里要感謝cimmicola對我的講解!
1. 下策 直接采用flex的httpservice,服務(wù)器端手動(dòng)的拼裝xml,或者使用webservice。然后在客戶端手動(dòng)的解析xml。這是這幾天做Demo時(shí)的做法,我相信這樣項(xiàng)目最終不會(huì)這樣做的。這樣做,對Flex新手而言,開發(fā)的復(fù)雜程度較低,但是工程化程度也很低。
2. 中策 使用自己的框架,已經(jīng)帶有序列化消息轉(zhuǎn)發(fā)層,(不知道有沒有,但感覺這樣一個(gè)大公司應(yīng)該會(huì)有),比如可以將java對象序列化成xml數(shù)據(jù)或者json,這樣可以直接通過httpservice來請求服務(wù)器端數(shù)據(jù),避免自己拼裝xml。這樣的框架目前開源的也有很多,其中把java對象序列化成json數(shù)據(jù)的方法有很多人都寫過,在學(xué)習(xí)Extjs的時(shí)候,就用到過。以前一直不理解java為什么要序列化,現(xiàn)在才真正體會(huì)到一點(diǎn)點(diǎn)。
3. 上策 使用hessian或者remoteobject。講講兩者的區(qū)別。hessian和ro都是基于二進(jìn)制的序列化協(xié)議。即將服務(wù)器端數(shù)據(jù)對象,比如 java".net"php等轉(zhuǎn)化到某個(gè)2進(jìn)制的數(shù)據(jù),從而在客戶端再次反序列化成as 數(shù)據(jù)對象。并且這兩種方式都能直接暴露服務(wù)器端方法(通過配置),因此可以看作是直接請求遠(yuǎn)程對象的方法那樣使用,當(dāng)然這個(gè)過程仍然是異步的。因此他們的 好處就是,請求容易,服務(wù)端實(shí)現(xiàn)容易,傳輸速度快,數(shù)據(jù)量大,客戶端直接識別這樣的好處。hessian是開源組織的通訊協(xié)議,起源很早,而且實(shí)現(xiàn)的語言很多,甚至包含C++,ruby等。他并不是為flash而生的。java上的實(shí)現(xiàn)是以servlet形式實(shí)現(xiàn)的,因此他是以繼承自他的servlet這樣的框架規(guī)范,來控制你的返回值的序列化,從某種含義說,他仍然算是傳統(tǒng)web框架。因?yàn)殚_源,因此可以對他框架可以靈活修改。
ro是基于adobe的amf通訊協(xié)議,當(dāng)然現(xiàn)在也開源了,實(shí)現(xiàn)ro的有很多服務(wù),比如最常聽說到的LCDS,或者他的開源簡化版BlazeDS,amfPhp,webrob等等。LCDS 是java實(shí)現(xiàn),也是官方出品,自然功能最強(qiáng)大了,他的ro部分(這只是LCDS最基礎(chǔ)的功能)類似spring的aop,直接對配置的java類進(jìn)行切 入,因此對于設(shè)計(jì)模式來說,他打破了傳統(tǒng)的web請求模式,純粹通過訪問一個(gè)messagebroker這個(gè)servlet來訪問java類。因此如果不 太容易接受新架構(gòu)或者對新架構(gòu)不能靈活改變的話,會(huì)有些麻煩,比如說,他獲取不到傳統(tǒng)request對象。當(dāng)然這也是可以完全通過改造程序框架得到解決 的。
最后
項(xiàng)目還在進(jìn)行中,我還在緩慢的學(xué)習(xí)Flex的過程中。
可以感覺到領(lǐng)導(dǎo)們都很忙,而最底層的人卻很清閑,包括我,還有時(shí)間在這里寫B(tài)LOG呢。
很想幫上忙,卻幫不上什么,只希望這個(gè)項(xiàng)目的技術(shù)框架早一些定下來。
背景:
外包項(xiàng)目,已完成系統(tǒng)設(shè)計(jì),畫面(所有mxml的Demo)基本完成。
40多人,分8個(gè)小組作業(yè)。每一個(gè)小組一個(gè)組長,每兩個(gè)小組一個(gè)試樣負(fù)責(zé)人。上面還有幾層領(lǐng)導(dǎo)分別負(fù)責(zé)不同的工作,管事兒的是部長。
作業(yè)內(nèi)容包括詳細(xì)設(shè)計(jì),編碼和測試。
我的問題:
項(xiàng)目進(jìn)行十分緩慢,最大的問題就是技術(shù)框架未定。由于大家都是第一次做Flex的項(xiàng)目,沒有什么經(jīng)驗(yàn),對于一個(gè)新手來說,要想做好詳細(xì)設(shè)計(jì),首先要有編碼的概念,但是現(xiàn)在,我沒有。
面對分到的模塊,我不知道數(shù)據(jù)是如何封裝的,是如何傳遞的,數(shù)據(jù)如何處理,在哪里處理,更重要的是,如何與數(shù)據(jù)庫交互。這些問題沒有確定,對于一個(gè)Flex新手而言,真的很困難。
與后臺交互的分析:
這里要感謝cimmicola對我的講解!
1. 下策 直接采用flex的httpservice,服務(wù)器端手動(dòng)的拼裝xml,或者使用webservice。然后在客戶端手動(dòng)的解析xml。這是這幾天做Demo時(shí)的做法,我相信這樣項(xiàng)目最終不會(huì)這樣做的。這樣做,對Flex新手而言,開發(fā)的復(fù)雜程度較低,但是工程化程度也很低。
2. 中策 使用自己的框架,已經(jīng)帶有序列化消息轉(zhuǎn)發(fā)層,(不知道有沒有,但感覺這樣一個(gè)大公司應(yīng)該會(huì)有),比如可以將java對象序列化成xml數(shù)據(jù)或者json,這樣可以直接通過httpservice來請求服務(wù)器端數(shù)據(jù),避免自己拼裝xml。這樣的框架目前開源的也有很多,其中把java對象序列化成json數(shù)據(jù)的方法有很多人都寫過,在學(xué)習(xí)Extjs的時(shí)候,就用到過。以前一直不理解java為什么要序列化,現(xiàn)在才真正體會(huì)到一點(diǎn)點(diǎn)。
3. 上策 使用hessian或者remoteobject。講講兩者的區(qū)別。hessian和ro都是基于二進(jìn)制的序列化協(xié)議。即將服務(wù)器端數(shù)據(jù)對象,比如 java".net"php等轉(zhuǎn)化到某個(gè)2進(jìn)制的數(shù)據(jù),從而在客戶端再次反序列化成as 數(shù)據(jù)對象。并且這兩種方式都能直接暴露服務(wù)器端方法(通過配置),因此可以看作是直接請求遠(yuǎn)程對象的方法那樣使用,當(dāng)然這個(gè)過程仍然是異步的。因此他們的 好處就是,請求容易,服務(wù)端實(shí)現(xiàn)容易,傳輸速度快,數(shù)據(jù)量大,客戶端直接識別這樣的好處。hessian是開源組織的通訊協(xié)議,起源很早,而且實(shí)現(xiàn)的語言很多,甚至包含C++,ruby等。他并不是為flash而生的。java上的實(shí)現(xiàn)是以servlet形式實(shí)現(xiàn)的,因此他是以繼承自他的servlet這樣的框架規(guī)范,來控制你的返回值的序列化,從某種含義說,他仍然算是傳統(tǒng)web框架。因?yàn)殚_源,因此可以對他框架可以靈活修改。
ro是基于adobe的amf通訊協(xié)議,當(dāng)然現(xiàn)在也開源了,實(shí)現(xiàn)ro的有很多服務(wù),比如最常聽說到的LCDS,或者他的開源簡化版BlazeDS,amfPhp,webrob等等。LCDS 是java實(shí)現(xiàn),也是官方出品,自然功能最強(qiáng)大了,他的ro部分(這只是LCDS最基礎(chǔ)的功能)類似spring的aop,直接對配置的java類進(jìn)行切 入,因此對于設(shè)計(jì)模式來說,他打破了傳統(tǒng)的web請求模式,純粹通過訪問一個(gè)messagebroker這個(gè)servlet來訪問java類。因此如果不 太容易接受新架構(gòu)或者對新架構(gòu)不能靈活改變的話,會(huì)有些麻煩,比如說,他獲取不到傳統(tǒng)request對象。當(dāng)然這也是可以完全通過改造程序框架得到解決 的。
最后
項(xiàng)目還在進(jìn)行中,我還在緩慢的學(xué)習(xí)Flex的過程中。
可以感覺到領(lǐng)導(dǎo)們都很忙,而最底層的人卻很清閑,包括我,還有時(shí)間在這里寫B(tài)LOG呢。
很想幫上忙,卻幫不上什么,只希望這個(gè)項(xiàng)目的技術(shù)框架早一些定下來。
歡迎來訪!^.^!
本BLOG僅用于個(gè)人學(xué)習(xí)交流!
目的在于記錄個(gè)人成長.
所有文字均屬于個(gè)人理解.
如有錯(cuò)誤,望多多指教!不勝感激!