流程圖

流程說明:
1)、安裝apache、ssh、java、jboss等環(huán)境,略。
2)、生成服務(wù)證書和服務(wù)密碼
3)、apache(httpd.conf)配置
Listen 80
Listen 443
#app的虛擬主機(jī)配置
#身份驗(yàn)證的虛擬主機(jī)配置
#把mod_ssl里的變量變?yōu)槿汁h(huán)境的變量
4)、代碼片段
//判斷session中是否有用戶郵箱地址
SessionValue session = SessionHelper.getSessionValue(rundata);
if (StringUtil.isNotEmpty(session.getCropEmail())) {
return null;
}
// 從內(nèi)網(wǎng)證書中獲取用戶郵箱地址: SSL_CLIENT_S_DN_Email
String cropEmail = rundata.getRequest().getHeader(SSL_CLIENT_HEADER_MAIL);
if (StringUtil.isNotEmpty(cropEmail)) {
//將郵箱地址保存到session
session.setCropEmail(cropEmail);
SessionHelper.saveSessionValue(rundata, session);
if (log.isDebugEnabled()) {
log.debug("用戶" + session.getCropEmail() + "已經(jīng)通過證書驗(yàn)證");
}
return null;
}
URIBrokerService uriBrokerService = (URIBrokerService) getWebxComponent().getService(
URIBrokerService.SERVICE_NAME);
URIBroker noPermissionUriBroker = uriBrokerService.getURIBroker(CHECK_CRT_URL);
//請求的原始URL & 驗(yàn)證的URL
String requestPath = rundata.getPathInfo().replace("_", "");
String checkCrtUrl = (String) noPermissionUriBroker.getPath().get(
noPermissionUriBroker.getPath().size() - 1);
try {
//原始請求判斷
if (requestPath.equalsIgnoreCase(checkCrtUrl)) {
//當(dāng)前是https請求,但是依然不能得到證書信息,轉(zhuǎn)到禁止頁面
//(要將禁止頁面加入到允許訪問的配置文件中,不然會導(dǎo)致循環(huán)重定向)
URIBroker uriBroker = uriBrokerService.getURIBroker("forbidden");
rundata.setRedirectLocation(uriBroker.render());
} else {
//轉(zhuǎn)到證書驗(yàn)證頁面
rundata.setRedirectLocation(noPermissionUriBroker.render() + "?done=" + rundata.getPathInfo());
}
} catch (IOException e) {
log.error("權(quán)限驗(yàn)證重定向出錯(cuò)", e);
}
return new BreakPipeline();
Object user = rundata.getSession().getAttribute("userInfo");
if (user == null) {
SessionValue session = SessionHelper.getSessionValue(rundata);
String email = session.getCropEmail();
Employe employe = PersonInfoUtil.getPersonInfoByEmail(email);
// 寫入cookie
session.setEmployeeId(employe.getEmployeId());
session.setName(employe.getName());
session.setCropEmail(employe.getEmail());
SessionHelper.saveSessionValue(rundata, session);
}
受限于證書的原因,以前經(jīng)常不得已用IE打開一些應(yīng)用。其實(shí)有一工具可以幫助我們導(dǎo)出IE證書,用于firefox,解決證書的困惑。
1、windows環(huán)境(xp\win7均可),以adminstrator登錄;
2、下載jailbreak,解包后,運(yùn)行jailbreak.exe(非jailbreak.msc);
3、導(dǎo)出證書:Certificates - Current User > 個(gè)人 > 證書,選所有任務(wù)導(dǎo)出;

選擇導(dǎo)出私鑰。


5、搞定。
互聯(lián)網(wǎng)的產(chǎn)品大都是面向海量用戶的服務(wù),且用戶分布區(qū)域廣泛,其教育水平、習(xí)慣也大多不同,具有高度不確定性,我們必須非常關(guān)注用戶的行為和反饋。因而,在互聯(lián)網(wǎng)產(chǎn)品服務(wù)的整個(gè)用戶研究,需求分析、產(chǎn)品研發(fā)及交付服務(wù)的過程中,都采用探索式、適應(yīng)性的研發(fā)理念進(jìn)行產(chǎn)品的研發(fā)。通常,會把整個(gè)產(chǎn)品研發(fā)周期劃分為若干個(gè)迭代,采用迭代式的演進(jìn)過程,不斷的去交付新的產(chǎn)品特性,并通過觀察用戶的行為和反饋獲取,進(jìn)而隨時(shí)調(diào)整產(chǎn)品的思路和方向。一切以用戶價(jià)值為核心是互聯(lián)網(wǎng)產(chǎn)品最核心的特點(diǎn),而以價(jià)值驅(qū)動(dòng)的敏捷開發(fā)方法非常符合這一特點(diǎn)。
一、敏捷項(xiàng)目管理實(shí)踐從阿里軟件開始,內(nèi)貿(mào)團(tuán)隊(duì)就一直在實(shí)行著敏捷項(xiàng)目管理實(shí)踐,通過小步快跑,快速迭代、增量交付用戶價(jià)值,不斷獲取用戶反饋,持續(xù)、快速的調(diào)整產(chǎn)品,驗(yàn)證并適合用戶價(jià)值。正是通過這些實(shí)踐活動(dòng),我們以迭代的、增量的交付用戶價(jià)值,最大限度的保證產(chǎn)品朝著符合用戶實(shí)際需求方向發(fā)展。目前,在內(nèi)貿(mào)團(tuán)隊(duì)?wèi)?yīng)用較成熟的敏捷實(shí)踐活動(dòng)有:
1)、迭代計(jì)劃(Sprint Planning Meeting)
2)、每日晨會(Daily Scrum Meeting) & 任務(wù)墻(Task Wall)
3)、功能預(yù)演(Spring Review)
4)、項(xiàng)目總結(jié)(Retrospect Meeting)
5)、結(jié)對編程(Pair Programming)
6)、其他技術(shù)實(shí)踐活動(dòng)等
二、敏捷團(tuán)隊(duì)
1)、自組織文化
如google、facebook等互聯(lián)網(wǎng)企業(yè),他們很少甚至沒有特定的項(xiàng)目流程,通常怎么敏捷怎么做,具有濃厚的工程師驅(qū)動(dòng)文化。我們則有較完整的開發(fā)流程指導(dǎo)和規(guī)范我們的項(xiàng)目研發(fā)工作,相比而言,喪失了一些靈活性和積極性,不利于我們工程師自我管理、自我驅(qū)動(dòng)意識的培養(yǎng)。臃腫、缺乏靈活性的流程同互聯(lián)網(wǎng)產(chǎn)品快速更新、快速發(fā)展是不相適應(yīng)的,同時(shí)也弱化我們的責(zé)任心意識。除了遵守詳盡的流程,我們是否可以換個(gè)角度、換種方法,提倡和營造一種自我管理、自我驅(qū)動(dòng)的開發(fā)文化,省卻一些并不能給我們帶來幫助卻影響效率的流程呢?
敏捷團(tuán)隊(duì)的自組織特性弱化了團(tuán)隊(duì)技術(shù)領(lǐng)導(dǎo)這個(gè)角色,強(qiáng)調(diào)自我管理和自我驅(qū)動(dòng)。雖然這對工程師的素質(zhì)要求更高,相對技術(shù)能力更難提高。但是,團(tuán)隊(duì)導(dǎo)向很重要,我們努力營造這樣的氛圍,從小團(tuán)隊(duì)做起,逐漸鍛煉和培養(yǎng)自組織團(tuán)隊(duì)。相信在這樣的開發(fā)氛圍下,會讓我們做的更高效、更敏捷,可以走的更穩(wěn)、更遠(yuǎn)。
2)、追求一體化
一體化團(tuán)隊(duì)作為敏捷開發(fā)方法中最具精益思想基因的實(shí)踐,是指每個(gè)項(xiàng)目團(tuán)隊(duì)包括分析,開發(fā),測試等角色,使團(tuán)隊(duì)滿足一個(gè)需求從設(shè)計(jì),開發(fā)到測試各個(gè)階段順利完成,達(dá)到符合質(zhì)量標(biāo)準(zhǔn)并滿足需求的軟件。這種以項(xiàng)目/產(chǎn)品為單位的虛擬團(tuán)隊(duì),坐在一起,全身心的為共同的目標(biāo)而努力,可以更好的凝聚項(xiàng)目組中的各種角色,消除部門墻。
3)、追求全功能
這里所指的全功能是希望項(xiàng)目團(tuán)隊(duì)能打破工程師角色之間的邊界,如研發(fā)、測試和前端工程師的界線,消除開發(fā)、測試流程中一些潛在浪費(fèi),提高效率。在項(xiàng)目團(tuán)隊(duì)內(nèi)部通過角色互換,不限角色的結(jié)對工作,加強(qiáng)不同角色,不同模塊間的知識傳遞,打破技術(shù)壁壘,幫助員工從不同視角理解項(xiàng)目,鍛煉技能,進(jìn)而增加團(tuán)隊(duì)均衡生產(chǎn)的能力。
為什么要提倡打破邊界?項(xiàng)目整體效率依賴于項(xiàng)目過程中各環(huán)節(jié)的工作效率,而整體效率的優(yōu)化往往依賴于均衡生產(chǎn)(精益思想的按需生產(chǎn)),即消除生產(chǎn)的波峰(過度生產(chǎn))和波谷(生產(chǎn)不足),只有局部效率的增加無法直接轉(zhuǎn)換為整體效率的增加(就象桶能裝多少水,決定于最短的那塊板)。整體效率的優(yōu)化要求IT團(tuán)隊(duì)消除技能壁壘,培養(yǎng)多面手,根據(jù)計(jì)劃的的變動(dòng),彈性地調(diào)整任務(wù),達(dá)到各角色和流程之間的平衡。
三、質(zhì)量保證
我們追求開發(fā)效率,同時(shí)也注重項(xiàng)目質(zhì)量。如何去保證質(zhì)量?就象美國的一位教授愛德化.戴明(W.Edwards Deming)所說:“我們應(yīng)該停止依靠大量檢驗(yàn)來保證質(zhì)量,而是要改進(jìn)工藝流程,從一開始就生產(chǎn)出優(yōu)質(zhì)的產(chǎn)品”。我們要在整個(gè)開發(fā)過程中多個(gè)環(huán)節(jié)去保證質(zhì)量。同時(shí),質(zhì)量保證是整個(gè)團(tuán)隊(duì)的責(zé)任,就如同前面所說的追求全功能團(tuán)隊(duì),打破邊界。
至于在哪些環(huán)節(jié)采用哪些實(shí)踐,我們先做個(gè)分類,按是否能被系統(tǒng)用戶感知將質(zhì)量問題區(qū)分內(nèi)部質(zhì)量和外部質(zhì)量。外部質(zhì)量指能直接被系統(tǒng)用戶感知,如運(yùn)行緩慢,不可操作或是操作復(fù)雜就屬于外部質(zhì)量低劣。而不能直接為系統(tǒng)用戶所直接感知的要素,對產(chǎn)品鍵壯性、可維護(hù)性有深遠(yuǎn)影響的問題就屬于外部質(zhì)量,如系統(tǒng)設(shè)計(jì)的一致性、代碼可讀性、邏輯完整性等。內(nèi)部質(zhì)量對用戶的影響比較間接,但比外部質(zhì)量意義更深遠(yuǎn)。一般來說,系統(tǒng)內(nèi)部質(zhì)量優(yōu)秀,外部質(zhì)量仍有可能很差。而內(nèi)部質(zhì)量差的系統(tǒng),外部質(zhì)量肯定也不怎么樣。
1)、外部質(zhì)量保證
在外部質(zhì)量保證上,大部分會在開發(fā)后期介入,可以通過性能測試、自動(dòng)化測試及工程師的功能測試來保證,通過這些實(shí)踐活動(dòng)發(fā)現(xiàn)并保證例如運(yùn)行緩慢、不可操作等質(zhì)量問題不會存在。針對交互特別復(fù)雜的web應(yīng)用,可以更多的考慮采用webui自動(dòng)化測試工具,如selenium、pwaitr(b2b)、automan(淘寶)等,可以很好的完成那些簡單、重復(fù)的TC用例,可以大大提高測試效率,解決測試工程師的資源瓶頸。
2)、內(nèi)部質(zhì)量保證
相對于外部質(zhì)量,內(nèi)部質(zhì)量問題影響更為深遠(yuǎn),在開發(fā)開始階段就應(yīng)該去保證。如通過單元測試、靜態(tài)代碼掃描(PMD\findbugs)、持續(xù)集成、重構(gòu)、結(jié)對編程、code review等多種實(shí)踐活動(dòng)來保證項(xiàng)目代碼的健康。
除了一些實(shí)踐活動(dòng)去檢查代碼質(zhì)量外,更為重要的是研發(fā)工程師對內(nèi)部質(zhì)量的重視,如果工程師沒有形成良好的質(zhì)量意識,很可能這些實(shí)踐也只是停留于形式,并不能帶來較好的結(jié)果。如我們在開發(fā)過程中的編碼規(guī)范、單元測試的質(zhì)量及覆蓋率,code review的及時(shí)性及問題是否持續(xù)跟進(jìn)等等。此外,有選擇的采用結(jié)對編程實(shí)踐,有助于質(zhì)量的提高。
本文以敏捷、精益(消除浪費(fèi)、按需生產(chǎn))思想的角度試圖去探討一種適合互聯(lián)網(wǎng)公司的產(chǎn)品開發(fā)體系,上述概要的介紹了項(xiàng)目管理、團(tuán)隊(duì)、質(zhì)量方面的一些敏捷實(shí)踐活動(dòng),主要涉及了我們對敏捷方面的經(jīng)驗(yàn)分享或者是些正在研究探討的課題。文中涉及的實(shí)踐活動(dòng),后續(xù)我將逐一展開詳細(xì)介紹,幫助大家更好的理解和認(rèn)識。希望本文的分享能成為一個(gè)引子,引起大家對敏捷開發(fā)的思考和討論,或者更好的了解敏捷和精益思想。
| |||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
29 | 30 | 31 | 1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 | |||
12 | 13 | 14 | 15 | 16 | 17 | 18 | |||
19 | 20 | 21 | 22 | 23 | 24 | 25 | |||
26 | 27 | 28 | 29 | 30 | 1 | 2 | |||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
常用鏈接
留言簿(3)
隨筆分類
- Hibernate(2)
- java 開發(fā) (31)
- Linux(13)
- Spring(4)
- web開發(fā)(20)
- 即時(shí)通訊(2)
- 大雜燴(15)
- 數(shù)據(jù)庫(7)
- 軟件設(shè)計(jì)(2)
- 問題記錄(1)
- 項(xiàng)目管理(8)
隨筆檔案
- 2011年12月 (2)
- 2011年6月 (1)
- 2011年5月 (1)
- 2011年2月 (1)
- 2011年1月 (3)
- 2010年12月 (3)
- 2010年11月 (1)
- 2010年9月 (1)
- 2010年7月 (1)
- 2010年6月 (1)
- 2010年4月 (3)
- 2009年11月 (1)
- 2009年9月 (3)
- 2009年8月 (1)
- 2009年7月 (1)
- 2009年6月 (2)
- 2009年5月 (1)
- 2009年3月 (4)
- 2009年2月 (1)
- 2009年1月 (1)
- 2008年12月 (2)
- 2008年11月 (1)
- 2008年10月 (1)
- 2008年9月 (2)
- 2008年8月 (1)
- 2008年7月 (3)
- 2008年6月 (2)
- 2008年5月 (2)
- 2008年3月 (2)
- 2008年1月 (15)
- 2007年12月 (8)
- 2007年11月 (15)
- 2007年7月 (2)
- 2007年6月 (3)
- 2007年5月 (7)
- 2007年4月 (7)
收藏夾
搜索
最新評論

- 1.?re: iframe 高度自適應(yīng)
- 1909434428@qq.com
- --3a教程
- 2.?re: firefox中證書的使用
- thanks
- --mroff
- 3.?re: IE7 對話框樣式[未登錄]
- fsdfsdf
- --dd
- 4.?re: Debian 修改IP地址或DNS
-
IP地址配置文件: "/etc/network/interface" 文件少了個(gè)s
/etc/network/interfaces - --debian
- 5.?re: dhtmlxTree 使用示例
- rt
- --tr