分享3年前關于Flex開發的一篇隨筆

? ? ? ?用了5年的筆記工具mybase這周突然用著用著崩潰了,導致一份2G的筆記掛彩打不開,差點欲哭無淚,幸好最后都全部修復了。也因為這樣重新整理一遍筆記,發現3年前寫的一篇筆記,那時H5還不像現在這么火,Flex也還茍延殘喘著,當時公司有個3D大屏項目,需要我內部培訓幾個小伙伴來扛這活。想想有點過意不去,我也不想他們把時間耗在學習一門將死的技術上(我當時確實認定flex將死,現在應驗了),所以在部門wiki上寫了一篇文章,題目叫《flex開發初識上篇》,目的是讓他們辯證的看這個技術,既然公司需要,那么可以站得高一點去學一門技術,不是學它的語法和技巧,而是去認識它,了解它的來龍去脈和原理。

我的flex開發經驗雜談:flex開發初識上篇

? ? ? ?我從事flex相關開發已經4年有余,至今我仍認為自己不是一名專業從事flex開發的從業人員,flex開發對我來說更多只是其中一項開發技能,所以談不上指導或分享flex開發之道,只是簡單談談和分享一下我個人在flex學習和開發上的點滴體會和經歷,思路零散,文筆粗俗,不喜勿噴!

? ? ? ?flex是什么?這個問題度娘能很好回答你。要是你問我度娘是誰?那么恭喜你奧特曼了。不過對flex一無所知的人在得到度娘的回答之后可能仍是會有一個非常大的誤區和疑惑存在。那就是flex和flash的關系,他們的區別同樣可以問度娘,請原諒我的偷懶,不過我在此說一個"非常非常"深刻的體會!那就是大多數所謂的官方說明,官方解釋,甚至產品白皮書,你不能全信!(還有某臺的新聞,你懂的)要有自己的思考和探索!我可是經常很汗顏的看自己參與過的項目或產品的介紹或白皮書,心里都會直嘀咕"臥噻!這真的是在說這個產品嗎?"。其中我說個關于flex的官方說明中的其中一個優點舉例"flex提供了很多組件,可以直接應用,也有很多免費的框架,大大提高了開發效率。"以我個人的開發經驗(雖然不多)來說,真實情況卻是:"flex組件雖多",但你拿他來學習和做個過家家的程序可以,拿來直接做企業級開發嘛,沒戲(不是不能,是不值和不便)!"有很多免費的框架",沒有喔,完全沒有,當然我說的是能在企業級開發中使用的,別說免費的,收費的也沒多少。"大大提高了開發效率",如果你的企業級應用,前端完全采用flex呈現,那么我可以很負責任的告訴你,開發效率只有降低的份,要想提高,自主研發一套框架吧,而且會有一大堆已經存在非常成熟解決方案的問題需要你重新面對。那么是不是就不適合用flex做企業級開發呢?答案肯定是否的,企業級的應用還是存在的,至少我就做了1年半純flex前端的企業級開發,那是給美的做的CRM管理系統和上海櫻花衛廚做的IMS系統,都是純flex前端開發。也就是說有利有弊的,雖然個人認為目前是弊大于利(主要是指選擇上,與選擇傳統技術相比,因為其他技術太成熟、資料繁多、且免費居多)。但若是有能力有成本去面對這些弊而又非常喜歡這些利,那完全可以選擇flex,你看頁游不是紅紅火火的嗎,頁游可是大多都有使用flex進行開發,不過嚴格來說應該是使用AS進行開發。(flex和as有什么不同?問度娘吧,讓我一句話比喻就類似html和js的關系,但又不完全像,還是去問專業的度娘吧!)而且頁游算不算企業級開發呢,見仁見智吧。

? ? ? ?學習flex有沒有前途?不少人都問過我這個問題,我自己剛接觸時也不能說沒想過這個問題,但這個問題對我來說,說句心里話,真沒那么重要。因為我一直以研發自居,我喜歡的是研發,所以沒想太多。在我剛工作時,因為公司需要,當時公司沒人會這門技術,有幸我們一群畢業生被拿來做白老鼠,這真是一件非常幸運的事,因為后來在公司主推這個開發平臺框架(SDP,自主研發的框架)的時候,所有畢業生后面都成了主力開發人員,雖然現在這個平臺已經夭折了(據舊同事透漏)。那么回到這個問題,讓我回答的話就是如果項目沒有需要,您沒有必要專門去學習這門技術,如果項目有需要的話,不管這門技術有沒有前途,假如你學透的是面向對象編程、封裝、組件開發、框架開發,那么對您其他技能只有好處沒有壞處。像要我開發js組件或jsp自定義標簽那是完全沒有問題的。這個答案是不是有點避重就輕呢?那我還是稍微正面一丁點回答這個問題吧,總體來說flex的應用范圍和使用率在未來都不會有太大變化甚至是呈減少下降的趨勢,其競爭技術則呈慢慢提升的趨勢,如html5、WebGL、Node.js等技術(雖然Node.js算不上前端技術,但它確實有可能讓前端開發產生一些變革,在最近的3D開發研究中就看過node.js與WebGL結合的框架),是否會被淘汰呢?難說,當年諾基亞手機漫天飛的時候誰也沒想到他會有今天這樣的窘境。但至少未來幾年還不至于被淘汰,它在某些應用方面暫時還是首選的,所以您真要到了精通的程度,不可能沒有用武之地,能精通Flex那么學習html5也是手到擒來,學習其他技術也一樣。但是還是不能忽略國內行情,在中國軟件開發行業,能長期專研基礎開發的人員并不多,除非你是非常牛的人,真到你花了N年精通了一門技術了,你已經不需要或現實已經不允許你再去花大量的時間去專門純研究另一門技術了。這也是大多數技術人員的悲哀,當然包括我在內。在"技術->能力->效益->價值"這條鏈條上,我和大多數技術人員一樣,還是徘徊在前兩者之間。

? ? ? ?flex開發的利于弊。flex在企業級應用中并不是很廣泛,對此我談談個人的一些看法。作為使用了flex技術4年有余的開發人員,我認為我對flex開發中最大的問題便是,缺乏企業級開發的框架,而這個問題我覺得不是問題的根本,為什么呢?因為我覺得這個說是原因,其實更是結果,因為有更深層的原因所以產生了這個結果,而對開發人員來說這個尤其是對希望快速低成本構建自己的企業級應用的團隊或公司來說,這個是很嚴重的問題,我所在的第一家公司就花了半年多去研發自己公司的flex開發框架(不過它的定位并不是純flex的開發框架,事實上這是一個與普元開發平臺耦合的一個快速開發應用前端的框架),我認為這個框架最終是失敗的,因為在后續的持續兩年多里該框架面臨了總總挑戰和不斷修補。能堅持幾年有余還支撐了5~6個項目上線,已經值得我們那群初生牛犢自豪了,當然少不了當時有一位資深技術總監在,我們當時即不是稱他做"老大"也不是"老總",都叫"傅老師",因為當時我們實際還沒畢業,也因此這個稱呼后來就在公司出名了,誰見到他都叫"傅老師"。扯遠了,flex開發有什么利呢,那就是"炫",這個沒什么好說的,我要說的利正是前面說的弊之所在。也就是沒有企業級開發框架,雖然沒有,但是可以創造,他的利就是你可也很方便的擴展SDK,只要有條件,可以做出非常棒的框架,可以不斷擴展和完善框架,用js做組件和框架,像jquery組件,做容易,但是要想改,要想優化,想不斷升級,想繼承,那是異常痛苦的,而flex則不僅顯得簡單,關鍵是"舒服",如果你很習慣面向對象編程的話。另外一個好處就是它不存在瀏覽器兼容性問題,兼容性有時是讓人頭痛不已的事情。不過對這個優點我一直有自己的看法,說白了flash不是運行在瀏覽器上,它是運行在flashplayer插件上(更深一層是運行在AVM2上),跟java程序運行在JVM上一樣,也就是任何一門新技術都可以做到跨平臺,只要你有能力讓瀏覽器默認都安裝了你的某種類似叉叉VM的東西或者輕易的能裝上。雖然目前絕大多說電腦裝機就有,但是以前瀏覽器要裝flashplayer插件也是要自己下載的。

? ? ? ? 以上扯了不少,雖然說我曾參與過的flex框架最終并沒有存活下來,但對于flex框架的開發我還是獲益不少的,下次有機會再談一下我個人對flex框架開發的一點設想。此文僅做分享用途,僅是個人見解!不喜勿噴!歡迎指教!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容