我來設計(一):草稿思路之企業開發平臺

我來設計(一):草稿思路之企業開發平臺

序:
前兩天寫了份三年工作總結,被入選到了CSDN首頁,對我個人是莫大的鼓勵,說實話我的csdn賬號是2003年註冊的,至今已有十年,
這十年我很少發表技術文章,深感慚愧。以後要多寫,在多寫的過程中更容易能讓自己做細緻的思考,能到一個更深的深度。
在我的總結文章裏面提到了2013年要做企業開發平臺的計劃,有很多朋友也都給留言提了很好的意見,也有很多朋友在csdn上把我加了關注,
所以自己的計劃既然公佈了出來就不能不負責任的銷聲匿跡吧,所以只要有一點點新的想法就及時寫出來跟大家分享和討論
國內並不缺少有想法的程序員,缺的是把想法付諸於實踐並最終實現的人,我目前只是把這個開發平臺納入2013年計劃,年底是否能夠全部順利完成尚不能確定,
但是在2013年裏面至少我去努力去做,一步一步向目標靠近,有努力有行動才能讓自己真正有收穫,而不是在這吶喊幾句空頭志向就沒了下文。
2008年上半年在我讀完struts2代碼的時候就有寫本書來揭祕其底層實現的想法,但是後來因爲種種原因一直沒行動,這件事情現在想想多少有點遺憾。

地點:濟南大明湖畔


客戶需求

1.要求運行在JDK4環境下,這點讓我放棄了很多其他的設計思路;
2.所有的組件開發都要符合業務上需要

1,技術平臺

技術平臺基本就是寫出個類SSH的思路,從前端到中間到數據庫端完全自己封裝原始的API來實現。

持久層框架:難度:低
            客戶不希望用一些配置繁瑣的持久層框架,比較青睞直接寫原生態的sql來編碼,所以我在這一塊打算就是對jdbc做一個
            簡單的封裝即可了,至於數據庫事務和存儲過程是要必須支持的。核心方法就是需要客戶傳遞2個參數,一個是原生態的sql,
            一個是參數的數組對象,底層就是用java執行jdbc的數據庫操作。
            額外需要在數據庫連接中判斷數據庫的類型,然後根據數據庫的類型根據需要來自動添加能分頁的SQL片段。
            
中間層框架:難度:低
            這一塊不打算重新做輪子,就是直接使用spring框架即可,不過需要選個版本低的,保證能在jdk4下運行

前端層框架:難度:中
            說白了這塊就是封裝核心的處理類,一般都是經過某一個專門的servlet或filter,
            然後統一根據url映射到客戶自定義的處理類並返回到定義的頁面,
            依照現在客戶的需求來看,寫出類似struts1簡單小巧的mvc框架就可以滿足.
            
            稍微複雜點尤其是難調試的就是封裝標籤庫上,因爲我現在客戶那邊的業務翻來覆去基本就是那麼幾個界面要求,
            頁面控件就是那麼固定幾個,頁面控件都是用js來輔助達到要求的,所以需要在標籤庫裏面封裝的時候需要和JS代碼進行結合。

            一種結合方式是採用struts1的方式:java代碼裏面直接套入html標籤和調用js代碼

            一種結合方式是java代碼裏面調用模板引擎生成html代碼和調用或含有js的代碼

           

            頁面前端控件實現的核心還是js,需要用js來實現一些效果,
            比如:分頁效果,頁面局部刷新控制,對話框效果,信息提示,加載等待信息,數據驗證,帶分頁的表格,選項卡,日期,手風琴,樹形控件等還有封裝ajax提交工具方法。
            打算這塊直接採用開源的js庫,目前考慮的是jquery和yui3,比較而言jquery更容易接受,
            而且還有很多的jquery插件提供了實現我說的頁面控件效果,所以這塊可以考慮在上面進行二次開發。
            在這裏再聲明下,我目前要求的控件效果完全是根據我的業務來定製開發的,並不是對所有萬能業務都適合。           
            頁面控件實現形式基本都是採用jquery插件形式,這樣在使用的時候會更加方便。
            手工寫js代碼,也要求一律用面向對象的思維來編寫,統一進行封裝。
            在控件裏面最複雜的算是表格控件了,先介紹下表格控件的實現要求:
            大家可以先看看jquery的一個插件FlexiGrid,官方網站:http://code.google.com/p/flexigrid/

            實現效果跟Extjs表格很相似,不過這個控件提供的功能還不足以滿足業務的需要,還需做些二次開發。

技術平臺擴展要求:

        a:客戶如果需要改用其他的持久層框架,可以直接嵌入進來,把需要配置的地方放到中間層Spring裏面
        b:持久層的事務,可以在Spring裏面用AOP控制也可以在JDBC層來進行手工控制
        c:mvc框架要支持插件形式,技術架構上需要考慮支持。
        d:客戶的環境允許安裝高版本的JDK,那麼可以考慮把平臺中的某個插件或框架升級版本,、
        也可以考慮把某個其中的框架替換成另外支持高版本JDK的框架
        
業務平臺:

4,權限組織機構: 難度:容易

            關於組織機構,這個要看具體的業務,一般來講實現方式都會有這麼幾個概念:
            員工信息,公司或部門或機構,崗位,職務,業務組;
            關於權限無非包括控制資源和菜單的訪問或顯示,這點毫無爭議。
            在權限上需要考慮權限的繼承以及對某特定的人授予權限。
5,工作流:難度:中等
            這塊資料就相對多些,老外在這方面的實現也完全滿足不了符合中國國情的工作流需求,
            即使在某個行業內也沒有完全的審批標準,
            可能中間的某些環節上遇到了一位個性的領導,你的流程引擎就可能會有改動。
            現在國內很多公司都有了自己的工作流產品,根據自己的業務情況也很容易總結出來實現方式。
            關於流程設計器,我傾向用javascript的方式來實現,這一塊算是一個重點。
6,報表工具:  難度:高
            這塊我主要是講完全能解決複雜中國式報表的報表工具,所以對於老外提供的報表工具大多可以完全忽略。
            最常見的就是多級分組和交叉報表,還有:填報,圖表,精確打印等。
            實現方式我個人比較認可以類Excel表格的形式來進行拖拽式設計報表。
            國內有專門的實現這種需求的報表工具軟件公司,成立時間都不長,靠一個報表產品就足以支撐整個公司的生存,
            真可謂:一招鮮吃遍天。
            國內能做出來這個工具的公司很少,濟南的浪潮樓上平臺已經開發多年,唯獨缺少報表工具。
            由於這塊難度比較大,所以我計劃把這塊放到最後,打算長線研究,
            業餘任何時間有好的想法就突擊突擊,雖然我沒有足夠的把握能夠完全搞定,
            研究到一定程度上沒有更多進展的時候就及時調整主攻其他的組件。
            別人用一個團隊做了多年的產品,不是隨便一個人一夜間就能搞出來的,
            更何況我是單兵作戰,還不是狙擊手,時間上也不能保證是全職。           
            
外圍工具:
            主要是指我打算用swing來實現的一些外圍工具,優先級和難度都不大,故先不整理思路。
           
重新整理主攻的方向順序:   
        持久層框架>MVC框架(含標籤庫)>權限組織機構>工作流>報表              
            
            
            
            
            
           
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章