posts - 10,comments - 2,trackbacks - 0

          下面的類計算并緩存了一個總和,并且在另一個類中打印這個總和       

          class Cache{

                       static {

                             initializeIfNecessary();

                        }

                    private static int sum;

                    public static int getSum(){

                          initializeIfNecessary();

                          return sum;

                     }

                   private static boolean initialized = false;

                  private static synchronized void initializeIfNecessary(){

                        if(!initialized){

                               for(int i=0;  i <  100;  i++  )

                                   sum+=i;

                              initialized = true;

                            }

                    }

                  }

           

          pubic class Client  {

              pubilc static void main(String[] args){

                      System.out.println(Cache.getSum());

             }

           }

          程序是一個典型的半開循環(huán),應(yīng)該打印出1到99的整數(shù)總和,即4950,但程序運行打印的為9900,是預(yù)期值的兩倍。

          程序在確保sum在使用之前就已經(jīng)初始化這個問題上,遇到了麻煩。程序結(jié)合了惰性初始化和積極初始化,還使用上了同步,以確保緩存在多線程環(huán)境下也能工作,但程序無法完成預(yù)期的工作。

          程序輸出打印是控制標志initialized 的問題。qq上一個朋友問的一本書里的問題,我也找到那本書了,是惰性初始化(static初始化)的問題,控制標志在static完成初始化后又重新被構(gòu)造器賦值為false,初始化總和值的方法被執(zhí)行了兩次。

          posted @ 2007-09-06 09:58 皇馬嘯西風(fēng) 閱讀(218) | 評論 (1)編輯 收藏
          大概一年以前參與到一個大型信息管理軟件系統(tǒng)的維護工作中,這個系統(tǒng)是B/S結(jié)構(gòu),主要負責(zé)某省煤炭資源運銷管理,應(yīng)用在了鐵路這個渠道管理上,我們的主要的系統(tǒng)維護工作重心在鐵路管理維護上,另外還負責(zé)一些網(wǎng)站信息發(fā)布管理功能的維護。

                 這個管理系統(tǒng)有自己的一套網(wǎng)絡(luò)體系,因為我并沒有參與其中的網(wǎng)絡(luò)體系的搭建與后期的維護工作,只是大概的了解一些:

                1.網(wǎng)絡(luò)體系的結(jié)構(gòu)為樹狀拓撲結(jié)構(gòu),主要依據(jù)該公司的組織機構(gòu)建立,該公司組織機構(gòu)分為總公司一級,分公司一級,縣級公司一級以及直接負責(zé)煤炭運銷具體的工作的公司一級。網(wǎng)絡(luò)體系以此而建,也分為四級網(wǎng)絡(luò)。

               2.使用一套c/s體系的軟件,完成基礎(chǔ)數(shù)據(jù)的收集,并定時上報到縣級公司或者直屬的分公司,然后將數(shù)據(jù)匯總分析后通過這套軟件提交,統(tǒng)一儲存到總公司數(shù)據(jù)庫服務(wù)器。

              3.根據(jù)該行業(yè)的業(yè)務(wù),每年全省的煤炭運量,特別是通過鐵路渠道的運量,在年初通過簽訂的全年合同決定,該年的業(yè)務(wù)也以此運量為準。

               這套軟件成型與2002年,在當時的條件限制下這是一套最為有效的軟件工作體系了,但也有其缺陷:

                1. 盡管基礎(chǔ)數(shù)據(jù)收集大都已經(jīng)為通過電子稱量系統(tǒng)實現(xiàn)自動數(shù)據(jù)提取,但在上報過程中,仍有可能對數(shù)據(jù)進行篡改,軟件為此專門增設(shè)了一個子功能系統(tǒng),但使用情況不容樂觀,收效甚微。

                2. 數(shù)據(jù)統(tǒng)一存儲在總公司數(shù)據(jù)庫服務(wù)器中,方便管理,在最初的設(shè)計中,數(shù)據(jù)庫沒有設(shè)計負載分流以及鏡像備份的等處理,隨著系統(tǒng)的使用,數(shù)據(jù)量的增加,數(shù)據(jù)庫負載增大,軟件反應(yīng)速度越來越慢。

                這個缺陷在今年年初運量提報和每個月初的各個分公司的運量提報中尤為明顯,數(shù)據(jù)庫出現(xiàn)多次當機情況,處理過多次,但收效不明顯,在使用高峰期需要注意數(shù)據(jù)庫的使用情況。

               這個系統(tǒng)的網(wǎng)絡(luò)部分就寫這么多吧,畢竟不太熟悉,還是摻雜了軟件的非網(wǎng)絡(luò)部分,:-)。下一篇開始寫這個軟件的web架構(gòu)部分,主要是mvc框架和dao框架部分。

          posted @ 2007-09-06 09:57 皇馬嘯西風(fēng) 閱讀(242) | 評論 (0)編輯 收藏

          網(wǎng)站:JavaEye 作者:liuwei1981 發(fā)表時間: 2007-09-04 15:36 此文章來自于 http://www.JavaEye.com
          聲明:本文系JavaEye網(wǎng)站原創(chuàng)文章,未經(jīng)JavaEye網(wǎng)站或者作者本人書面許可,任何其他網(wǎng)站嚴禁擅自發(fā)表本文,否則必將追究法律責(zé)任!
          原文鏈接: http://liuwei1981.javaeye.com/blog/120263

           


          The Architect (dedicated non-programming technical decision maker and problem solver for business):


          架構(gòu)師(專用非編程技術(shù)決策者,業(yè)務(wù)問題解決者)



          1. Has outdated programming knowledge and experience, loss of touch with modern development approaches and practices.                                                                                                                                                                                             過時的編程知識和經(jīng)驗,對現(xiàn)代的軟件開發(fā)方式和實踐缺乏關(guān)注。   

          2. Don’t program and don’t know much about evolving system internals, but makes key technical decisions. Often has completely irrelevant and unreal picture what is happening with the system.                                                                       不進行軟件開發(fā),對系統(tǒng)內(nèi)部知之甚少,但卻要做出關(guān)鍵的技術(shù)決策。對系統(tǒng)經(jīng)常有完全無關(guān)和虛幻的映像(不太會翻譯這句)

          3. Tends to complex, premature and generic solutions when the system is still in infancy and nothing is clear. Applies latest modern buzzword technologies as SOA, MDA, SaaS, Software Factories, etc. which look so beautiful in technical magazines, conferences and CV, but cause unnecessary headache for developers.                                      當系統(tǒng)仍處于起始階段,都還不明晰的時候,常會做出復(fù)雜的,不成熟僅僅通用的決策。使用在技術(shù)雜志、技術(shù)大會和CV上看起來如此美妙的現(xiàn)代最新的口號,諸如SOA,MDA,SaaS,Software Factories等等,只是給開發(fā)人員帶來不必要的頭痛。

          4. Plays role of the middleman introducing complexity in coordination and project responsibilities. Represents software team in interactions with business customers reducing communication value for the rest of the team and impacting idea flow.                                                                                                                                                                          以中間人的角色,引入復(fù)雜的協(xié)調(diào)和項目的責(zé)任。代表開發(fā)組與客戶進行交流,屏蔽了其他成員的發(fā)言權(quán)和開發(fā)思想上的交流。(翻譯時候意思懂了,但就是表達不出來)

          5. Reduces quality of decisions, which become limited to one perspective; decision making starts lacking diversity, independence and decentralization, which are essential attributes of collective intelligence.                                          決定僅僅局限在某個角度 ,降低了決策的質(zhì)量;最初的決定缺乏多樣性,獨立性和向下兼容,這些都是集體決策的本質(zhì)。                      

          6. Creates tension with developers who experience mismatch between grand design and reality. Often continues pushing design decisions until the system becomes overly complex, difficult to change and becomes completely unusable.                                                                                                                                                                                             在缺乏大型設(shè)計和實現(xiàn)經(jīng)驗的開發(fā)者之間制造緊張氛圍。不斷的做出決定,系統(tǒng)變得過度復(fù)雜,難于改變,和應(yīng)用。

          7. Secures job and justifies high salary - becomes authoritative center for solving business problems without much input from the team.                                                                                                                                                                            有穩(wěn)定的工作和高薪,成為解決業(yè)務(wù)問題的權(quán)威,但卻從未融入到團隊當中。

          8. Causes loss of sense of ownership, motivation and accountability in developers by detaching them from the key architecture decisions.                                                                                                                                                                     把開發(fā)人員排除在關(guān)鍵架構(gòu)決策之外,讓他們?nèi)狈χ鲃有院拓?zé)任感。

          9. Concentrates project knowledge and the big picture in one head, limiting (and sometimes preventing) complete understanding for others.                                                                                                                                                                 只精通工程知識和大局一面,對其他方面幾乎一無所知。

          10. Contributes to creation of specialized IT verticals that hurt relations with the business.                                                     擅長在縱向?qū)iT的IT方面建立聯(lián)系,但同時卻切斷了業(yè)務(wù)上的關(guān)聯(lián)。




          《 10條你不需要軟件架構(gòu)師的理由(Top 10 reasons why you don’t need Softwa)(轉(zhuǎn)) 》 的評論也很精彩,歡迎您也添加評論。查看詳細 >>

          推薦相關(guān)文章:
            學(xué)習(xí)英語,可能每個人都有自己喜歡的方法!
            老爸的情書中英對照,爆笑




          JavaEye推薦
          上海樂福狗信息技術(shù)有限公司:誠聘技術(shù)經(jīng)理和開發(fā)工程師
          免費下載IBM社區(qū)版軟件--它基于開放的標準,支持廣泛的開發(fā)類型,讓您的開發(fā)高效自主!
          京滬穗蓉四地免費注冊,SOA技術(shù)高手匯聚交鋒.
          上海:優(yōu)秀公司德比:高薪誠聘 資深Java工程師
          廣州:優(yōu)易公司:誠聘Java工程師,開發(fā)經(jīng)理
          上海:尤恩斯國際集團:誠聘開發(fā)工程師
          北京:優(yōu)秀公司NHNChina招聘:WEB開發(fā),系統(tǒng)管理,JAVA開發(fā), DBA



          文章來源: http://liuwei1981.javaeye.com/blog/120263
          posted @ 2007-09-04 15:36 皇馬嘯西風(fēng) 閱讀(402) | 評論 (1)編輯 收藏

          網(wǎng)站:JavaEye 作者:liuwei1981 發(fā)表時間: 2007-09-03 18:30 此文章來自于 http://www.JavaEye.com
          聲明:本文系JavaEye網(wǎng)站原創(chuàng)文章,未經(jīng)JavaEye網(wǎng)站或者作者本人書面許可,任何其他網(wǎng)站嚴禁擅自發(fā)表本文,否則必將追究法律責(zé)任!
          原文鏈接: http://liuwei1981.javaeye.com/blog/119882

                      完成該系統(tǒng)后,所完成的后期維護工作中,最大的以部分就是數(shù)據(jù)統(tǒng)計查詢分析功能的完善了。


                 系統(tǒng)軟件框架提供了一套報表生成系統(tǒng)來完成數(shù)據(jù)統(tǒng)計查詢的功能。這條報表生成系統(tǒng)可以生成excel和pdf兩種格式的統(tǒng)計報表。


                 這個系統(tǒng)使用報表的流程大致為:


                 1.每個功能都提供一系列的報表,在軟件中這些報表以二維字符串數(shù)組的數(shù)據(jù)格式保存,每個字符串數(shù)組對象包括該報表的唯一鍵值,報表名稱,報表條件提供頁面以及生成該報表的具體的Java類。


                 2.選擇需要生成的報表,系統(tǒng)將該報表的唯一鍵值傳入統(tǒng)一的報表控制類,首先是跳轉(zhuǎn)到生成該報表的條件頁面,按照功能劃分報表的主要原因就是每個功能的報表條件一致,可以使用統(tǒng)一的控制類。


                 3.提交條件后,統(tǒng)一的報表控制類會調(diào)用該報表的生成類,這些類需要繼承統(tǒng)一的接口,提供了一個統(tǒng)一的方法,返回數(shù)據(jù)類型為Vector集合的對象,這個Vector對象容器數(shù)據(jù)對象要求為:


               兩個Vector對象,一個為表頭Vector,一個為表體Vector,這兩個Vector對象中存儲的數(shù)據(jù)為字符串數(shù)組對象。


             在具體應(yīng)用中,只要將數(shù)據(jù)填充到字符串數(shù)組中,再依次放入Vector中,報表框架會生成報表。


             這個框架的一個確定就是只能接受字符串數(shù)組對象,如果生成excel格式的報表,無法根據(jù)生成的報表進行計算,必須手動的將數(shù)據(jù)調(diào)整為數(shù)字型。


           




          《 總結(jié)一下維護了一年的一個軟件系統(tǒng)的軟件體系(六) 》 的評論也很精彩,歡迎您也添加評論。查看詳細 >>





          JavaEye推薦
          上海樂福狗信息技術(shù)有限公司:誠聘技術(shù)經(jīng)理和開發(fā)工程師
          免費下載IBM社區(qū)版軟件--它基于開放的標準,支持廣泛的開發(fā)類型,讓您的開發(fā)高效自主!
          京滬穗蓉四地免費注冊,SOA技術(shù)高手匯聚交鋒.
          上海:優(yōu)秀公司德比:高薪誠聘 資深Java工程師
          廣州:優(yōu)易公司:誠聘Java工程師,開發(fā)經(jīng)理
          上海:尤恩斯國際集團:誠聘開發(fā)工程師
          北京:優(yōu)秀公司NHNChina招聘:WEB開發(fā),系統(tǒng)管理,JAVA開發(fā), DBA



          文章來源: http://liuwei1981.javaeye.com/blog/119882
          posted @ 2007-09-03 18:30 皇馬嘯西風(fēng) 閱讀(175) | 評論 (0)編輯 收藏
          主站蜘蛛池模板: 北碚区| 新干县| 涿州市| 蓝山县| 武鸣县| 大庆市| 华池县| 如皋市| 沙湾县| 庄河市| 随州市| 庄浪县| 漳浦县| 章丘市| 偃师市| 浪卡子县| 虞城县| 北流市| 阳朔县| 新建县| 凉城县| 鄂尔多斯市| 万年县| 陈巴尔虎旗| 墨脱县| 西华县| 奉贤区| 乌鲁木齐县| SHOW| 灵川县| 房产| 吉首市| 敦化市| 金塔县| 乌拉特中旗| 宁化县| 仁布县| 淮北市| 潢川县| 微山县| 邵阳县|