偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

一位RoR企業(yè)開發(fā)者的經(jīng)驗分享

開發(fā) 開發(fā)工具
Ruby on Rails自誕生以來一直在Web開發(fā)領(lǐng)域大展風采,但在企業(yè)開發(fā)領(lǐng)域則比較冷清,也有很多人認為RoR并不適合做企業(yè)開發(fā)。不過,本文作者身為RoR企業(yè)開發(fā)者,分享了自己的一些開發(fā)經(jīng)驗與思考。

用ror開發(fā)b/s已有3年了,早在2006年初接觸ror(Ruby on Rails)的時候,當時國內(nèi)沒有一點中文資料,但一句“比java高10倍的開發(fā)效率”;讓我去四處尋找ror的英文資料,一個月以后我就已經(jīng)開始嘗試用ror寫點小東西,然后徹底拋棄java,轉(zhuǎn)向ror。到現(xiàn)在,我已經(jīng)擁有了3年的ror開發(fā)經(jīng)驗,這三年來,ror讓我的技術(shù)水平上了一個大臺階,在開發(fā)的過程中也讓我遭遇到了很多懷疑的目光,與經(jīng)理頂撞,甚至因此失業(yè)。但是我相信真理,相信技術(shù)能改變社會,所以我一直堅持ror道路。

做ror開發(fā)最麻煩的就是沒有人可以交流,從網(wǎng)上查詢的資料也甚少,而且國內(nèi)ror技術(shù)大多用在網(wǎng)絡社區(qū)上,而我是做企業(yè)開發(fā)的。基本上無人可以交流。既然如此,干脆就把我這幾年的企業(yè)開發(fā)經(jīng)驗說出來,與大家共分享。

何謂企業(yè)開發(fā)?

對于這個問題,似乎并沒有明確的規(guī)定,不同的人似乎也有不同的理解。從技術(shù)層面來說,我覺得企業(yè)應用與一般的網(wǎng)絡應用相比就是多了工作流與報表這兩個大的模塊。從技術(shù)特點的比較上來說,一般的網(wǎng)絡社區(qū)應用講究界面人性化,功能點多而雜。而企業(yè)應用則不然,企業(yè)應用對界面不太講究,有一個固定的風格即可,功能點少而深。重視數(shù)據(jù),重視流程。所以我重點講講我在ror上運用工作流與報表的經(jīng)驗。

舉一個簡單的例子,用戶想做一個采購申請單的功能。他會給你一張紙質(zhì)的采購申請單表格(也可能是excel格式的),告訴你采購申請單的審批流程,然后要你用軟件實現(xiàn)這個業(yè)務。這是一個典型的企業(yè)應用實例,拿到這個需求后來我們怎么實現(xiàn)呢?

對于這個需求,在真正的企業(yè)開發(fā)中我們需要用流程設(shè)計器設(shè)計采購流程,用表單設(shè)計器設(shè)計每個流程點上的表單界面(注意在不同的流程點上對于單元格的可寫權(quán)限不同),設(shè)定好每個流程點上的權(quán)限,這樣擁有權(quán)限的人才可以進入這個點,發(fā)起采購申請或者進行采購申請的審批。然后我們還得有一個查詢統(tǒng)計界面,能夠查詢以往的采購申請單數(shù)據(jù)。同時我們***擁有網(wǎng)頁精確打印功能,這樣可以將申請單打印出來蓋章存檔。當然表單導出excel和pdf是不可缺少的。別忘了,我們的系統(tǒng)是不能做死的,因為采購申請單是可變的,也許明年表單格式發(fā)生變化,也許審批流程會變化。還有,查詢模板也是可增減可變的,天知道領(lǐng)導哪天想查什么報表。

考慮到上面這些,是不是有點抓狂了?呵呵,企業(yè)開發(fā)確實比較麻煩,想知道我怎么實現(xiàn)那就繼續(xù)往下看吧。

對于上面這個需求,采用我寫的框架,實現(xiàn)這個需求快則10分鐘,慢則30分鐘就可以實現(xiàn)。我不會單獨為這個功能編寫代碼。所有可變的業(yè)務邏輯我都用設(shè)計器來實現(xiàn)。我的框架很好的實現(xiàn)了業(yè)務邏輯(變)與技術(shù)功能(不變)的分離。

我的實現(xiàn)方式:

1:用我開發(fā)的工作流設(shè)計器(vc開發(fā),保存為xml格式,遺憾的是改格式不符合國際標準),設(shè)計一個采購申請流程,依據(jù)用戶的要求在每個流程點上指定權(quán)限。保存為xml文件后發(fā)布到系統(tǒng)上。

2:用我開發(fā)的表單設(shè)計器(vc開發(fā),類似excel,保存為xml),設(shè)計流程點上的表單,依據(jù)用戶的需求在每個流程點上表單的只讀屬性可能有所不同,所以可能會設(shè)計若干個表單。保存為xml文件后發(fā)布到系統(tǒng)上,與先前發(fā)布的流程的流程點對應上。發(fā)布表單的時候系統(tǒng)自動解析xml格式,動態(tài)建立數(shù)據(jù)庫表格,添加字段。

3:用我開發(fā)的報表設(shè)計器(與2是同一個東西),設(shè)計基本的查詢模板,寫好sql語句,保存為xml文件后發(fā)布到系統(tǒng)上。

做完上面3步后,這個需求就算是實現(xiàn)了,用戶新建一個采購申請單后看到的表單是純html的類似excel的格式,這個web form可以在線編輯(這個地方難度比較大,都是手寫的javascript),點擊保存后后臺自動處理,將其保存到新建立的表中。下一步怎么處理,與其他的工作流引擎是一致的。用戶打開一個已經(jīng)寫好的采購申請單,可以導出為excel或pdf,進行二次加工。也可直接網(wǎng)頁打印,是精確顯示的,可直接簽字后蓋章存檔。在查詢界面,用戶點擊一個查詢,輸入相關(guān)條件后可顯示查詢結(jié)果,以純html方式展示,也可導出excel或pdf(稍微遺憾的是查詢結(jié)果界面沒有圖表功能)。

ok,用戶的需求我們很好的完成了,用戶應該很滿意了

下面介紹一下我的框架,也為大家提供一條ror上企業(yè)開發(fā)框架的思路。

擁有企業(yè)開發(fā)框架需要的權(quán)限,日志,工作流,報表,這是需要具備的基本要素。當然還有很多瑣碎的小功能。其中最重要的2塊就是工作流與報表。

工作流

rubyforge上有一些工作流組件,但逐個分析后發(fā)現(xiàn)沒有一個可用的。所以只能靠自己了,我用vc開發(fā)了一個報表設(shè)計器,保存為xml文件后由ruby來解析流程。用自己寫的表單設(shè)計器設(shè)計表單,保存為xml,ruby解析后翻譯為html的一個table,方便精確顯示到網(wǎng)頁上,還要寫一個復雜的javascript腳本,讓這個table可以在線編輯,輸入數(shù)值,字符串,或者顯示下拉列表選擇值。

報表

我的前公司是做報表工具的,有c++版的報表查詢統(tǒng)計庫,為了能在ror上也使用報表組件,我做了一個移植工作,將c++代碼轉(zhuǎn)成ruby代碼,這是一個比較大大的工程。報表模板的文件格式(xml格式)遵守之前的格式,這樣,同樣的查詢模板既能在c++程序上使用,也能在ror上使用。

我的ror開發(fā)框架從建立到完善,陸陸續(xù)續(xù)經(jīng)過了1年多的時間,完成了幾個真實項目,有政府的,事業(yè)單位的,公安部門的,甚至還有一個軟件開發(fā)商直接花10萬買走,后來跟經(jīng)理鬧不快,影響了更多成功案例的涌現(xiàn)??梢哉f我的ror技術(shù)是在他人懷疑的目光中成長的,但是卻得到了用戶的認可。所以我會一直堅持ror道路。

我用ror所遇到的一些問題:

#t#部署。java程序部署方式比較穩(wěn)定,一般很少出現(xiàn)java服務堵死,需要重啟的情況。但ror部署后沒那么穩(wěn)定。最近幾個月,我用ror為公司寫的一個oa部署后發(fā)現(xiàn)外部并發(fā)訪問多的時候mongrel容易出現(xiàn)僵死的情況,幾經(jīng)折騰后無奈我只好切換到了82端口,總算穩(wěn)定了。以前我的系統(tǒng)一般部署在企業(yè)內(nèi)部機房中,有硬件防火墻幫我攔住了非法訪問。但是換了其他的環(huán)境mongrel總是會提示有非法訪問,非法訪問多了以后mongrel就死翹翹了。這相比于iis簡直差的太遠了。ror的部署我還需要繼續(xù)探索穩(wěn)定的方式。

ruby代碼加密。企業(yè)應用一般都是把系統(tǒng)賣給客戶了。企業(yè)知識產(chǎn)權(quán)保護是個大問題。我想我肯定不是***個遇到此類麻煩的人。我做了一個工具,專門加密ruby代碼。找到ruby的源代碼,稍微做了一下修改,遇到加密的代碼先解密再執(zhí)行,解密后的文件不保存在磁盤上。***的解決了ruby代碼加密的問題。這和php的zend加密方式似乎差不多。

責任編輯:yangsai 來源: 網(wǎng)絡轉(zhuǎn)載
相關(guān)推薦

2015-11-18 19:03:27

開發(fā)者Linux容器

2015-11-19 14:48:01

LinuxLinux容器虛擬機

2014-07-31 09:33:05

開發(fā)者獨立開發(fā)者

2011-04-25 16:56:34

Greedy Bank游戲開發(fā)獨立開發(fā)者

2013-04-16 09:40:45

2013-01-16 16:32:11

開發(fā)者iPad平板

2012-03-20 21:09:46

APP

2011-07-07 18:23:54

PHP

2020-01-07 09:22:34

Linux 系統(tǒng) 數(shù)據(jù)

2012-06-27 16:38:16

獨立開發(fā)者協(xié)調(diào)工作與生活

2019-06-11 13:28:11

互聯(lián)網(wǎng)

2013-01-24 16:52:55

開發(fā)者Windows 8WP8

2009-09-09 09:31:31

CCNA認證考試感受

2012-03-23 11:06:32

百度

2014-03-14 13:36:19

獨立游戲經(jīng)驗

2011-07-10 14:42:10

PHP

2011-12-08 14:01:32

開發(fā)者說

2018-07-04 14:03:19

百度DuerOS

2013-08-20 13:40:04

獨立游戲開發(fā)者移動應用PR經(jīng)驗移動應用營銷推廣

2011-12-08 14:29:20

開發(fā)者說
點贊
收藏

51CTO技術(shù)棧公眾號