<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 34, 文章 - 1, 評(píng)論 - 2, 引用 - 0
    數(shù)據(jù)加載中……

    2010年6月2日

    產(chǎn)品經(jīng)理編寫(xiě)MRD和PRD

    MRD(market requirement document )和PRD(production requirement document)區(qū)分

     
    http://hi.baidu.com/%D9%DC%D5%BC%BE%FD/blog/item/937c921603e2220c4a90a794.html

    正確編寫(xiě)PRD產(chǎn)品需求文檔
    http://hi.baidu.com/wenlym%CD%E5/blog/item/8fff94ac81727d1c4b36d6db.html




    posted @ 2011-06-07 17:21 河馬虎 閱讀(315) | 評(píng)論 (0)編輯 收藏

    需求分析誰(shuí)來(lái)寫(xiě)?很不錯(cuò)的文章


    http://news.ccidnet.com/art/1032/20060829/884159_1.html

    posted @ 2011-03-16 14:30 河馬虎 閱讀(268) | 評(píng)論 (0)編輯 收藏

    Java靜態(tài)檢測(cè)工具的簡(jiǎn)單介紹


    轉(zhuǎn)自
    http://qa.taobao.com/?p=9015

    靜態(tài)檢查:靜態(tài)測(cè)試包括代碼檢查、靜態(tài)結(jié)構(gòu)分析、代碼質(zhì)量度量等。它可以由人
            工進(jìn)行,充分發(fā)揮人的邏輯思維優(yōu)勢(shì),也可以借助軟件工具自動(dòng)進(jìn)行。
            代碼檢查代碼檢查包括代碼走查、桌面檢查、代碼審查等,主要檢查代碼和
            設(shè)計(jì)的一致性, 代碼對(duì)標(biāo)準(zhǔn)的遵循、可讀性,代碼的邏輯表達(dá)的正確性,代
            碼結(jié)構(gòu)的合理性等方面;可以發(fā)現(xiàn)違背程序編寫(xiě)標(biāo)準(zhǔn)的問(wèn)題,程序中不安全、
            不明確和模糊的部分,找出程序中不可移植部分、違背程序編程風(fēng)格的問(wèn)題,
            包括變量檢查、命名和類(lèi)型審查、程序邏輯審查、程序語(yǔ)法檢查和程序結(jié)構(gòu)
            檢查等內(nèi)容。”。看了一系列的靜態(tài)代碼掃描或者叫靜態(tài)代碼分析工具后,
            總結(jié)對(duì)工具的看法:靜態(tài)代碼掃描工具,和編譯器的某些功能其實(shí)是很相似的,
            他們也需要詞法分析,語(yǔ)法分析,語(yǔ)意分析...但和編譯器不一樣的是他們可
            以自定義各種各樣的復(fù)雜的規(guī)則去對(duì)代碼進(jìn)行分析。

    靜態(tài)檢測(cè)工具:
    1. PMD
         1)PMD是一個(gè)代碼檢查工具,它用于分析 Java 源代碼,找出潛在的 問(wèn)題:
    1)潛在的bug:空的try/catch/finally/switch語(yǔ)句
    2)未使用的代碼:未使用的局部變量、參數(shù)、私有方法等
    3)可選的代碼:String/StringBuffer的濫用
    4)復(fù)雜的表達(dá)式:不必須的if語(yǔ)句、可以使用while循環(huán)完成的for循環(huán)
    5)重復(fù)的代碼:拷貝/粘貼代碼意味著拷貝/粘貼bugs
    2)PMD特點(diǎn):
    1)與其他分析工具不同的是,PMD通過(guò)靜態(tài)分析獲知代碼錯(cuò)誤。也就是說(shuō),在
    不運(yùn)行Java程序的情況下報(bào)告錯(cuò)誤。
    2)PMD附帶了許多可以直接使用的規(guī)則,利用這些規(guī)則可以找出Java源程序的許
    多問(wèn)題
    3)用戶還可以自己定義規(guī)則,檢查Java代碼是否符合某些特定的編碼規(guī)范。
    3)同時(shí),PMD已經(jīng)與JDeveloper、Eclipse、jEdit、JBuilder、BlueJ、
    CodeGuide、NetBeans、Sun JavaStudio Enterprise/Creator、
    IntelliJ IDEA、TextPad、Maven、Ant、Gel、JCreator以及Emacs
    集成在一起。
    4)PMD規(guī)則是可以定制的: 可用的規(guī)則并不僅限于內(nèi)置規(guī)則。您可以添加新規(guī)則:
    可以通過(guò)編寫(xiě) Java 代碼并重新編譯 PDM,或者更簡(jiǎn)單些,編寫(xiě) XPath 表
    達(dá)式,它會(huì)針對(duì)每個(gè) Java 類(lèi)的抽象語(yǔ)法樹(shù)進(jìn)行處理。
    5)只使用PDM內(nèi)置規(guī)則,PMD 也可以找到你代碼中的一些真正問(wèn)題。某些問(wèn)題可能
    很小,但有些問(wèn)題則可能很大。PMD 不可能找到每個(gè) bug,你仍然需要做單元測(cè)
    試和接受測(cè)試,在查找已知 bug 時(shí),即使是 PMD 也無(wú)法替代一個(gè)好的調(diào)試器。
    但是,PMD 確實(shí)可以幫助你發(fā)現(xiàn)未知的問(wèn)題。
    
    1. FindBugs
         1)FindBugs是一個(gè)開(kāi)源的靜態(tài)代碼分析工具,基于LGPL開(kāi)源協(xié)議,無(wú)需
    運(yùn)行就能對(duì)代碼進(jìn)行分析的工具。不注重style及format,注重檢測(cè)真正
    的bug及潛在的性能問(wèn)題 ,尤其注意了盡可能抑制誤檢測(cè)(false positives)
    的發(fā)生。以bytecode(*.class、*.jar)為對(duì)象進(jìn)行檢查。除了單獨(dú)動(dòng)作,還可
    以用作Eclipse 的plug-in,以及嵌入Ant作為task之一 進(jìn)行利用。
    2)findbugs自帶檢測(cè)器的介紹:  findbugs自帶60余種Bad practice,80余種
    Correntness,1種Internationalization,12種Malicious code
    vulnerability,27種Multithreaded correntness,23種Performance,
    43種Dodgy。
    3)Findbugs的一些特點(diǎn):
    1)FindBugs主要著眼于尋找代碼中的缺陷,這就與其他類(lèi)似工具有些區(qū)別了,
    直接操作類(lèi)文件(class文件)而不是源代碼。
    2)FindBugs可以通過(guò)命令行、各種構(gòu)建工具(如Ant、Maven等)、獨(dú)立的
    Swing GUI或是以Eclipse和NetBeans IDE插件的方式來(lái)運(yùn)行。                
    3)FindBugs輸出結(jié)果既可以是XML的,也可以是文本形式的。
    4)開(kāi)發(fā)者可以通過(guò)多種方式來(lái)使用FindBugs,最常見(jiàn)的是在新編寫(xiě)模塊的代碼
    分析以及對(duì)現(xiàn)有代碼進(jìn)行更大范圍的分析。   
    5)不注重style及format,注重檢測(cè)真正的bug及潛在的性能問(wèn)題,
    尤其注意了盡可能抑制誤檢測(cè)(false positives)的發(fā)生。    
    4)FindBugs可檢測(cè)的bug pattern舉例:
    檢測(cè)java programing中容易陷入的bug pattern,equals() 實(shí)現(xiàn)時(shí)的一般規(guī)約違反
    Null pointer的參照 ,Method的返回值的check遺漏 ,初始化前field的訪問(wèn),
    Multi-thread的正確性, 同期化處理的矛盾, 無(wú)條件的wait(),  Code的脆弱性 ,
    可以變更的靜態(tài)object ,內(nèi)部數(shù)列參照的return等
    
    1. Checkstyle
         1)定義: Checkstyle是一款檢查Java程序源代碼樣式的工具。
    2)特點(diǎn):
    1)它可以有效的幫助我們檢視代碼以便更好的遵循代碼編寫(xiě)標(biāo)準(zhǔn),特
    別適用于小組開(kāi)發(fā)時(shí)彼此間的樣式規(guī)范和統(tǒng)一。
    2)Checkstyle提供了高可配置性,以便適用于各種代碼規(guī)范,所以
    除了使用它提供的幾種常見(jiàn)標(biāo)準(zhǔn)之外,你也可以定制自己的標(biāo)準(zhǔn)。
    3)Checkstyle提供了支持大多數(shù)常見(jiàn)IDE的插件,大部分插件中就含有
    最新的Checkstyle,就不用費(fèi)心再部署一份了。
    4)Checkstyle可以檢查代碼的很多方面,從傳統(tǒng)觀點(diǎn)看,它主要是用來(lái)
    檢查代碼層面的,自從第三版以后,它的內(nèi)部架構(gòu)作了重大改變,很多
    其它意圖的檢測(cè)加了進(jìn)來(lái),現(xiàn)在Checkstyle可以檢查像類(lèi)設(shè)計(jì)的問(wèn)題,
    重復(fù)代碼,如鎖的雙重檢查的bug模式。
    3)CheckStyle的主要流程是:
    1)對(duì)Java文件進(jìn)行詞法語(yǔ)法分析,生成語(yǔ)法樹(shù)。
    2)載入配置文件(checkstyle-metadata.xml以及自定義的配置文件)
    register check事件。
    3)按照深度優(yōu)先遍歷對(duì)語(yǔ)法樹(shù)進(jìn)行解析,按照注冊(cè)的事件,在到達(dá)某些節(jié)點(diǎn)
    ( AST ) 時(shí)進(jìn)行style檢查(AST,A child-Sibling Tree,是語(yǔ)法
    樹(shù)中的某個(gè)節(jié)點(diǎn),其類(lèi)型在TokenTypes類(lèi)中定義。)
    4)我們所說(shuō)的自定義Style的檢查,就是在第二步設(shè)定的。
    這里牽涉到一個(gè)叫com.puppycrawl.tools.checkstyle.api.Check 的類(lèi),
    我們通常需要重載其中的兩個(gè)函數(shù): public int[] getDefaultTokens()
            public void visitToken(DetailAST ast). 這兩個(gè)函數(shù)的含義為,
    在遍歷語(yǔ)法樹(shù)的過(guò)程中,每當(dāng)?shù)竭_(dá)getDefaultTokens函數(shù)所返回的AST類(lèi)型,
    程序就進(jìn)入visitToken進(jìn)行具體的檢查和分析,即,真正的分析檢查過(guò)程是在
    visitToken中實(shí)現(xiàn)的。
    
    1. Hammurapi
         1)定義: Hammurapi它是一個(gè)開(kāi)源的代碼審查/評(píng)審(review)工具。它可以幫助改進(jìn)
    Java代碼的質(zhì)量。它可以基于一套設(shè)計(jì)規(guī)范來(lái)分析代碼庫(kù)。當(dāng)它碰到違反規(guī)
    范的地方,會(huì)在報(bào)告中標(biāo)識(shí)。就像Checkstyle一樣,它與Ant無(wú)縫集成并且
    由基于XML配置文件來(lái)驅(qū)動(dòng)。
    2)特點(diǎn):
    1)Hammurapi是用來(lái)強(qiáng)制代碼設(shè)計(jì)規(guī)范的。
    2)Hammurapi是一個(gè)遵循設(shè)計(jì)的工具,提供了自動(dòng)而且一致的方式來(lái)實(shí)現(xiàn)設(shè)計(jì)規(guī)范,
    因此使代碼評(píng)審更加有效而輕松。
    3)Hammurapi如何工作:
             Hammurapi這樣的代碼分析工具都帶有語(yǔ)言分析器。語(yǔ)言分析器是一種輸入
    語(yǔ)言代碼并輸出抽象語(yǔ)法樹(shù)的工具。這個(gè)樹(shù)上的節(jié)點(diǎn)代表語(yǔ)言標(biāo)識(shí)。例如,考
    慮一下簡(jiǎn)單的算術(shù)表達(dá)式:3+4. 語(yǔ)言分析器會(huì)解析他成為一個(gè)如圖5所示的語(yǔ)
    法樹(shù)。在這個(gè)樹(shù)中,節(jié)點(diǎn)+代表操作符標(biāo)識(shí)。節(jié)點(diǎn)3和4是操作數(shù)標(biāo)識(shí)Hammurapi
    使用ANTLR(另一個(gè)語(yǔ)言識(shí)別工具)作為語(yǔ)言分析器。然而ANTLR API是相當(dāng)?shù)讓拥摹?
    為改善可用性,Hammurapi使用另一個(gè)API,基于ANTLR 的JSEL(Java源程序
    工程類(lèi)庫(kù)),來(lái)訪問(wèn)抽象語(yǔ)法樹(shù)。 一旦樹(shù)構(gòu)建完成,一種樹(shù)遍歷算法就被用來(lái)訪
    問(wèn)樹(shù)中每一個(gè)節(jié)點(diǎn)。每次訪問(wèn)到一個(gè)節(jié)點(diǎn),一種回調(diào)機(jī)制(Visitor模式)被用來(lái)
    提示相應(yīng)的檢查器。在這些回調(diào)方法中,檢查器收集相關(guān)的信息來(lái)確定是否有違反
    規(guī)范的地方存在。  
    
    1. Lint4j
         1)定義:Lint4J是一個(gè)針對(duì)Java的源代碼分析工具,它可以對(duì)Java源碼和字節(jié)
    碼進(jìn)行靜態(tài)分析,判斷其中是否存在死鎖、性能問(wèn)題或者伸縮性問(wèn)題。
    它可以集成到任何IDE種或構(gòu)建系統(tǒng)
    2)特點(diǎn):
    1)檢測(cè)代碼語(yǔ)法規(guī)則
    2)潛在的bug
    3)檢測(cè)編碼模式對(duì)代碼可讀性及大小的影響
    4)檢測(cè)是否違反EJB規(guī)范
    
    1. Sonar
         1)定義:代碼質(zhì)量管理工具Sonar提供了設(shè)計(jì)與架構(gòu)度量。Sonar 2.0引入了
    針對(duì)Java應(yīng)用的設(shè)計(jì)分析、架構(gòu)與面向?qū)ο蟮亩攘浚琒onar 2.1可以
    檢測(cè)到未使用的方法以及對(duì)不建議使用方法的調(diào)用。是一個(gè)集成了
    CheckStyle,PMD,Findbugs的代碼校驗(yàn)規(guī)則 ,重復(fù)代碼發(fā)現(xiàn),
    代碼測(cè)試覆蓋率, 代碼注釋率,及所有的檢測(cè)率變化追蹤的完美
    代碼質(zhì)量檢查工具。它包含了代碼質(zhì)量檢測(cè)的七個(gè)方面,如下圖
    2)特點(diǎn):
            1)代碼覆蓋:通過(guò)單元測(cè)試,將會(huì)顯示哪行代碼被選中。
    2)改善編碼規(guī)則。
    3)搜尋編碼規(guī)則:按照名字,插件,激活級(jí)別和類(lèi)別進(jìn)行查詢(xún)。
    4)項(xiàng)目搜尋:按照項(xiàng)目的名字進(jìn)行查詢(xún)。
    5)對(duì)比數(shù)據(jù):比較同一張表中的任何測(cè)量的趨勢(shì)。
    6)單元測(cè)試
    3)Sonar2.1:
    Sonar還基于Squid引入了一個(gè)全新的規(guī)則引擎、Sonar解析器既可以處
    理源代碼,也可以處理字節(jié)碼,解析器帶有內(nèi)建的規(guī)則,可以檢測(cè)未使用
    的私有與保護(hù)方法以及客戶端對(duì)不建議使用的方法的調(diào)用。
    Squid通過(guò)分析應(yīng)用源代碼、Java API和外部程序庫(kù)
    的字節(jié)碼來(lái)決定哪些方法、類(lèi)和屬性是不建議使用的。
    Sonar 2.1的新特性:
    1)一個(gè)全新的“Libraries”頁(yè)面,顯示了項(xiàng)目中所有的程序庫(kù)和依賴(lài),該特性要求使用
    Maven來(lái)構(gòu)建項(xiàng)目。
    一旦在Sonar站點(diǎn)的主頁(yè)上選擇了一個(gè)項(xiàng)目,該服務(wù)就會(huì)以
    可視化的樹(shù)形結(jié)構(gòu)展示出項(xiàng)目依賴(lài)。此外,還有一個(gè)可選的
    動(dòng)態(tài)過(guò)濾器,可以根據(jù)名稱(chēng)過(guò)濾程序庫(kù)以便在應(yīng)用的依賴(lài)間導(dǎo)航。
    2)用于搜索程序庫(kù)使用情況的“Dependencies”頁(yè)面。比如說(shuō),可以
    搜索到使用了第三方框架如Commons Logging 1.1的所有項(xiàng)目。
    3)可以使用各種插件擴(kuò)展Sonar的功能。現(xiàn)在有一個(gè)全新的
    “System Info”頁(yè)面顯示了系統(tǒng)屬性、已裝插件和Java虛擬機(jī)內(nèi)存
    統(tǒng)計(jì)信息。該頁(yè)面還給出了關(guān)于Sonar配置和數(shù)據(jù)庫(kù)統(tǒng)計(jì)的詳細(xì)信息。
    4)一個(gè)用于管理已裝插件和系統(tǒng)信息的管理控制臺(tái)。
    最新版的Sonar為這些插件引入了一個(gè)測(cè)試框架和一個(gè)客戶化的Maven
    生命周期管理工具。它還帶有一個(gè)用于集成項(xiàng)目事件的
    Web Service并在項(xiàng)目的size widget中增加了一個(gè)新的度量模塊。
    
    1. JDepend
         1)JDepend一個(gè)開(kāi)放源代碼的可以用來(lái)評(píng)價(jià)Java程序質(zhì)量的優(yōu)秀工具,
    它遍歷Java class的文件目錄,以Java包(package)為
    單位,為每一個(gè)包/類(lèi)自動(dòng)生成 包的依賴(lài)程度,穩(wěn)定性,可靠度等
    的評(píng)價(jià)報(bào)告,根據(jù)這些報(bào)告,我們可以得到包或類(lèi)之間的依賴(lài)關(guān)
    系,并分析出包的穩(wěn)定程度,抽象程度,是否存在循環(huán)依耐關(guān)系等 。
    可以根據(jù)JDepend給出的報(bào)告數(shù)據(jù),分析出我們的包是否是
    可靠的,穩(wěn)定的,健壯的包,是否符合面向?qū)ο蟮脑O(shè)計(jì)原則。
    2)特點(diǎn):
    1)評(píng)價(jià)設(shè)計(jì)質(zhì)量
    2)翻轉(zhuǎn)依賴(lài)性
    3)支持并行開(kāi)發(fā)和極限編程
    4)獨(dú)立的發(fā)布模塊
    5)識(shí)別package的循環(huán)依賴(lài)
    3)Depend生成的Java包的質(zhì)量評(píng)價(jià)報(bào)告主要包括:    
    1)Number of Classes and Interfaces:實(shí)現(xiàn)類(lèi)與抽象接口的數(shù)目
    2)Abstractness (A):包的抽象度。指一個(gè)包內(nèi)包含的抽象類(lèi)或接口
    占整個(gè)包中的類(lèi)的比重。
    3)Afferent Couplings (Ca):向心耦合。依賴(lài)該包(包含的類(lèi))的外
    部包(類(lèi))的數(shù)目(i.e. incoming dependencies),該數(shù)值越大,
    說(shuō)明該包的擔(dān)當(dāng)?shù)穆氊?zé)越大,也就越穩(wěn)定。
    4)Efferent Couplings (Ce):離心耦合。被該包依賴(lài)的外部包的數(shù)目
    (i.e. outgoing dependencies),該數(shù)值越大, 說(shuō)明該包越不獨(dú)
    立(因?yàn)橐蕾?lài)了別的包),也越不穩(wěn)定。
    5)Instability (I):衡量一個(gè)包的不穩(wěn)定程度。I=Ce/(Ce+Ca)。它的值處于
    [0,1]之間。I=0時(shí)說(shuō)明包是最穩(wěn)定的,反之I=1則說(shuō)明包極不穩(wěn)定。
    6)Distance from the Main Sequence (D): 該指標(biāo)主要用來(lái)評(píng)價(jià)包的抽象
    程度與穩(wěn)定程度的平衡關(guān)系,它可以用二維直線圖 A + I = 1 來(lái)表示。
    7)Package Dependency Cycles:包的循環(huán)依賴(lài)度。
    8.  IBM Checking Tool for Bugs Errors and Mistakes(簡(jiǎn)稱(chēng)BEAM)
    1) 定義:是 IBM 開(kāi)發(fā)的一個(gè)靜態(tài)分析工具,可以用于分析并查找出 C, C++ 和 Java
    代碼中的一些不容易發(fā)現(xiàn)的潛在錯(cuò)誤,從而達(dá)到提高代碼質(zhì)量的目的。同動(dòng)態(tài)
    分析工具和其它靜態(tài)分析工具相比,它擁有一些可貴的特性。
    2)特點(diǎn):
    1)對(duì)代碼進(jìn)行語(yǔ)法掃描,通過(guò)算法對(duì)代碼進(jìn)行檢查分析
    2)和一些 bug 模式進(jìn)行比較,最終標(biāo)明問(wèn)題區(qū)域,輸出分析結(jié)果
    3)使用了額外的定理證明(theorem proving)技術(shù)來(lái)判斷一個(gè)潛在的錯(cuò)誤是否
    是真正的錯(cuò)誤,從而減輕了程序員判斷錯(cuò)誤真?zhèn)嗡璧墓ぷ髁?
     9. LDRA Testbed  
    1)定義:LDRA Testbed為應(yīng)用軟件的確認(rèn)和驗(yàn)證提供強(qiáng)大的源代碼測(cè)試和分析功能,
    是獨(dú)特的質(zhì)量控制工具。 它有助于提高計(jì)算機(jī)軟件必需的可靠性,健壯性和盡
    可能的零缺陷,它的使用帶來(lái)時(shí)間、成本和效率上真實(shí)的節(jié)省,這些都是無(wú)法衡
    量其價(jià)值的。它是強(qiáng)大和完整的集成工具包,使先進(jìn)的軟件分析技術(shù)應(yīng)用在開(kāi)發(fā)生
    命周期的關(guān)鍵階段。
    2)LDRA Testbed提供強(qiáng)大的分析功能,用于兩個(gè)主要的測(cè)試領(lǐng)域,靜態(tài)分析和動(dòng)態(tài)分析。
    1)靜態(tài)分析: 分析代碼,并且提供對(duì)代碼結(jié)構(gòu)的理解。
    2)動(dòng)態(tài)分析: 利用源代碼的插裝版本,使用測(cè)試數(shù)據(jù)執(zhí)行,在運(yùn)行時(shí)發(fā)現(xiàn)軟件
    缺陷
    3) 使用LDRA testbed 的好處
    軟件開(kāi)發(fā)和測(cè)試過(guò)程的成本效率分析工具
    單元、集成和系統(tǒng)測(cè)試的理想工具 
    貫穿于軟件開(kāi)發(fā)的整個(gè)生命周期
    LDRA Testbed應(yīng)用于許多不同的領(lǐng)域 
    過(guò)程改進(jìn)
    軟件測(cè)試
    軟件維護(hù)
    LDRA Testbed的優(yōu)點(diǎn):
    改進(jìn)軟件質(zhì)量
    定位軟件缺陷
    強(qiáng)制執(zhí)行工業(yè)標(biāo)準(zhǔn)
    減少維護(hù)費(fèi)用40%以上
    減少開(kāi)發(fā)和測(cè)試成本75%以上
    通過(guò)自動(dòng)化過(guò)程提高員工動(dòng)力
    10.   Yasca 
    1) 定義:yasca是一個(gè)開(kāi)源靜態(tài)代碼分析工具插件框架, 集成流行的多語(yǔ)言靜態(tài)分析工
    具如findbugs/pmd/jlint/rats/cppcheck,由于插件本身多樣故可支持java
    c++等語(yǔ)言靜態(tài)分析.Yasca是一個(gè)用來(lái)尋找安全漏洞,在程序的源代碼中檢測(cè)代
    碼質(zhì)量、性能以及一致性的軟件。它集成了其他開(kāi)源項(xiàng)目,其中包括FindBugs
    PMD ,JLint , Cppcheck ,并掃描某些文件類(lèi)型,以及自定義掃描書(shū)面的
    Yasca 這是一個(gè)命令行工具,與報(bào)告中生成的HTML , CSV格式, XML的,的
    SQLite ,和其他格式。
    

    posted @ 2011-03-01 17:12 河馬虎 閱讀(2111) | 評(píng)論 (1)編輯 收藏

    Servlet 工作原理解析

    Servlet 工作原理解析
    http://www.ibm.com/developerworks/cn/java/j-lo-servlet/

    posted @ 2011-02-26 09:47 河馬虎 閱讀(358) | 評(píng)論 (0)編輯 收藏

    JAVA操作WORD EXECEL PDF等文檔

     http://danadler.com/jacob/
      http://jakarta.apache.org/poi/
      http://www.onjava.com/pub/a/onjava/2003/01/22/poi.html
      http://www.csdn.net/develop/article/15/15311.shtm
      http://forum.java.sun.com/thread.jsp?forum=40&thread=382666&tstart=0&trange=15

      Java Excel API 文檔

      http://www.andykhan.com/jexcelapi/

    posted @ 2011-01-07 10:47 河馬虎 閱讀(272) | 評(píng)論 (0)編輯 收藏

    界面設(shè)計(jì)總結(jié)

    界面設(shè)計(jì)時(shí)應(yīng)考慮幾個(gè)問(wèn)題;

    1、界面的布局一定要合理,首先根據(jù)應(yīng)用行業(yè)和業(yè)務(wù)特點(diǎn),把整個(gè)界面切成幾個(gè)大塊,每個(gè)塊的承擔(dān)的功能或者任務(wù)一定要明確。

    2、界面的可不配置化,通過(guò)界面的可配置化來(lái)屏蔽或者啟用一些功能。如果你做的產(chǎn)品或系統(tǒng)被用到同行業(yè)的許多項(xiàng)目現(xiàn)場(chǎng),十幾個(gè)或者幾十個(gè)項(xiàng)目現(xiàn)場(chǎng),那么在界面設(shè)計(jì)時(shí)候就一定要考慮到界面的可配置化。作為特定行業(yè)產(chǎn)品或者系統(tǒng)一般都實(shí)現(xiàn)了行業(yè)的核心的共性功能,但多個(gè)項(xiàng)目現(xiàn)場(chǎng)會(huì)提出自己本地化或者個(gè)性化的需求,在只有一個(gè)開(kāi)發(fā)團(tuán)隊(duì)維護(hù)一個(gè)版本情況下,盡量在界面設(shè)計(jì)的時(shí)候,實(shí)現(xiàn)界面可配置化,這樣A項(xiàng)目現(xiàn)場(chǎng)的本地化需求就不會(huì)擴(kuò)散到B項(xiàng)目的現(xiàn)場(chǎng),這樣有效的控制的需求擴(kuò)散。另外,產(chǎn)品在不同的產(chǎn)品現(xiàn)場(chǎng)銷(xiāo)售或者客戶的時(shí)候,通過(guò)界面的可配置化來(lái)屏蔽非本地化的功能,避免無(wú)償將系統(tǒng)功能提供給客戶。

    3、界面客戶配置化,在實(shí)現(xiàn)的時(shí)候一定要考慮到性能問(wèn)題,一般為了界面實(shí)現(xiàn)可配置,界面是動(dòng)態(tài)生成的,如果界面生成的配置參數(shù)放在數(shù)據(jù)庫(kù),那么在系統(tǒng)參與者很多的情況先,界面生成就會(huì)很慢,可以考慮將界面配置參數(shù)存放在文件中,
     
    4、對(duì)于界面配置參數(shù)文件存放位置,界面配置參數(shù)文件一般不要放在客戶機(jī)上,這樣在客戶端更新的時(shí)候,有可能覆蓋了以前的界面配置參數(shù)文件,  因此,界面配置參數(shù)文件可存放在應(yīng)用服務(wù)器上(例如部署tomcat或者JBOSS服務(wù)器上),工程人員或者系統(tǒng)維護(hù)人員在系統(tǒng)升級(jí)之后,更新該界面配置參數(shù)文件, 客戶端在啟動(dòng)的時(shí)候,從應(yīng)用服務(wù)器上統(tǒng)一讀取,這樣保持了各個(gè)客戶端的一致性和可配置性。

    5、界面可配置化的程度問(wèn)題,界面上大塊要可配置、數(shù)據(jù)項(xiàng)或者指標(biāo)項(xiàng)也要實(shí)現(xiàn)可配置。因?yàn)椴煌捻?xiàng)目現(xiàn)場(chǎng)會(huì)對(duì)大的功能有不同的要求甚至對(duì)數(shù)據(jù)項(xiàng)也有不同的要求。


    以上界面設(shè)計(jì)經(jīng)驗(yàn)適用于,一個(gè)研發(fā)團(tuán)隊(duì)開(kāi)發(fā)一個(gè)產(chǎn)品部署到各個(gè)客戶現(xiàn)場(chǎng)的情況。如果是小的項(xiàng)目或者各個(gè)現(xiàn)場(chǎng)本地化要求不多的,則不適用。

    posted @ 2011-01-07 09:51 河馬虎 閱讀(668) | 評(píng)論 (0)編輯 收藏

    java 基礎(chǔ)知識(shí)

    struts是一個(gè)很好的開(kāi)源項(xiàng)目,它所涉及到的技術(shù)在這個(gè)頁(yè)面基本列出。也是java的基本技術(shù)。

    http://struts.apache.org/primer.html

    posted @ 2010-10-20 17:35 河馬虎 閱讀(230) | 評(píng)論 (0)編輯 收藏

    java jdk & java api 幫助文檔(中文、英文版)

      java api 幫助文檔 chm 1.5 1.6 中文版英文版. 收藏
    Sun 公司提供的Java API Docs是學(xué)習(xí)和使用Java語(yǔ)言中最經(jīng)常使用的參考資料之一。但是長(zhǎng)期以來(lái)此文檔只有英文版,對(duì)于中國(guó)地區(qū)的Java開(kāi)發(fā)者來(lái)說(shuō)相當(dāng)?shù)牟槐恪D壳癝un 公司正在組織多方力量將此文檔翻譯成中文,并于2005年10月31日在Sun 中國(guó)技術(shù)社區(qū)(http://gceclub.sun.com.cn/)正式發(fā)布第一批中文版Java API文檔(包括java.lang和java.util類(lèi)庫(kù)API 文檔的中文版)。經(jīng)過(guò)將近10個(gè)月的努力,目前我們已經(jīng)將Java SE 5.0的全部API文檔中文化。開(kāi)發(fā)人員可以通過(guò)Sun 中國(guó)技術(shù)社區(qū)的網(wǎng)站在線瀏覽相關(guān)文檔,也可以將全部文檔下載到本地以方便檢索和使用。
    J2SE DK & API下載
    -------------------------
    http://java.sun.com/j2se/1.3/download.html
    http://java.sun.com/j2se/1.4.2/download.html
    http://java.sun.com/javase/downloads/index_jdk5.jsp
    http://java.sun.com/javase/downloads/index.jsp
    J2EE DK & API下載 
    -------------------------
    http://java.sun.com/j2ee/1.3/index.jsp
    http://java.sun.com/j2ee/1.3/download.html
    http://java.sun.com/j2ee/1.4/index.jsp
    http://java.sun.com/j2ee/1.4/download.html
    http://java.sun.com/javaee/downloads/index.jsp
    JDK1.6API中文版(全)
    -------------------------
    * HTML 格式(在線英文) http://java.sun.com/javase/6/docs/
    * HTML 格式(在線中文) http://download.java.net/jdk/jdk-api-localizations/jdk-api-zh-cn/publish/1.6.0/html/zh_CN/api/index.html
    * zip 格式(中文) http://download.java.net/jdk/jdk-api-localizations/jdk-api-zh-cn/publish/1.6.0/html_zh_CN.zip
    * CHM 格式(中文)  http://download.java.net/jdk/jdk-api-localizations/jdk-api-zh-cn/publish/1.6.0/chm/JDK_API_1_6_zh_CN.CHM

    JDK1.5API中文版(全)
    -------------------------
    * HTML 格式(在線英文) http://java.sun.com/javase/5/docs/
    * HTML 格式(在線中文)  http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/index.html
    * zip 格式(中文) http://gceclub.sun.com.cn/Java_Docs/html_zh_CN.zip
    * CHM 格式(中文) http://download.java.net/jdk/jdk-api-localizations/jdk-api-zh-cn/builds/JDK_API_1_5_zh_CN.CHM

    相關(guān)網(wǎng)站
    -------------------------
    http://java.sun.com
    http://gceclub.sun.com.cn/
    http://developers.sun.com/downloads/
    http://java.sun.com/javaee/downloads/
    http://java.sun.com/javase/downloads/
    http://www.netbeans.info/downloads/
     

    本文來(lái)自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/zhsp1029/archive/2008/04/05/2253865.aspx

    posted @ 2010-06-17 08:53 河馬虎 閱讀(11953) | 評(píng)論 (1)編輯 收藏

    Java 類(lèi)加載器

    類(lèi)加載器(class loader)是 Java™ 中的一個(gè)很重要的概念。類(lèi)加載器負(fù)責(zé)加載 Java 類(lèi)的字節(jié)代碼到 Java 虛擬機(jī)中。

    http://www.ibm.com/developerworks/cn/java/j-lo-classloader/index.html

    posted @ 2010-06-09 17:27 河馬虎 閱讀(277) | 評(píng)論 (0)編輯 收藏

    Use Case 中 include 與 extend 的區(qū)別

    Use Case 中 include 與 extend 的區(qū)別:
    http://wakan.blog.51cto.com/59583/7222



    例如打印用例 就可以提取出來(lái),作為被包含(include)的用例

    通知用戶用例可以作為基礎(chǔ)用例,那么e-mail通知用戶用例或者短信通知用戶用例就是2個(gè)擴(kuò)展(extends)的子用例

     

    posted @ 2010-06-07 15:37 河馬虎 閱讀(779) | 評(píng)論 (0)編輯 收藏

    Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實(shí)例詳解

    Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實(shí)例詳解
    http://bolo.blogjava.net/

    posted @ 2010-06-02 17:03 河馬虎 閱讀(272) | 評(píng)論 (0)編輯 收藏

    主站蜘蛛池模板: 亚洲综合小说另类图片动图| 国产精品亚洲美女久久久| 亚洲人成在线免费观看| 任你躁在线精品免费| 最近中文字幕大全免费版在线 | 免费A级毛片无码A| 最好免费观看韩国+日本| 成人性生交视频免费观看| 成年女人免费视频播放77777| 国产美女在线精品免费观看| 成人免费777777| 午夜成年女人毛片免费观看| 性做久久久久免费观看| 全部免费毛片在线| 中文国产成人精品久久亚洲精品AⅤ无码精品| 亚洲国产精品专区在线观看| 久久精品国产精品亚洲下载 | 成年大片免费视频| 免费无码又爽又高潮视频| 国产精品久久香蕉免费播放| 亚洲Av无码国产情品久久| 国内精品久久久久久久亚洲| 久久99国产亚洲高清观看首页 | 免费永久国产在线视频| 亚洲国产综合无码一区二区二三区 | 亚洲 欧洲 日韩 综合在线| 亚洲成av人片在www鸭子| 一级做a爰全过程免费视频毛片| 国产精品黄页免费高清在线观看| 久久久久成人精品免费播放动漫| 四虎在线免费视频| 国内自产少妇自拍区免费| 亚洲综合亚洲综合网成人| 久久久久亚洲av无码专区蜜芽| 亚洲AV无码乱码在线观看代蜜桃| 亚洲精品GV天堂无码男同| 一区二区三区免费视频播放器| 久久久久免费精品国产小说| 成人网站免费观看| 久久久久亚洲AV无码专区桃色| 亚洲激情中文字幕|