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

          2009年12月24日

          產(chǎn)品經(jīng)理編寫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

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




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

          需求分析誰來寫?很不錯(cuò)的文章


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

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

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


          轉(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)違背程序編寫標(biāo)準(zhǔn)的問題,程序中不安全、
                  不明確和模糊的部分,找出程序中不可移植部分、違背程序編程風(fēng)格的問題,
                  包括變量檢查、命名和類型審查、程序邏輯審查、程序語法檢查和程序結(jié)構(gòu)
                  檢查等內(nèi)容。”。看了一系列的靜態(tài)代碼掃描或者叫靜態(tài)代碼分析工具后,
                  總結(jié)對(duì)工具的看法:靜態(tài)代碼掃描工具,和編譯器的某些功能其實(shí)是很相似的,
                  他們也需要詞法分析,語法分析,語意分析...但和編譯器不一樣的是他們可
                  以自定義各種各樣的復(fù)雜的規(guī)則去對(duì)代碼進(jìn)行分析。

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

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

          Servlet 工作原理解析

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

          posted @ 2011-02-26 09:47 河馬虎 閱讀(365) | 評(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 河馬虎 閱讀(276) | 評(píng)論 (0)編輯 收藏

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

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

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

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

          3、界面客戶配置化,在實(shí)現(xiàn)的時(shí)候一定要考慮到性能問題,一般為了界面實(shí)現(xiàn)可配置,界面是動(dòng)態(tài)生成的,如果界面生成的配置參數(shù)放在數(shù)據(jù)庫,那么在系統(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、界面可配置化的程度問題,界面上大塊要可配置、數(shù)據(jù)項(xiàng)或者指標(biāo)項(xiàng)也要實(shí)現(xiàn)可配置。因?yàn)椴煌捻?xiàng)目現(xiàn)場會(huì)對(duì)大的功能有不同的要求甚至對(duì)數(shù)據(jù)項(xiàng)也有不同的要求。


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

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

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

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

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

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

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

            java api 幫助文檔 chm 1.5 1.6 中文版英文版. 收藏
          Sun 公司提供的Java API Docs是學(xué)習(xí)和使用Java語言中最經(jīng)常使用的參考資料之一。但是長期以來此文檔只有英文版,對(duì)于中國地區(qū)的Java開發(fā)者來說相當(dāng)?shù)牟槐恪D壳癝un 公司正在組織多方力量將此文檔翻譯成中文,并于2005年10月31日在Sun 中國技術(shù)社區(qū)(http://gceclub.sun.com.cn/)正式發(fā)布第一批中文版Java API文檔(包括java.lang和java.util類庫API 文檔的中文版)。經(jīng)過將近10個(gè)月的努力,目前我們已經(jīng)將Java SE 5.0的全部API文檔中文化。開發(fā)人員可以通過Sun 中國技術(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/
           

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

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

          Java 類加載器

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

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

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

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

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



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

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

           

          posted @ 2010-06-07 15:37 河馬虎 閱讀(785) | 評(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 河馬虎 閱讀(274) | 評(píng)論 (0)編輯 收藏

          依賴注入DI

          什么是依賴注入
          http://blog.csdn.net/taijianyu/archive/2008/04/28/2338311.aspx


          深度理解依賴注入(Dependence Injection)

          http://www.cnblogs.com/xingyukun/archive/2007/10/20/931331.html


          Inversion of Control Containers and the Dependency Injection pattern
          http://www.martinfowler.com/articles/injection.html



          posted @ 2010-05-27 13:32 河馬虎 閱讀(182) | 評(píng)論 (0)編輯 收藏

          J2EE Patterns Catalog

          從J2EE藍(lán)圖模式分類http://java.sun.com/blueprints/patterns/catalog.html中就可以很清楚的看到J2EE這樣一個(gè)框架軟件的架構(gòu)與設(shè)計(jì)模式的關(guān)系

          posted @ 2010-04-26 15:31 河馬虎 閱讀(197) | 評(píng)論 (0)編輯 收藏

          WLAN中的VLAN劃分方法

          VLAN的好處在于有效地限制了L2的廣播域。對(duì)于有線網(wǎng)絡(luò),常見的VLAN劃分方法包括基于交換機(jī)端口的劃分、基于MAC地址的劃分、基于L3的IP劃分以及基于802.1x的安全憑證劃分等,這方面的資料比較多,支持的產(chǎn)品也很多,應(yīng)用很成熟。

          但對(duì)于WLAN,該如何劃分VLAN呢?

          WLAN的網(wǎng)絡(luò)結(jié)構(gòu)基本單位是BSS。BSS有兩種形態(tài):獨(dú)立基礎(chǔ)結(jié)構(gòu)(IBSS,也叫自組網(wǎng)Adhoc)和基礎(chǔ)結(jié)構(gòu)Infrastructure。自組網(wǎng)就是多個(gè)站點(diǎn)自發(fā)組成一個(gè)可以互通的WLAN,而基礎(chǔ)結(jié)構(gòu)模式則以AP為中心,其它站點(diǎn)都先與AP關(guān)聯(lián),然后才能與BSS中的其它站點(diǎn)進(jìn)行通信。以下所提到的BSS僅指基礎(chǔ)結(jié)構(gòu)。

          WLAN中的VLAN劃分必須要有AP的支持。每一個(gè)VLAN由一個(gè)VLAN ID來標(biāo)示,因此以什么作為VLAN ID的依據(jù),決定了VLAN在哪個(gè)層次劃分。根據(jù)VLAN與BSS的關(guān)系,WLAN中的VLAN劃分有幾種情況。

          1. 以MAC層依據(jù)作為VLAN ID

          一個(gè)AP至少可以組建一個(gè)BSS,而且不少實(shí)際的產(chǎn)品還支持同時(shí)虛擬出多個(gè)BSS,每個(gè)BSS擁有不同的BSSID。對(duì)于每個(gè)BSS,一些AP產(chǎn)品還可以同時(shí)支持多個(gè)SSID,不同的SSID共享大部分的BSS配置和Radio接口配置,可以有少部分配置不一樣(比如密鑰)。

          1.1 以SSID或BSSID為劃分依據(jù)

          一種容易實(shí)現(xiàn)的VLAN劃分方法就是以SSID為劃分依據(jù),每個(gè)SSID對(duì)應(yīng)一個(gè)VLAN ID。這種劃分依據(jù)完全來自于802.11 MAC層的SSID,因此可以完全在AP內(nèi)部實(shí)現(xiàn)。根據(jù)AP對(duì)多SSID支持情況的不同,具體情況又有所不同。

          1.1.1 AP支持多個(gè)BSS,每個(gè)BSS又支持多個(gè)SSID

          這種情況下按照SSID來劃分VLAN,所有連接到該SSID的站點(diǎn)都屬于同一個(gè)VLAN。每個(gè)SSID提供給STATION的接入端口均為VLAN的Access端口,是不帶tag的端口。

          由于一個(gè)BSS內(nèi)有多個(gè)SSID,因此一個(gè)BSS內(nèi)就會(huì)有多個(gè)VLAN。由于這些SSID均屬于同一BSS,因此如果位于兩個(gè)VLAN內(nèi)的STATION要通信,只需要經(jīng)過AP內(nèi)部的轉(zhuǎn)發(fā)橋接即可。

          1.1.2 AP僅支持一個(gè)BSS,每個(gè)BSS支持多SSID

          這種情況下按照SSID來劃分VLAN,跟上面的情況類似。

          1.1.3 AP支持多個(gè)BSS,每個(gè)BSS僅支持一個(gè)SSID

          這種情況下SSID與BSSID一一對(duì)應(yīng),因此根據(jù)SSID來劃分VLAN與根據(jù)BSSID來劃分是一樣的。這種情況下屬于同一個(gè)BSS的站點(diǎn)屬于同一個(gè)VLAN,位于兩個(gè)VLAN內(nèi)的STATION要通信,只需要經(jīng)過AP內(nèi)部的轉(zhuǎn)發(fā)橋接即可也僅僅需要AP內(nèi)部的轉(zhuǎn)發(fā)。

          1.1.4 AP僅支持BSS,每個(gè)BSS僅支持一個(gè)SSID

          這種情況下如果按照SSID或BSSID來劃分VLAN,則整個(gè)BSS均屬于同一VLAN。由于不存在多個(gè)VLAN,因此不存在VLAN互通的問題。

          可見,如果在同一AP內(nèi)部劃分不同的VLAN,那么這些VLAN間的互通僅需要AP內(nèi)部的MAC橋接即可實(shí)現(xiàn),而不需要將數(shù)據(jù)交到更高層進(jìn)行轉(zhuǎn)發(fā)或橋接。

          1.2 以MAC地址為劃分依據(jù)

          這種情況根據(jù)STATION的MAC地址在BSS內(nèi)劃分VLAN。AP根據(jù)從STATION發(fā)來的幀中的源地址決定該STATION所屬的VLAN,從而可以保證同一VLAN的互通和不同VLAN的橋接。

          上面的兩種劃分均是以802.11 MAC層的信息作為VLAN ID的劃分依據(jù),因此同一VLAN內(nèi)部的轉(zhuǎn)發(fā)和不同VLAN之間的橋接均可在AP內(nèi)部實(shí)現(xiàn),而不需要分發(fā)。

          在上面的兩種情況下,在AP內(nèi)部只需要維護(hù)兩張表即可:一張表是VLAN ID與VLAN依據(jù)(SSID/BSSID或MAC地址)之間的對(duì)應(yīng)表,另一張表示VLAN ID與VLAN接口之間的對(duì)應(yīng)表。Access端口上的數(shù)據(jù)收發(fā)情況如下:

          進(jìn)入Access端口的數(shù)據(jù):可以不帶tag。如果需要分發(fā)到AP外(目的地址不是BSSID且不是任何BSS中的其它站點(diǎn)),則加上tag通過分發(fā)接口分發(fā);如果不需要分發(fā)到AP外,則有幾種情況:

          DA為BSSID,則由AP接收并處理;
          DA為同一VLAN中的其它STATION,則MAC層轉(zhuǎn)發(fā);
          DA為不同VLAN,但同一AP中的其它STATION,則執(zhí)行VLAN之間的橋接協(xié)議。
          從Access端口發(fā)出的數(shù)據(jù):不帶tag,直接發(fā)到STATION。

          這種劃分的缺點(diǎn)僅適合于較小的網(wǎng)絡(luò),靈活性較差。比如,無法實(shí)現(xiàn)跨AP的VLAN,也就是連接到不同AP的兩個(gè)STATION無法劃分到同一個(gè)VLAN。

          2. 動(dòng)態(tài)VLAN劃分方式

          動(dòng)態(tài)劃分方式并不由AP來決定VLAN ID,而是由其它更高級(jí)的設(shè)備來決定。一種方法是由RADIUS服務(wù)器來劃分。當(dāng)一個(gè)STATION與AP關(guān)聯(lián)時(shí),AP中的RADIUS客戶端與RADIUS服務(wù)器進(jìn)行通信,從而得到該STATION所屬的VLAN ID。RADIUS決定STATION服務(wù)器所屬VLAN的依據(jù)可以是用戶名、IP地址等,因此具有很大的靈活性。當(dāng)用戶的位置改變后,他所屬的VLAN仍然不變。

          采用動(dòng)態(tài)VLAN方式后,同一個(gè)AP的同一個(gè)SSID中的兩個(gè)STATION可能屬于不同的VLAN,而連接到兩個(gè)不同AP中的STATION卻可能屬于同一VLAN。因此這種情況下,要實(shí)現(xiàn)同一VLAN中不同STATION之間的互通,需要更高層的轉(zhuǎn)發(fā)和橋接,可能需要經(jīng)過位于WDS接口或以太網(wǎng)DS接口等接口之上的VLAN trunk、hybrid端口。

           

          本文來自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/rangzh/archive/2008/07/02/2606778.aspx

          posted @ 2010-04-21 14:44 河馬虎 閱讀(2367) | 評(píng)論 (0)編輯 收藏

          需求分析--從用例到代碼

          從用例到代碼, 第一部分: 用例分析


          http://www.ibm.com/developerworks/cn/rational/rationaledge/content/mar05/5383/index.html#N1083A

          從用例到代碼,第二部分:用例設(shè)計(jì)

          http://www.ibm.com/developerworks/cn/rational/rationaledge/content/mar05/5670/

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

          需求調(diào)研步驟和方法

          參考:http://www.ibm.com/developerworks/cn/java/l-anareq/

          第1章前言

          目的

          需求調(diào)研是為需要說明書做前期工作,可以說需要說明書說是從需求調(diào)研表中得到或抽取而出。

          需求調(diào)研是要了解現(xiàn)實(shí)世界中做實(shí)際工作的人們真正需要什么樣的程序的過程,再把這些需求開進(jìn)細(xì)節(jié)整理由設(shè)計(jì)部開發(fā),再由銷售部銷售給用戶。

          用戶:系統(tǒng)分析人員





          回頁首


          第2章前期準(zhǔn)備

          2.1. 確定工具

          • 沒有什么工具是好還是壞的問題,問題是關(guān)鍵是如何使用它們,無論是什么工具也只是一個(gè)輔助工具,也不是生成工具。
          • 工具的選取要求是自己(本組)熟悉的工具,不能是一件最新時(shí)髦工具而自己對(duì)它了解很少,結(jié)果大部分時(shí)間化在學(xué)習(xí)工具上,而不是使用它為你工作。
          • 工具最好也是要求是普通流行的,因?yàn)橐紤]交流的問題。

           

          2.2. 要做什么就要先了解什么

          • 如果做的項(xiàng)目是你所不了解的一個(gè)行業(yè)(專業(yè))同組有要最好有要專家----最終用戶做為這個(gè)專家是最好的,最少你有了解這個(gè)專業(yè),不是要你成為專家,但最少要了解一定的專業(yè)知識(shí)(最少專來詞匯你要知道),不然您甚至不知道去問什么問題或者如何去問他們,甚至于人家在說什么你也不知道。
          • 相應(yīng)的專業(yè)資料是必須的,最少要有專業(yè)入門書籍和對(duì)應(yīng)的資料,也需要求更深入的一些資料。當(dāng)然有專家的參入就另當(dāng)別論。
          • 如果行業(yè)的難度不是很大,可以通入分析人員的自我學(xué)習(xí)在短時(shí)間內(nèi)了解行業(yè),也許可以不用專家,否則專家是必須的。

           

          2.3. 建立設(shè)計(jì)環(huán)境

          一定建立一個(gè)專門的設(shè)計(jì)環(huán)境來為本項(xiàng)目服務(wù),進(jìn)行一定的資源分配,進(jìn)行必要的文件管理。

          2.4. 真正了解自己和用戶

          • 那些是用戶可能明確要達(dá)到的目地
          • 要知道那些是自己能做到的,那些是自己不能做的。
          • 對(duì)于不能做的處理方法,如拒絕,轉(zhuǎn)包等
          • 那些是用戶想要做到的

           

          2.5. 列出人員分配表和所有工具列表

          • 明確項(xiàng)目人員分工
          • 統(tǒng)一項(xiàng)目所用的工具
          • 統(tǒng)一項(xiàng)目文件模版
          • 其它資源列表(資料,相關(guān)網(wǎng)站,資詢電話。。。)

           





          回頁首


          第3章調(diào)研過程

          3.1. 搜集需求得到需求說明書

          注意:

          1. 雖然最終必須要編成基于計(jì)算機(jī)解決方案的描述,但到目前為止,我們關(guān)注的焦點(diǎn)的文檔在相應(yīng)領(lǐng)域方面的部分。
          2. 記住這里沒有計(jì)算機(jī)方面的行話,如果是編寫一個(gè)會(huì)計(jì)軟件,那么一位會(huì)計(jì)師都應(yīng)該清楚地理解程序員寫的會(huì)計(jì)方面的問題說明書
          3. 需求說明書問題中,不要太正式。只要描述能表達(dá)您想要做的事情就行了,就和另外一個(gè)人在說話一樣就可以。
          4. 對(duì)于客戶或相應(yīng)人員了解問題時(shí),一定要有記筆記的習(xí)慣,談上幾個(gè)小時(shí),很多細(xì)節(jié)是記不住的。

           

          3.2. 整理,檢查和細(xì)化需求說明書

          1. 對(duì)于客戶的需要進(jìn)行必要的整理和分類有進(jìn)從用戶那里會(huì)得到很多信息,不行進(jìn)必要的整理就不能從中進(jìn)行合理的分析
          2. 分清有用功能、可選功能用、無用功能及不可實(shí)現(xiàn)功能對(duì)于用戶來講他可以說出他想要的很多功能,但這些功能間的關(guān)系有時(shí)是清晰的,但對(duì)于很多用戶來講想通過計(jì)算機(jī)或新系統(tǒng)實(shí)現(xiàn)他以前沒有的功能,在這時(shí)他所提出的新需求的可行性和與其它模塊之間的關(guān)系就已經(jīng)不清,所以對(duì)于分析員來講,要從用戶的需求中分清有用功能和無用功能和可選功能,進(jìn)行分別區(qū)分處理,比如不可實(shí)現(xiàn)功能請(qǐng)用戶放棄。
          3. 不要忽略明顯的錯(cuò)誤用戶倒是不經(jīng)常提及他需要的東西,而這些東西對(duì)問題來說都是很基本的,要細(xì)化檢查一定有注意這個(gè)問題。
          4. 你認(rèn)為的也許不是對(duì)的對(duì)于系統(tǒng)分析員對(duì)需求分析的自認(rèn)為的情況要加以注意,對(duì)于一個(gè)行業(yè)來說,有些規(guī)則可以不是最合理,但它就是那樣存在和使用,所以對(duì)于每一個(gè)非明確確定的需求,要由專業(yè)人員來審定。除非你就是專家。

           

          3.3. 改進(jìn)

          最初的第一次需求在分析,細(xì)化一定有不明及不確定之處,那么就把整理出一份問題細(xì)化問詢表,對(duì)發(fā)現(xiàn)的問題進(jìn)行整理,列出不明之處,可根椐以下格式

          問詢?nèi)耍?
                      問題:
                      業(yè)務(wù)不清問題列表(業(yè)務(wù)描述不清):
                      1 ….是什么含義?
                      2 …..與XX是什么關(guān)系?
                      多種選擇可以列表(請(qǐng)用戶進(jìn)行選擇):
                      1 ……有多個(gè)可能,那么現(xiàn)在我們使用
                      A ……   B…….   C……..  D ……

          3.4. 審核需求

          1. 自我審枋
            把自己從用戶的角度來考慮
            是否合理,是否可以提高效率,是否可以達(dá)到目的,是否有完整
          2. 由用戶來評(píng)價(jià)
            由最終用戶來評(píng)價(jià)你所列的需求是否達(dá)到了用戶要求(用戶人數(shù)1-3人,再多也沒有什么益處)。
          3. 重復(fù)過程,最終通過審核完成需求說明書

           



          參考資料

          • 標(biāo)準(zhǔn)版API 規(guī)范,JAVA 2 核心技術(shù)和其他方面的信息。


          posted @ 2010-03-30 20:32 河馬虎 閱讀(7999) | 評(píng)論 (0)編輯 收藏

          需求調(diào)研

          軟件項(xiàng)目需求調(diào)研總結(jié) :
          http://blog.csdn.net/success_dream/archive/2007/10/14/1824730.aspx

          軟件項(xiàng)目調(diào)研內(nèi)容分為:項(xiàng)目管理方面調(diào)研和業(yè)務(wù)調(diào)研,其中項(xiàng)目管理方面調(diào)研包括:項(xiàng)目目標(biāo)、項(xiàng)目時(shí)間、資源、地點(diǎn)、需要協(xié)調(diào)的事宜等,二:業(yè)務(wù)調(diào)研包括:業(yè)務(wù)目標(biāo)、業(yè)務(wù)范圍、業(yè)務(wù)流程等,因此每次調(diào)研應(yīng)該分兩部分來整理調(diào)研報(bào)告。

          posted @ 2010-03-03 11:36 河馬虎 閱讀(163) | 評(píng)論 (0)編輯 收藏

          產(chǎn)品設(shè)計(jì)

          這是一個(gè)產(chǎn)品分析和設(shè)計(jì)不錯(cuò)的一個(gè)網(wǎng)站
           http://www.kuliqiang.com/?p=1345 
           
          http://hi.baidu.com/myey8

          posted @ 2010-01-23 17:22 河馬虎 閱讀(205) | 評(píng)論 (0)編輯 收藏

          Robert Eckstein blog


          Robert Eckstein  blog (  mvc)

          http://www.java.net/blog/105271

          posted @ 2010-01-15 11:19 河馬虎 閱讀(236) | 評(píng)論 (0)編輯 收藏

          MVC

        1. Model - The model represents data and the rules that govern access to and updates of this data. In enterprise software, a model often serves as a software approximation of a real-world process.
        2. View - The view renders the contents of a model. It specifies exactly how the model data should be presented. If the model data changes, the view must update its presentation as needed. This can be achieved by using a push model, in which the view registers itself with the model for change notifications, or a pull model, in which the view is responsible for calling the model when it needs to retrieve the most current data.
        3. Controller - The controller translates the user's interactions with the view into actions that the model will perform. In a stand-alone GUI client, user interactions could be button clicks or menu selections, whereas in an enterprise web application, they appear as GET and POST HTTP requests. Depending on the context, a controller may also select a new view -- for example, a web page of results -- to present back to the user.

          1   MVC explain  from Sun
                      http://java.sun.com/blueprints/patterns/MVC-detailed.html
          2  Java SE Application Design With MVC
                  http://java.sun.com/developer/technicalArticles/javase/mvc/
          3  Applying MVC
                  http://www.javadude.com/articles/vaddmvc1/mvc1.htm
          4   good  sample
                http://leepoint.net/notes-java/GUI/structure/40mvc.html
        4. 5  MVC design
              http://javadude.com/articles/index.html


          posted @ 2010-01-14 15:04 河馬虎 閱讀(182) | 評(píng)論 (0)編輯 收藏

          分析Eclipse源代碼,理解OSGI插件機(jī)制內(nèi)幕(轉(zhuǎn))

          http://blog.csdn.net/gonxi/archive/2006/02/26/610146.aspx

          posted @ 2009-12-30 12:11 河馬虎 閱讀(193) | 評(píng)論 (0)編輯 收藏

          體系結(jié)構(gòu)方面

          關(guān)于體系結(jié)構(gòu)方面,目前國內(nèi)已經(jīng)有很多人闡述過。
           
          http://blog.csdn.net/computer286/archive/2005/11/17/531408.aspx

          http://www.aygfsteel.com/BlueDavy/archive/2005/07/03/7069.aspx

          SharpDevelop的AddIn機(jī)制
          http://passos.cnblogs.com/archive/2004/10/04/48950.aspx

          Jboss的JMX機(jī)制等

          posted @ 2009-12-30 10:38 河馬虎 閱讀(169) | 評(píng)論 (0)編輯 收藏

          eclipse中國社區(qū)

          http://www.eclipseworld.org/bbs

          posted @ 2009-12-30 10:03 河馬虎 閱讀(242) | 評(píng)論 (0)編輯 收藏

          birt ----- report tool

          1、 http://www.eclipse.org/birt/  大概了解個(gè)網(wǎng)站導(dǎo)航
                  內(nèi)容包括:introduction(簡介) , download(下載),install(安裝指南) , tutorial(教程),faq等
          2、下載,到http://download.eclipse.org/birt/downloads/  可以一一下載

          該工具做中國式報(bào)表很不錯(cuò)

          posted @ 2009-12-30 09:59 河馬虎 閱讀(190) | 評(píng)論 (0)編輯 收藏

          如何做需求?

          需求要做的事情:
              1).要明確誰或者那個(gè)崗位(或者角色)要使用這個(gè)系統(tǒng)
              2).該崗位的業(yè)務(wù)流程
              3) 該崗位能為系統(tǒng)提供哪些數(shù)據(jù)
              4 )該崗位系統(tǒng)從系統(tǒng)得到哪些數(shù)據(jù)或者功能

          比如客戶提出我要做一張桌子。
           那么需求人員就要獲取一下信息:
          1 ) 這張桌子給誰用,(給小孩還是大人?)
          2) 這張桌子做什么用,(書桌還是飯桌?)
          3) 客戶希望這張桌子是一個(gè)什么樣子的(材質(zhì)、顏色 、高低、形狀等屬性)
          有了以上這些信息才能進(jìn)入分析設(shè)計(jì)階段。
          如何跟用戶達(dá)成一致的需求和理解:
                 當(dāng)然,桌子是大家經(jīng)常見到的東西,需求人員和客戶溝通起來都比較好達(dá)成一致,計(jì)算機(jī)系統(tǒng)往往是從無到有的一個(gè)過程?那么如何準(zhǔn)確的獲取到用戶的需求呢?通過做界面原型也許是一個(gè)很好的方式,界面原型特點(diǎn)是直觀,界面原型是的客戶和需求人員有了溝通的基礎(chǔ)和橋梁,能幫助很快達(dá)成一致。

          如何做以及維護(hù)界面原型:
          1) 界面原型技術(shù)實(shí)現(xiàn)盡量簡單,但功能上要豐富一些,因?yàn)橐鎸?duì)客戶,而且界面原型甚至確定了后來的整個(gè)系統(tǒng)概貌
          2) 界面原型最好要專人來維護(hù),根據(jù)客戶的要求不同進(jìn)行修改和維護(hù)
          3)界面原型的設(shè)計(jì)盡量讓 需求和分析人員、美工人員共同完成。





          posted @ 2009-12-30 09:41 河馬虎 閱讀(178) | 評(píng)論 (0)編輯 收藏

          一個(gè)美國老工程師的心理話: 給年輕工程師的十大忠告

          一個(gè)美國老工程師的心理話: 給年輕工程師的十大忠告

          [1]好好規(guī)劃自己的路,不要跟著感覺走!根據(jù)個(gè)人的理想決策安排,絕大部分人并不指望成為什么院
          士或教授,而是希望活得滋潤一些,爽一些。那么,就需要慎重安排自己的軌跡。從哪個(gè)行業(yè)入手,逐
          漸對(duì)該行業(yè)深入了解,不要頻繁跳槽,特別是不要為了一點(diǎn)工資而轉(zhuǎn)移陣地,從長遠(yuǎn)看,這點(diǎn)錢根本不
          算什么,當(dāng)你對(duì)一個(gè)行業(yè)有那么幾年的體會(huì),以后錢根本不是問題。頻繁地動(dòng)蕩不是上策,最后你對(duì)哪
          個(gè)行業(yè)都沒有摸透,永遠(yuǎn)是新手!   

          [2]可以做技術(shù),切不可沉湎于技術(shù)。千萬不可一門心思鉆研技術(shù)!給自己很大壓力,如果你的心思全
          部放在這上面,那么注定你將成為孔乙己一類的人物!適可而止為之,因?yàn)榧夹g(shù)只不過是你今后前途的
          支柱之一,而且還不是最大的支柱,除非你只愿意到老還是個(gè)工程師!   

          [3]不要去做技術(shù)高手,只去做綜合素質(zhì)高手!在企業(yè)里混,我們時(shí)常瞧不起某人,說他“什么都不
          懂,憑啥拿那么多錢,憑啥升官!”這是普遍的典型的工程師的迂腐之言。8051很牛嗎?人家能上去必
          然有他的本事,而且是你沒有的本事。你想想,老板搞經(jīng)營那么多年,難道見識(shí)不如你這個(gè)新兵?人家
          或許善于管理,善于領(lǐng)會(huì)老板意圖,善于部門協(xié)調(diào)等等。因此務(wù)必培養(yǎng)自己多方面的能力,包括管理,
          親和力,察言觀色能力,攻關(guān)能力等,要成為綜合素質(zhì)的高手,則前途無量,否則只能躲在角落看示波
          器!技術(shù)以外的技能才是更重要的本事!!從古到今,美國日本,一律如此!   

          [4]多交社會(huì)三教九流的朋友!不要只和工程師交往,認(rèn)為有共同語言,其實(shí)更重要的是和其他類人物
          交往,如果你希望有朝一日當(dāng)老板或高層管理,那么你整日面對(duì)的就是這些人。了解他們的經(jīng)歷,思維
          習(xí)慣,愛好,學(xué)習(xí)他們處理問題的模式,了解社會(huì)各個(gè)角落的現(xiàn)象和問題,這是以后發(fā)展的巨大的本
          錢,沒有這些以后就會(huì)笨手笨腳,跌跌撞撞,遇到重重困難,交不少學(xué)費(fèi),成功的概率大大降低!

           [5]知識(shí)涉獵不一定專,但一定要廣!多看看其他方面的書,金融,財(cái)會(huì),進(jìn)出口,稅務(wù),法律等
          等,為以后做一些積累,以后的用處會(huì)更大!會(huì)少交許多學(xué)費(fèi)!!   

          [6]抓住時(shí)機(jī)向技術(shù)管理或市場銷售方面的轉(zhuǎn)變!要想有前途就不能一直搞開發(fā),適當(dāng)時(shí)候要轉(zhuǎn)變?yōu)楣?br /> 理或銷售,前途會(huì)更大,以前搞技術(shù)也沒有白搞,以后還用得著。搞管理可以培養(yǎng)自己的領(lǐng)導(dǎo)能力,搞
          銷售可以培養(yǎng)自己的市場概念和思維,同時(shí)為自己以后發(fā)展積累龐大的人脈!應(yīng)該說這才是前途的真正
          支柱!!!   

          [7]逐漸克服自己的心里弱點(diǎn)和性格缺陷!多疑,敏感,天真(貶義,并不可愛),猶豫不決,膽怯,
          多慮,臉皮太薄,心不夠黑,教條式思維。。。這些工程師普遍存在的性格弱點(diǎn)必須改變!很難嗎?只
          在床上想一想當(dāng)然不可能,去幫朋友守一個(gè)月地?cái)偅鼫?zhǔn)有效果,去實(shí)踐,而不要只想!不克服這些缺
          點(diǎn),一切不可能,甚至連項(xiàng)目經(jīng)理都當(dāng)不好--盡管你可能技術(shù)不錯(cuò)!   

          [8]工作的同時(shí)要為以后做準(zhǔn)備!建立自己的工作環(huán)境!及早為自己配置一個(gè)工作環(huán)境,裝備電腦,示
          波器(可以買個(gè)二手的),仿真器,編程器等,業(yè)余可以接點(diǎn)活,一方面接觸市場,培養(yǎng)市場感覺,同
          時(shí)也積累資金,更重要的是準(zhǔn)備自己的產(chǎn)品,咱搞技術(shù)的沒有錢,只有技術(shù),技術(shù)的代表不是學(xué)歷和證
          書,而是產(chǎn)品,拿出象樣的產(chǎn)品,就可技術(shù)轉(zhuǎn)讓或與人合作搞企業(yè)!先把東西準(zhǔn)備好,等待機(jī)會(huì),否
          則,有了機(jī)會(huì)也抓不住!   

          [9]要學(xué)會(huì)善于推銷自己!不僅要能干,還要能說,能寫,善于利用一切機(jī)會(huì)推銷自己,樹立自己的品
          牌形象,很必要!要?jiǎng)?chuàng)造條件讓別人了解自己,不然老板怎么知道你能干?外面的投資人怎么相信你?
          提早把自己推銷出去,機(jī)會(huì)自然會(huì)來找你!搞個(gè)個(gè)人主頁是個(gè)好注意!!特別是培養(yǎng)自己在行業(yè)的名
          氣,有了名氣,高薪機(jī)會(huì)自不在話下,更重要的是有合作的機(jī)會(huì)...   

          [10]該出手時(shí)便出手!永遠(yuǎn)不可能有100%把握!!!條件差不多就要大膽去干,去闖出自己的事業(yè),不
          要猶豫,不要彷徨,干了不一定成功,但至少為下一次沖擊積累了經(jīng)驗(yàn),不干永遠(yuǎn)沒出息,而且要干成
          必然要經(jīng)歷失敗。不經(jīng)歷風(fēng)雨,怎么見彩虹,沒有人能隨隨便便成功!

          posted @ 2009-12-24 11:27 河馬虎 閱讀(208) | 評(píng)論 (0)編輯 收藏

          主站蜘蛛池模板: 奈曼旗| 化州市| 辽阳市| 新晃| 平罗县| 呼图壁县| 鄂尔多斯市| 万盛区| 长岛县| 清徐县| 大竹县| 额济纳旗| 金乡县| 五家渠市| 兴安盟| 临安市| 嘉荫县| 衢州市| 临海市| 玛多县| 二手房| 天峻县| 湘潭市| 丰城市| 蓝山县| 长汀县| 峨边| 广安市| 伊川县| 永宁县| 电白县| 宁蒗| 天全县| 新绛县| 阳谷县| 奎屯市| 上栗县| 平原县| 宁阳县| 遵义市| 仲巴县|