成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ok,用戶的需求我們很好的完成了,用戶應(yīng)該很滿意了

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

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

工作流

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

報表

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

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

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

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

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

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

2015-11-18 19:03:27

開發(fā)者Linux容器

2015-11-19 14:48:01

LinuxLinux容器虛擬機(jī)

2014-07-31 09:33:05

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

2011-04-25 16:56:34

Greedy Bank游戲開發(fā)獨(dú)立開發(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

獨(dú)立開發(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認(rèn)證考試感受

2012-03-23 11:06:32

百度

2014-03-14 13:36:19

獨(dú)立游戲經(jīng)驗(yàn)

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

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

2011-12-08 14:29:20

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

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

主站蜘蛛池模板: 亚洲女人天堂成人av在线 | 国产中文字幕在线观看 | 日韩和的一区二在线 | 天堂三级| 国产一级成人 | avav在线看 | 久久精品一级 | 黑人中文字幕一区二区三区 | 农夫在线精品视频免费观看 | 久久综合一区 | 亚洲国产欧美国产综合一区 | 欧美精品一二区 | 国产精品a一区二区三区网址 | 久久亚洲一区二区三区四区 | 亚洲欧美日韩国产 | 久久国产精品-久久精品 | 精品国产欧美一区二区三区成人 | 亚洲成人精品影院 | 久久久久久999 | 亚洲永久精品国产 | 中文字幕一区在线观看视频 | 综合色影院| 成人免费日韩 | www.中文字幕| 亚洲精品区 | 久久鲁视频 | 亚洲高清视频在线观看 | 伊人久久免费 | 亚洲视频中文字幕 | 日韩在线免费视频 | av中文字幕在线 | 91免费入口 | 在线视频一区二区 | 日韩一区二区在线看 | 欧美综合一区 | 欧美一区精品 | 欧美a在线看 | 老妇激情毛片免费 | 国产精品一区在线观看 | 欧美精品一区二区在线观看 | 久久毛片网站 |