安裝和配置簡述

              * 英文指南
              * 配置tomcat
                    o 修改 server.xml ,在connector 加 URIEncoding="UTF-8"
                    o 修改 catalina.sh ,加一行 CATALINA_OPTS="-DHUDSON_HOME=~/apprun/hudsonhome/ -Xms512m -Xmx512m"
                          + 其中 HUDSON_HOME 是 hudson 的配置和運(yùn)行文件所在地
                    o 修改 tomcat-users.xml
                          + <role rolename="admin"/>
                          + <user username="hudson" password="hudson" roles="admin"/>
              * 把下載的hudson.war 放在 tomcat 的webapps 下,hudson 會自動啟動起來,部署就完成了
                    o 可以訪問,比如 http://****:18080/hudson/
              * 安裝 jdk
              * 安裝 ant
              * 配置hudson
                    o 配置和管理需要登陸 ,login
                    o 打開管理頁面,比如 http://****:18080/hudson/configure
                    o 配置安全 ,Enable security ,兩個選項(xiàng):Delegate to servlet container --〉Legacy mode
                    o 配置 jdk 路徑, 比如 /home/**/tools/jdk1.6.0_13/
                    o 配置 ant 路徑, 比如 /home/**/apprun/ant171
                    o 配置 System Admin E-mail Address ,//寫一個很多項(xiàng)目公用的email
                    o 記得 save
              * 新建一個job
                    o 配置和管理需要登陸 ,login
                    o new job ,選項(xiàng) :Build a free-style software project
                    o 配置 ,比如 :**:18080/hudson/job/icontent/configure
                          + 填寫svn 路徑 ,比如 :http://svn.****
                          + Build Triggers,選Poll SCM ,schedule 符合 cron 規(guī)則
                          + Build ,invoke ant ,填寫 ant target
                          + Post-build Actions ,選 E-mail Notification , Recipients 填寫郵件地址
              * 配置linux 的環(huán)境變量
                    o vi .bash_profile
                    o JAVA_HOME=$HOME/tools/jdk1.6.0_13
                    o PATH=$JAVA_HOME/bin:$PATH:$HOME/bin:$HOME/apprun/ant171/bin
                    o LANG=zh_CN.GB2312 //encoding 與.java 源代碼文件的編碼一致 ,這樣javadoc 不會有警告
                    o LC_CTYPE=zh_CN.GB2312

          easy!
          great tool!
          posted @ 2009-05-11 18:48 西津渡 閱讀(788) | 評論 (0)編輯 收藏
           
          1. hibernate 變得不太重要了,jdbc 就很好
          2. 數(shù)據(jù)庫不夠用了,bdb
          3. bdb 不夠用了, 自己寫b+ tree
          4. java 不行了,得用 c++

          看來,這個轉(zhuǎn)變是個革命。搞不好得丟飯碗。

          從想做一個創(chuàng)業(yè)者,到想做一個proferssional 。

          posted @ 2009-02-15 19:36 西津渡 閱讀(171) | 評論 (0)編輯 收藏
           
          <西津渡圖解軟件項(xiàng)目管理 〉從1年半之前,每當(dāng)有新的感受,就修訂一些。為自己的成長作個備注吧。
          posted @ 2009-02-02 12:54 西津渡 閱讀(166) | 評論 (1)編輯 收藏
           
          code-block with mingw ,setup .
          set path=c:\program file\code blocks\mingw\bin;%path%
          bjam --toolset=gcc-3.4.5 --prefix=d:\boost\b137345 --build-type=complete install


          posted @ 2009-01-13 10:18 西津渡 閱讀(150) | 評論 (0)編輯 收藏
           
          很久沒有來blogjava 了。
          一個原因是,關(guān)注的內(nèi)容與blogjava 的東西,重疊的太少了。
          不過,我也納悶,我該去哪里找自己的同好?
          blogjava 在云計算,web2.0 ,這些前途領(lǐng)域,沒有什么內(nèi)容。
          struts,hibernate,spring, acegi,lucene 這些都是成熟的東西了。
          說一下我最近用過的東西:
          hadoop,hbase,zookeeper,深入研究了java concurrent.

          下一步的方向是寫一個,distribute document oriented file system.

          技術(shù)和互聯(lián)網(wǎng)的發(fā)展,絕對是web2.0,云計算,兩端厚的架構(gòu)。blogjava 也該多這方面的內(nèi)容了。

          posted @ 2009-01-09 10:35 西津渡 閱讀(311) | 評論 (4)編輯 收藏
           
          Conducting and Reviewing the Software Design Model

                The design model resides at the core of the software engineering process. It is the place where quality is built into the software (and the place where quality is assessed. For this checklist, the more questions that elicit a negative response, the higher the risk that the analysis model will adequately serve its purpose. . For this checklist, the more questions that elicit a negative response, the higher the risk that the design model will not adequately serve its purpose.

                General issues:

                    o Does the overall design implement all explicit requirements? Has a traceability table been developed?

                設(shè)計對需求的匹配?



                    o Does the overall design achieve all implicit requirements?

                    
              
                    o Is the design represented in a form that is easily understood by outsiders?

                  易理解?

                    o Is design notation standardized? Consistent?

                  

                    o Does the overall design provide sufficient information for test case design?

                  可測試。

                    o Is the design created using recognizable architectural and procedural patterns?

                  常用的架構(gòu) 和模式?
                  

                    o Does the design strive to incorporate reusable components?

                  重用組件?

                    o Is the design modular?

                  模塊化

                    o Has the design defined both procedural and data abstractions that can be reused?
                  重用的過程 / 數(shù)據(jù) 抽象?
                  

                    o Has the design been defined and represented in a stepwise fashion?
                  逐漸細(xì)化的表述?    

                    o Has the resultant software architecture been partitioned for ease of implementation? Maintenance?
                  可部署性? 可維護(hù)性?


                    o Have the concepts of information hiding and functional independence been followed throughout the design?

                     封裝性?

                    o Has a Design Specification been developed for the software?

                  文檔?


                For data design:

                    o Have data objected defined in the analysis model been properly translated into required data structured?

                  數(shù)據(jù)映射with analysis?        

                    o Do the data structures contain all attributes defined in the analysis model?
                  數(shù)據(jù)屬性?

                    o Have any new data structures and/or attributes been defined at design time?

                  新的數(shù)據(jù)結(jié)構(gòu)?

                    o How do any new data structures and/or attributes related to the analysis model and to overall user requirements?

                  用戶需求與數(shù)據(jù)結(jié)構(gòu)匹配嗎?

                    o Have the simplest data structures required to do the job been chosen?

                  數(shù)據(jù)結(jié)構(gòu)簡單嗎?

                    o Can the data structures be implemented directly in the programming language of choice?

                  編程語言適合數(shù)據(jù)結(jié)構(gòu)?

                    o How are data communicated between software components?
                  軟件組件之間的數(shù)據(jù)交換?

                    o Do explicit data components (e.g., a database) exist? If so, what is their role?

                  數(shù)據(jù)庫?

                For architectural design:

                    o Has a library of architectural styles been considered prior to the definition of the resultant software architecture?
                  
                  架構(gòu)模式?

                    o Has architectural tradeoff analysis been performed?
                  架構(gòu)分析的tradeoff?

                    o Is the resultant software architecture a recognizable architectural style?

                  認(rèn)可的架構(gòu)風(fēng)格?

                    o Has the architecture been exercised against existing usage scenarios?
                  架構(gòu)有應(yīng)用示例嗎?    

                    o Has an appropriate mapping been used to translate the analysis model into the architectural model?
                  
                  分析和架構(gòu)之間的mapping?

                    o Can quality characteristics associated with the resultant architecture (e.g., a factored call-and-return architecture) be readily identified from information provided in the design model?
                  架構(gòu)的質(zhì)量特點(diǎn)?


                For user interface design:

                    o Have the results of task analysis been documented?
                    o Have goals for each user task been identified?
                    o Has an action sequence been defined for each user task?
                    o Have various states of the interface been documented?
                    o Have objects and actions that appear within the context of the interface been defined?
                    o Have the three "golden rules" (SEPA, 5/e, p. 402) been maintained throughout the GUI design?
                    o Has flexible interaction been defined as a design criterion throughout the interface?
                    o Have expert and novice modes of interaction been defined?
                    o Have technical internals been hidden from the causal user?
                    o Is the on-screen metaphor (if any) consistent with the overall applications?
                    o Are icons clear and understandable?
                    o Is interaction intuitive?
                    o Is system response time consistent across all tasks?
                    o Has an integrated help facility been implemented?
                    o Are all error message displayed by the interface easy to understand? Do they help the user resolve the problem quickly?
                    o Is color being used effectively?
                    o Has a prototype for the interface been developed?
                    o Have user's impressions of the prototype been collected in an organized manner?

                For component-level design:

              * Have proof of correctness techniques (SEPA, 5/e, Chapter 26) been applied to all algorithms?

              算法正確性?

              * Has each algorithm been "desk-tested" to uncover errors? Is each algorithm correct?

              算法?

              * Is the design of the algorithm consistent with the data structured that the component manipulates?

              算法?
              * Have algorithmic design alternatives been considered? If yes, why was this design chosen?

              替代算法考慮了嗎?

              * Has the complexity of each algorithm been computed?
              
              每個算法的復(fù)雜性考慮了嗎?

              * Have structured programming constructs been used throughout?
              
              結(jié)構(gòu)好嗎?

          posted @ 2008-07-06 16:44 西津渡 閱讀(346) | 評論 (1)編輯 收藏
           
               摘要:   閱讀全文
          posted @ 2008-04-09 12:14 西津渡 閱讀(966) | 評論 (0)編輯 收藏
           
          西津渡最近在修改 99街購物搜索引擎,www.99jie.com
          根據(jù)體會,修訂了圖解軟件項(xiàng)目管理一文。這是今年以來的第三次較大修訂。
          有需要者請下載。西津渡圖解軟件項(xiàng)目管理
          下邊是目錄。
          第一章 項(xiàng)目管理的目標(biāo)
          一、    產(chǎn)品,周期,成本的約束。
          二、    關(guān)鍵路徑管理
          三、    可行性分析很重要
          四、    人際技巧
          五、    談判技巧
          第二章 項(xiàng)目過程
          一、    計劃階段
          二、    架構(gòu)階段和技術(shù)攻關(guān)
          三、    迭代階段
          四、    結(jié)束階段
          第三章 分析,形成specification
          一、    最重要的是specification 發(fā)揮作用
          二、    重要的創(chuàng)造性工作
          三、    選擇適合的表達(dá)方式
          四、    數(shù)據(jù)以及數(shù)據(jù)的key 和約束
          五、    測試腳本
          六、    Review ,評審
          第四章 設(shè)計系統(tǒng)UI
          一、    一幅圖勝過千句話
          第五章 設(shè)計,code ,build ,test
          第六章 部署和重構(gòu)
          第七章 風(fēng)險
          一、    分析風(fēng)險
          二、    技術(shù)風(fēng)險
          三、    所有的風(fēng)險是人的風(fēng)險,trust and capable
          四、    記住50%以上的軟件項(xiàng)目以失敗告終
          五、    所有的風(fēng)險是管理的風(fēng)險,遵循一套項(xiàng)目管理哲學(xué)
          第八章 保持項(xiàng)目的進(jìn)展
          一、    對項(xiàng)目負(fù)責(zé),做出決定
          二、    讓進(jìn)展可見,持續(xù)集成
          三、執(zhí)行,并檢查
          四、    解決沖突,大家都是兄弟姐妹
          五、    能擔(dān)當(dāng)者是項(xiàng)目經(jīng)理
          六、    關(guān)鍵路徑的變更
          第九章 總結(jié)經(jīng)驗(yàn)
          第十章 一些效率關(guān)鍵指標(biāo)
          第十一章 項(xiàng)目管理工具
          第十二章 參考
          第十三章 口訣
          posted @ 2007-11-02 11:17 西津渡 閱讀(819) | 評論 (0)編輯 收藏
           

          http://www.xker.com/edu/dev/104/0652109570034579.html

          十二、不要在循環(huán)中調(diào)用synchronized(同步)方法


          方法的同步需要消耗相當(dāng)大的資料,在一個循環(huán)中調(diào)用它絕對不是一個好主意。

          例子:
          import java.util.Vector;
          public class SYN {
              public synchronized void method (Object o) {
              }
              private void test () {
                  for (int i = 0; i < vector.size(); i++) {
                      method (vector.elementAt(i));    // violation
                  }
              }
              private Vector vector = new Vector (5, 5);
          }

          更正:
          不要在循環(huán)體中調(diào)用同步方法,如果必須同步的話,推薦以下方式:
          import java.util.Vector;
          public class SYN {
              public void method (Object o) {
              }
          private void test () {
              synchronized{//在一個同步塊中執(zhí)行非同步方法
                      for (int i = 0; i < vector.size(); i++) {
                          method (vector.elementAt(i));   
                      }
                  }
              }
              private Vector vector = new Vector (5, 5);
          }


          十三、將try/catch塊移出循環(huán)


          把try/catch塊放入循環(huán)體內(nèi),會極大的影響性能,如果編譯JIT被關(guān)閉或者你所使用的是一個不帶JIT的JVM,性能會將下降21%之多!
                   
          例子:         
          import java.io.FileInputStream;
          public class TRY {
              void method (FileInputStream fis) {
                  for (int i = 0; i < size; i++) {
                      try {                                      // violation
                          _sum += fis.read();
                      } catch (Exception e) {}
                  }
              }
              private int _sum;
          }
                   
          更正:         
          將try/catch塊移出循環(huán)         
              void method (FileInputStream fis) {
                  try {
                      for (int i = 0; i < size; i++) {
                          _sum += fis.read();
                      }
                  } catch (Exception e) {}
              }
                   
          參考資料:
          Peter Haggar: "Practical Java - Programming Language Guide".
          Addison Wesley, 2000, pp.81 – 83


          十九、不要在循環(huán)體中實(shí)例化變量


          在循環(huán)體中實(shí)例化臨時變量將會增加內(nèi)存消耗

          例子:         
          import java.util.Vector;
          public class LOOP {
              void method (Vector v) {
                  for (int i=0;i < v.size();i++) {
                      Object o = new Object();
                      o = v.elementAt(i);
                  }
              }
          }
                   
          更正:         
          在循環(huán)體外定義變量,并反復(fù)使用         
          import java.util.Vector;
          public class LOOP {
              void method (Vector v) {
                  Object o;
                  for (int i=0;i<v.size();i++) {
                      o = v.elementAt(i);
                  }
              }
          }

          二十一、盡可能的使用棧變量


          如果一個變量需要經(jīng)常訪問,那么你就需要考慮這個變量的作用域了。static? local?還是實(shí)例變量?訪問靜態(tài)變量和實(shí)例變量將會比訪問局部變量多耗費(fèi)2-3個時鐘周期。
                   
          例子:
          public class USV {
              void getSum (int[] values) {
                  for (int i=0; i < value.length; i++) {
                      _sum += value[i];           // violation.
                  }
              }
              void getSum2 (int[] values) {
                  for (int i=0; i < value.length; i++) {
                      _staticSum += value[i];
                  }
              }
              private int _sum;
              private static int _staticSum;
          }     
                   
          更正:         
          如果可能,請使用局部變量作為你經(jīng)常訪問的變量。
          你可以按下面的方法來修改getSum()方法:         
          void getSum (int[] values) {
              int sum = _sum;  // temporary local variable.
              for (int i=0; i < value.length; i++) {
                  sum += value[i];
              }
              _sum = sum;
          }
                   
          參考資料:         
          Peter Haggar: "Practical Java - Programming Language Guide".
          Addison Wesley, 2000, pp.122 – 125



          posted @ 2007-09-26 10:59 西津渡 閱讀(268) | 評論 (0)編輯 收藏
           
          http://www.javafan.net/menu/jczs/200701/20070108185247.html

          1). 簡單的認(rèn)為 .append() 效率好于 "+" 是錯誤的!
              2). 不要使用 new 創(chuàng)建 String
              3). 注意 .intern() 的使用
              4). 在編譯期能夠確定字符串值的情況下,使用"+"效率最高
              5). 避免使用 "+=" 來構(gòu)造字符串
              6). 在聲明StringBuffer對象的時候,指定合適的capacity,不要使用默認(rèn)值(18)
              7). 注意以下二者的區(qū)別不一樣
                  - String s = "a" + "b";
                  - String s = "a";
                    s += "b";

          關(guān)鍵點(diǎn)
          1. 無論何時只要可能的話使用字符串字面量來常見字符串而不是使用new關(guān)鍵字來創(chuàng)建字符串。
          2. 無論何時當(dāng)你要使用new關(guān)鍵字來創(chuàng)建很多內(nèi)容重復(fù)的字符串的話,請使用String.intern()方法。
          3. +操作符會為字符串連接提供最佳的性能――當(dāng)字符串是在編譯期決定的時候。
          4. 如果字符串在運(yùn)行期決定,使用一個合適的初期容量值初始化的StringBuffer會為字符串連接提供最佳的性能。

          posted @ 2007-09-26 10:14 西津渡 閱讀(234) | 評論 (0)編輯 收藏
          僅列出標(biāo)題
          共11頁: 上一頁 1 2 3 4 5 6 7 8 9 下一頁 Last 
           
          主站蜘蛛池模板: 德令哈市| 新宾| 广灵县| 象州县| 邛崃市| 蛟河市| 海晏县| 凤台县| 文登市| 平原县| 辽阳县| 大新县| 莱芜市| 龙游县| 廊坊市| 宜兰市| 长汀县| 文水县| 吉木乃县| 天气| 和硕县| 海口市| 延寿县| 阜平县| 正宁县| 乐业县| 平湖市| 陵水| 鱼台县| 平乡县| 昭通市| 竹山县| 罗平县| 扎兰屯市| 遵义县| 玛多县| 鄯善县| 东丽区| 阜城县| 山西省| 天祝|