星空の城

          一個程序員的記事本
          posts - 10, comments - 22, trackbacks - 0, articles - 0

          2006年2月10日

          快速開發模型 Struts?==> Spring?==> Hibernate?==> iBATIS ==> WebWork2

          posted @ 2006-07-05 15:07 7夜 閱讀(327) | 評論 (0)編輯 收藏

                   我是個C/C++、Java程式員,不喜歡程序員的稱號。在很多網上認識的人,也是剛剛接觸軟件開發,可能連語法都沒有搞清楚就說自己是什么“軟件工程師”。說自己是“程序員”我覺得還可以接受,要說“軟件工程師”,我想是不是差太遠了,此“工程師”非彼“工程師”。做技術的講究的是真才實學,而不是炫耀和吹噓。

                   程序員和軟件工程師的標準是什么,我想很多計算機系出來的學生應該很清楚,去考程序員和軟件工程師的資格證書,參考材料的前幾頁有。但具我所知,有這些證書的垃圾最多,基本的代碼規范和語言基礎都不知道/模糊。有能力的人大多不愿意去考,浪費時間在這上面可以多研究點技術問題了。去考證的也沒有錯,畢竟這是老板給你高工資、升職、加薪的理由。但一點技術也沒有就是拿它來混飯吃,也許你能永遠蒙住老板,但是和你一起共事的同事能有多少看得起你的,拿你當朋友的?

          posted @ 2006-02-19 23:45 7夜 閱讀(205) | 評論 (0)編輯 收藏

          『昴』は、歌詞の雄大なイメージと歌いやすいメロディのため、國內のみならず、東アジア各國の人びとにも愛唱されました。

          1 目を閉じて 何も見えず
            哀しくて 目を開ければ
            荒野(こうや)に 向かう道より
            ほかに 見えるものはなし
            嗚呼(ああ) 砕け散る 運命(さだめ)の星たちよ
            せめて密(ひそ)やかに この身を照らせよ
            我は行く 蒼白き頬のままで
            我は行く さらば昴よ
           
          2 呼吸(いき)をすれば 胸の中
            凩(こがらし)は吠(な)き続ける
            されど 我が胸は熱く
            夢を 追い続けるなり
            嗚呼 さんざめく 名も無き星たちよ
            せめて鮮やかに その身を終われよ
            我も行く 心の命ずるままに
            我も行く さらば昴よ
           
            Mmmm……(ハミング)
           
            嗚呼 いつの日か 誰かがこの道を
            嗚呼 いつの日か 誰かがこの道を
            我は行く 蒼白き頬のままで
            我は行く さらば昴よ
            我は行く さらば昴よ

          posted @ 2006-02-19 22:32 7夜 閱讀(416) | 評論 (0)編輯 收藏

          電影《致命戀人》中的歌曲《Unbreak My Heart》,由Dianne Warren 譜寫,美國著名靈魂音樂歌手Toni Braxton 用她低回磁性的嗓音,亦幽亦明地表現出歌曲強烈而深厚的意境,是97年Billboard排行榜冠軍,并穩坐14周冠軍寶座,Toni Braxton 因演唱此曲奪得了第二座格萊美獎


          Un-break my heart My heart -Toni Braxton

          Don't leave me in all this pain
          Don't leave me out in the rain
          Come back and bring back my smile
          Come and take these tears away
          I need your arms to hold me now
          The nights are so unkind

          Bring back those nights when I held you beside me
          Un-break my heart
          Say you'll love me again
          Undo this hurt you caused
          When you walked out the door
          And walked outta my life
          Un-cry these tears
          I cried so many nights
          Un-break my heart
          My heart

          Take back that sad word good-bye
          Bring back the joy to my life
          Don't leave me here with these tears
          Come and kiss this pain away
          I can't forget the day you left
          Time is so unkind

          And life is so cruel without you here beside me

          Don't leave me in all this pain
          Don't leave me out in the rain

          Bring back the nights when I held you beside me

          Un-break my heart
          Say you'll love me again
          Undo this hurt you caused
          When you walked out the door
          And walked outta my life
          Un-cry these tears
          I cried so many, many nights
          Un-break my

          Un-break my heart
          Oh baby
          Come back and say you love me
          Un-break my heart
          Sweet darlin'
          Without you I just can't go on
          Can't go on
          Can't go on  

          posted @ 2006-02-19 16:29 7夜 閱讀(231) | 評論 (0)編輯 收藏

          編程開發 

          整理的這篇文章大部分內容是我在Red Hat Linux 8.0和9.0上驗證過的,希望對你有幫助。 服務器的安裝略過不提,因為安裝了開發工具的話默認就已經有了CVS。就算沒有,更新軟件包就可以搞定,除非你一定要安裝最新版本。 1. 首先創建用于CVS的組和用戶:

                #groupadd 
                cvs
                #useradd 
                cvsroot -g cvs
                #passwd 
                cvsroot
          

          OK,用戶已經建立好了,cvsroot就是我們做CVS操作使用的。

          2. 修改配置文件:

                #more 
                /etc/services | grep cvspserver
          

          看看是否有:

                cvspserver 
                2401/tcp #CVS client/server operations
                cvspserver 
                2401/udp #CVS client/server operations
          

          這2行。系統自帶了CVS時,這2行也已經有了,只需要確認一下。如果沒有,請自己加上去。然后必須創建啟動腳本:

                #vi 
                /etc/xinet.d/cvspserver
          

          內容如下:

                service 
                cvspserver
                {
                disable 
                = no
                flags 
                = REUSE
                socket_type 
                = stream
                wait 
                = no
                user 
                = root
                server 
                = /usr/bin/cvs
                server_args 
                = -f --allow-root=/home/cvsroot pserver
                log_on_success 
                += USERID
                log_on_failure 
                += USERID
                }
          

          其中server指定CVS可執行文件路徑,默認安裝就是/usr/bin/cvs。server_args指定源代碼庫路徑及認證方式等,例子中把源代碼存放在cvsroot的主目錄中,也可以另外指定路徑,但必須注意權限設置,pserver是密碼認證方式,這種方式的安全性要差一些,但操作起來比較簡單。請注意每行等號左右都有一個空格,否則無法啟動服務。

          3. 初始化CVS

          切換到cvsroot用戶,然后進行初始化:

                #cvs 
                -d /home/cvsroot init
          

          這個路徑應該與cvspserver文件中指定的路徑相同,初始化后會在此路徑下面創建CVSROOT目錄,存放用于CVS管理的一些文件。此時重新啟動xinetd服務,CVS服務器應該能夠啟動了。:

                #service 
                xinetd restart
          

          當然,重新啟動計算機也可以。確認是否啟動:

                #netstat 
                -l | grep cvspserver
          

          如果能看到:

                tcp 
                0 0 *::cvspserver *::* LISTEN
          

          說明已經正常啟動,沒有的話請重新檢查配置過程是否有錯誤或者遺漏。最后還必須檢查防火墻的設置,把2401端口打開。

          4. 用戶管理

          CVS默認使用系統用戶登錄,為了系統安全性的考慮也可以使用獨立的用戶管理。CVS用戶名和密碼保存在CVSROOT目錄下的passwd文件中,格式為:

                用戶名::密碼::系統用戶
          

          也就是說,它把CVS用戶映射到系統用戶,這樣我們就可以通過系統用戶的權限設置來分配給用戶不同的權限,而不需要讓用戶知道系統用戶名和密碼。 passwd文件默認并不存在,我們必須自己創建。文件中的密碼字段使用MD5加密,不幸的是CVS沒有提供添加用戶名的命令,所以我們借用Apache的命令來完成這項工作:

                #htpasswd 
                passwd username
          
          

          這個命令為username指定密碼,并保存在passwd中,文件不存在時會自動創建。htpasswd命令不是為CVS而設,因此總有一些遺憾,它不能自動添加映射到的用戶名,不過沒關系,我們設置好密碼后,自己把這部分加上。我的做法是映射到cvsroot用戶,如果需要映射其他的用戶,請注意給相應的目錄設置好權限,否則CVS用戶可能無法訪問源代碼倉庫。要徹底防止使用系統帳號登陸,可以編輯CVSROOT目錄下的config文件,把:

                #SystemAuth=no
          

          這一行前面的#去掉,CVS就不會驗證系統用戶了,否則當用戶名不在passwd文件中時,CVS會進行系統用戶的驗證。此外還必須配置讀寫權限,使用CVSROOT目錄下的readers和writers文件進行這個工作。這2個文件默認也是沒有的,沒關系,自己創建就可以了。readers文件記錄擁有只讀權限的用戶名,每行一個用戶;writers文件記錄擁有讀寫權限的用戶名,也是每行一個用戶。注意, readers文件比writers優先,也就是說出現在readers中的用戶將會是只讀的,不管writers文件中是否存在該用戶。配置完畢,先測試一下:

                #cvs 
                -d “::pserver::username@127.0.0.1::/home/cvsroot” login
          

          這里假設用戶名是username,本機登陸。出現密碼提示,輸入正確的密碼后,登陸成功。如果提示訪問被拒絕,請檢查用戶權限、目錄權限以及防火墻設置。建議設置環境變量CVSROOT:

                #export 
                CVSROOT=::pserver::username@127.0.0.1::/home/cvsroot
          

          以后就不需要輸入-d參數了,但-d參數會覆蓋這個環境變量的設置。

          5. 源代碼倉庫的備份和移動

          基本上,CVS的源代碼倉庫沒有什么特別之處,完全可以用文件備份的方式進行備份。需要注意的只是,應該確認備份的過程中沒有用戶提交修改,具體的做法可以是停止CVS服務器或者使用鎖等等。恢復時只需要把這些文件按原來的目錄結構存放好,因為CVS的每一個模塊都是單獨的一個目錄,與其他模塊和目錄沒有任何瓜葛,相當方便。甚至只需要在倉庫中刪除一個目錄或者文件,便可以刪除該模塊的一些內容,不過并不建議這么做,使用CVS的刪除功能將會有一個歷史記錄,而對倉庫的直接刪除不留任何痕跡,這對項目管理是不利的。移動倉庫與備份相似,只需要把該模塊的目錄移動到新的路徑,便可以使用了。如果不幸在備份之后有過一些修改并且執行了提交,當服務器出現問題需要恢復源代碼倉庫時,開發者提交新的修改就會出現版本不一致的錯誤。此時只需要把 CVS相關的目錄和文件刪除,即可把新的修改提交。

          6. 更進一步的管理

          CVSROOT目錄下還有很多其他功能,其中最重要的就是modules文件。這個文件定義了源代碼庫的模塊,下面是一個例子:

                Linux    
                Linux
                Kernel   
                Linux/kernel
          

          這個文件的內容按行排列,每一行定義一個模塊,首先是模塊名,然后是模塊路徑,這是相對于CVS根目錄的路徑。它定義了兩個模塊,第一個是Linux模塊,它位于Linux目錄中,第二個是Kernel模塊,這是Linux模塊的子模塊。 modules文件并非必須的,它的作用相當于一個索引,部分CVS客戶端軟件通過它可以快速找到相應的模塊,比如WinCVS。

          7. 協同開發的問題

          默認方式下,CVS允許多個用戶編輯同一個文件,這對一個協作良好的團隊來說不會有什么問題,因為多個開發者同時修改同一個文件的同一部分是不正常的,這在項目管理中就應該避免,出現這種情況說明項目組內部沒有統一意見。而多個開發者修改文件的不同部分,CVS可以很好的管理。如果覺得這種方式難以控制,CVS也提供了解決辦法,可以使用cvs admin -l進行鎖定,這樣一個開發者正在做修改時CVS就不會允許其他用戶checkout。這里順便說明一下文件格式的問題,對于文本格式,CVS可以進行歷史記錄比較、版本合并等工作,而二進制文件不支持這個操作,比如word文檔、圖片等就應該以二進制方式提交。對于二進制方式,由于無法進行合并,在無法保證只有一個用戶修改文件的情況下,建議使用加鎖方式進行修改。必須注意的是,修改完畢記得解鎖。從1.6版本開始,CVS引入了監視的概念,這個功能可以讓用戶隨時了解當前誰在修改文件,并且CVS可以自動發送郵件給每一個監視的用戶告知最新的更新。

          8. 建立多個源代碼倉庫

          如果需要管理多個開發組,而這些開發組之間不能互相訪問,可以有2個辦法::

          a.共用一個端口,需要修改cvspserver文件,給server_args指定多個源代碼路徑,即多個—allow-root參數。由于xinetd的 server_args長度有限制,可以在cvspserver文件中把服務器的設置重定向到另外一個文件,如:

                server 
                = /home/cvsroot/cvs.run
          

          然后創建/home/cvsroot/cvs.run文件,該文件必須可執行,內容格式為:

                #!/bin/bash
                /usr/bin/cvs 
                -f 
                --allow-root=/home/cvsroot/src1 
                --allow-root=/home/cvsroot/src2 
                pserver
          

          注意此時源代碼倉庫不再是/home/cvsroot,進行初始化的時候要分別對這兩個倉庫路徑進行初始化,而不再對/home/cvsroot路徑進行初始化。

          b. 采用不同的端口提供服務

          重復第2步和第3步,為不同的源代碼倉庫創建不同服務名的啟動腳本,并為這些服務名指定不同的端口,初始化時也必須分別進行初始化。

          posted @ 2006-02-17 15:40 7夜 閱讀(280) | 評論 (0)編輯 收藏

          九七拳皇出招表
          草雉京 (實際上“雉”應為“薙”,讀“ti”,而不是“zhi”)

          外式·轟斧陽:→+B
          外式·奈落落:(跳躍中)↓+C
          八十八式:↘+D
          百式·鬼燃燒:→↓↘+A或C
          七百七式·獨樂屠:←↓↙+B或D
          二百十二式·琴月陽:→↘↓↙←+B或D
          七十五式改:↓↘→B+B或D+D
          百十四式·荒咬:↓↘→+A
          百二十八式·九傷:荒咬動作中↓↘→+A或C
          百二十七式·八錆:荒咬動作中→↘↓↙←+A或C荒咬→九傷動作中A或C
          百二十五式·七瀨:荒咬→九傷動作中B或D
          外式·砌穿:荒咬→八錆動作中A或C
          百十五式·毒咬:↓↘→+C
          四百一式·罪詠:毒咬動作中→↘↓↙←+A或C
          四百二式·罰詠:罪詠動作中→A或C
          九百十式·鶴摘(外式+虎伏/龍射):↓↙←+A或C
          *里百八式·大蛇雉:↓↙←↙↓↘→+A或C
          *最終決戰奧義·無式:↓↘→↓↘→+A或C

          二階堂紅丸

          旋轉膝落:(空投)↑以外+C或D
          杰克小刀踢:→+B
          飛之技巧:(跳躍中)↓+D
          雷韌拳:↓↘→+A或C
          空中雷韌拳:(跳躍中)↓↘→+A或C
          真空片手駒:↓↙←+A或C
          超級閃電踢:→↓↘+B或D
          居合蹴:↓↘→+B或D
          反動三段蹴:→↘↓↙←+B或D
          紅丸投:(近身)→↘↓↙←→+A或C
          *雷光拳:↓↘→↓↘→+A或C
          *大發電者:(近身)→↘↓↙←→↘↓↙←+A或C

          大門五郎

          玉潰:→+A
          頭上拂:↘+C
          地雷震:→↓↘+A或C
          超受身:↓↙←+B或D
          出云投:←↙↓↘→+A
          切株返:←↙↓↘→+C
          天地返:(近身)→↘↓↙←→+A或C
          超大外割:(近身)→↓↘+B或D
          根返:↓↘→+B或D
          里投:→↘↓↙←→+B或D
          *地獄極樂落:(近身)→↘↓↙←→↘↓↙←+A或C
          *嵐之山:(近身)←↙↓↘→←↙↓↘→+B或D
          》續·切株返:嵐之山中←↙↓↘→+B或D
          》根拔里投:續·切株返中→↓↘+B或D
          **》續·天地返:續·切株返中→↓↘+B或D
          -----------------
          特瑞

          后打:→+A
          步步高:↘+C
          火焰沖拳:↓↙←+A或C
          能量波:↓↘→+A或C
          碎石踢:↓↙←+B或D
          倒躍踢:→↓↘+A或C
          灌籃強擊:→↓↘+B或D
          能量補充:←↙↓↘→+B或D
          *能量噴泉:↓↙←↙↓↘→+A或C
          *高軌噴泉:↓↘→↓↘→+B或D

          安迪

          上鱷:→+B上面↘+A
          斬影拳:↙→+A或C
          我彈幸:斬影拳擊中后↓↘→+A或C
          飛翔拳:↓↙←+A或C
          升龍拳:→↓↘+A或C
          空破彈:←↙↓↘→+B或D
          擊臂背水掌:(近身)←↙↓↘→+A或C
          幻影不知火:(跳躍中)↓↘→+B或D
          幻影不知火(下顎):幻影不知火著地中→+A或C
          幻影不知火(上顎):幻影不知火著地中→+B或D
          *超裂破彈:↓↙←↙↓↘→+B或D
          *飛翔流星拳:↓↘→↓↘→+A或C

          東丈

          低踢:→+B
          滑步:↘+B
          旋風拳:←↙↓↘→+A或C
          爆烈拳:A或C連按
          爆烈拳終結:爆烈拳中↓↘→+A或C
          虎破腳:→↓↘+B或D
          電光踢:←↙↓↘→+B或D
          黃金之踵落:↓↙←+B或D
          *死亡龍卷風:↓↘→↓↘→+A或C
          *爆烈颶風猛虎踢:↓↘→↘↓↙←+A或C
          --------------
          坂崎良

          冰柱割:→+A
          虎煌拳:↓↘→+A或C
          虎炮:→↓↘+A或C
          猛虎雷神剛跳躍中:→↓↘+A或C
          飛燕疾風腳:→↘↓↙←+B或D
          極限流連舞拳:(近身)←↙↓↘→+A或C
          猛虎雷神剛:↓↙←+A或C(擊中后可接虎炮)
          猛虎雷神剎:↓↘→+B或D
          *龍虎亂舞:↓↘→↘↓↙←+A或C
          *霸王翔吼拳:→←↙↓↘→+A或C
          *天地霸王拳:↓↘→↓↘→+A或C

          羅伯特

          龍翻蹴:→+B
          龍擊拳:↓↘→+A或C
          龍牙:→↓↘+A或C
          飛燕旋風腳:→↘↓↙←+B或D
          極限流連舞腳:←↙↓↘→+B或D
          龍斬翔:→↓↘+B或D
          飛燕龍神腳:(跳躍中)↓↙←+B或D
          *龍虎亂舞:↓↘→↘↓↙←+A或C
          *霸王翔吼拳:→←↙↓↘→+A或C
          *無影疾風重段腳:↓↘→↓↘→+B或D

          坂崎由莉

          燕落:(空投)↑以外+C或D
          燕翼:→+B
          虎煌拳:↓↘→+A或C
          空牙:→↓↘+A或C
          里空牙:重空牙著地時→↓↘+C
          雷煌拳:↓↘→+B或D
          百烈掌擊:→↘↓↙←+A或C
          飛燕疾風拳:↓↙←+B或D
          飛燕旋風腳:↓↙←+A或C
          *霸王翔吼拳:→←↙↓↘→+A或C
          *飛燕鳳凰腳:↓↘→↘↓↙←+B或D
          *飛燕烈孔:↓↘→↓↘→+A或C
          --------------
          莉安娜 (暴走莉安娜按住開始鍵不放輸入↑↓↑↓↑↓+B+D)

          黑登摔:(空投)↑以外+C或D
          月光鋸:↓(蓄)↑+A或C
          威武軍刀:←(蓄)→+B或D
          粉碎者:重威武軍刀中→+D
          X口徑炮:↓(蓄)↑+B或D
          渦旋發射器:←(蓄)→+A或C
          眼之斬:↓↙←+A或C
          *V字金鋸:(跳躍中)↓↘→↘↓↙←+A或C
          *旋轉的火花:↓↙←↙↓↘→+B或D
          *重力風暴:↓↘→↓↘→+A或C

          拉爾夫

          機炮拳:A或C連打
          格林機關炮:←(蓄)→+A或C
          急降下爆彈:↓(蓄)↑+A或C
          急降下爆彈:(跳躍中)↓↘→+A或C
          超級阿根廷攻擊:(近身)←↙↓↘→+B或D
          拉爾夫踢:←(蓄)→+B或D
          *超級機炮拳:↓↘→↘↓↙←+A或C
          *乘馬機炮拳:↓↙←↙↓↘→+B或D
          *宇宙幻影:↓↘→↓↘→+A或C

          克拉克

          跳入死亡湖:(空投)↑以外+C或D
          斷踢:→+B
          機炮拳:A或C連打
          凝固汽油彈:→↓↘+A或C
          旋轉搖籃:←↙↓↘→+A或C
          弗蘭肯必殺投:→↓↘+B或D
          超級阿根廷阻撓者:(近身)←↙↓↘→+B或D
          烈火閃光肘:(指令投中)↓↘→+A或C
          *終結阿根廷攻擊:(近身)→↘↓↙←→↘↓↙←+A或C
          *奔襲投擲:←↙↓↘→←↙↓↘→+B或D
          -----------------
          麻宮雅典娜 精神射擊:(空投)↑以外+C或D
          連環腿:→+B
          鳳凰彈:(跳躍中)↓+B
          精神力球:↓↙←+A或C
          鳳凰箭:(跳躍中)↓↙←+A或C
          精神力反射波:→↘↓↙←+B或D
          劃空光劍:→↓↘+A或C
          空中光劍:(跳躍中)→↓↘+A或C
          心靈傳送術:↓↘→+B或D
          超級精神穿透:(近身)←↙↓↘→+C
          *閃光水晶波:(跳躍可)←→↘↓↙←+A或C
          》水晶超射:閃光水晶波中↓↙←+A或C
          *鳳凰FANG箭:(跳躍中)↓↘→↓↘→+B或D

          椎拳崇

          虎撲手:→+A
          后旋腿:→+B
          超球彈:↓↙←+A或C
          龍顎碎:←↓↙+B或D
          龍連牙·地龍:←↙↓↘→+A
          龍連牙·天龍:←↙↓↘→+C
          龍爪襲:(跳躍中)↓↙←+A或C
          龍連打:(近身)→↓↘+A或C連按
          *神龍凄煌裂腳:↓↘→↘↓↙←+B
          *神龍天舞腳:↓↘→↘↓↙←+D
          *仙氣發動:(近身)↓↘→↓↘→+A或C
          *食肉饅:↓↙←↓↙←+A或C

          鎮元齋

          醉步飄簞襲:→+A
          瓢簞襲:↓↙←+A或C
          柳磷蓬萊:→↓↘+A或C
          回轉的空突拳:←↙↓↘→+B或D(醉管卷翁中→+B或D) 或 望月醉中→+B或D
          醉管卷翁:↓↘→+A或C
          蝶襲鮭魚:醉管卷翁中→+A或C
          望月醉:↓↙←+B或D
          龍蛇反蹦:望月醉中↑B
          鯉魚反蹦:望月醉中↑D
          鬼醉酒:↓↘→+A或C
          *轟欄炎炮:↓↘→↓↘→+A或C
          *轟欄招來:↓↘→↘↓↙←+A或C
          ----------------
          神樂千鶴

          百活·天神之理:→↓↘+A或C
          二百式二活·神速之祝詞:→↘↓↙←+任一鍵
          二百式二活·神速之祝詞+天瑞:神速之祝詞動作中↓↙←+任一鍵
          百八活·玉響之瑟音:←↙↓↘→+A或C
          二百十二活·乙式頂門之一針:↓↘→+任一鍵
          *里面八十伍活·零技之礎:↓↙←↙↓↘→+A或C
          *里而一活·三籟之布陣:↓↘→↓↘→+B或D

          不知火舞

          夢櫻:(空投)↑以外+C或D
          紅鶴之舞:↘+B
          花蝶扇:↓↘→+A或C
          龍炎舞:↓↙←+A或C
          飛翔龍炎舞:→↓↘+B或D
          必殺忍蜂:←↙↓↘→+B或D
          飛鼠之舞:↓(蓄)↑+A或C(按住不放)
          飛鼠之舞:(跳躍中)↓↙←+A或C
          白鷺之舞:→↓↘+A或C
          *超必殺忍蜂:↓↙←↙↓↘→+B或D
          *鳳凰之舞:↓↙←↓↙←+A或C
          *水鳥之舞:↓↘→↓↘→+A或C



          滑步踢:↘+D
          毒蛇擊:↓↘→+B或D
          雙毒蛇擊:↓↘→↓↘→+B或D
          落地擊:→↓↘+B或D
          龍卷踢:→↘↓↙←+B或D
          驚異玫瑰:→↓↘+A或C
          妄想踢:→↘↓↙←+A或C
          *幻想之舞:↓↘→↘↓↙←+B或D
          *沉默閃光:↓↙←↓↙←+B或D
          ---------------
          金家藩

          多拉打擊:→+A
          定位打擊:→+B
          飛燕斬:↓(蓄)↑+B或D(接↓B或D)
          半月斬:↓↙←+B或D
          飛翔腳:(跳躍中)↓↘→+B或D
          流星落:←(蓄)→+B或D
          空砂塵:↓(蓄)↑+A或C
          *鳳凰腳:↓↙←↙→+B或D(跳躍中可)
          *鳳凰天舞腳:(跳躍中)↓↘→↘↓↙←+B或D

          陳可漢
          輪逃:↘+A
          鐵球粉碎擊:←(蓄)→+A或C
          鐵球大回轉:A或C連打
          鐵球飛燕斬:↓(蓄)↑+B或D
          大破壞投擲:(近身)→↘↓↙←→+A或C
          *鐵球大暴走:↓↘→↘↓↙←+A或C
          *鐵球大壓殺:↓↘→↓↘→+A或C

          蔡寶健

          二段斬→+A
          通魔蹴:→+B
          龍卷疾風斬:↓(蓄)↑+A或C
          飛翔空裂斬:↓(蓄)↑+B或D(按住不放)
          旋風飛燕刺突:←(蓄)→+B或D
          方向轉換:飛翔空裂斬、旋風飛燕刺突中方向鍵加攻擊鍵
          飛翔腳:(跳躍中)↓↘→+B或D
          疾走飛翔斬:←(蓄)→+A或C
          *真!超絕龍卷疾風斬:→↘↓↙←→↘↓↙←+A或C
          *鳳凰斬:↓↘→↘↓↙←+B或D
          --------------
          七枷社

          滑步踢:→+B
          飛彈強力錘:→↘↓↙←+A或C
          升龍決斗:→↓↘+A或C
          敲大錘:↓↙←+B或D
          噴氣反擊:←↙↓↘→+A或C
          *百萬大錘蒸汽:↓↙←↙↓↘→+A或C
          *最終沖擊:↓↘→↓↘→+A或C ……乖乖地安睡吧!

          夏爾米

          夏爾米站立:→+B
          夏爾米螺旋打:(近身)←↙↓↘→+A或C
          夏爾米重炮:←↙↓↘→+B或D
          夏爾米旋轉踢:↓↙←+B或D
          夏爾米疊加:→↓↘+B或D
          *夏爾米大閃耀:(近身)→↘↓↙←→↘↓↙←+A或C
          *夏爾米狂歡:(近身)←↙↓↘→←↙↓↘→+A或C

          克里絲

          針刺:→+A
          滑觸:↓↘→+A或C
          獵殺的空氣:→↓↘+B或D
          射殺舞者之突刺:→↘↓↙←+A或C
          射殺舞者之舞步:→↘↓↙←+B或D
          舞者之章:(跳躍中)↓↘→+B或D
          *滑行者的踩踏:↓↙←↓↙←+B或D
          *連續滑觸:↓↘→↓↘→+A或C
          -----------------
          瑪麗

          大錘擊:→+A
          上升之箭:↘+B
          旋轉下落:↓↘→+B或D
          瑪麗蜘蛛固:↓↘→+A或C
          指天回旋腳:←(蓄)→+B或D
          俱樂部飛標:指天回旋腳擊中后↓↘→+B或D
          垂直之箭:→↓↘+B或D
          瑪麗攫奪:垂直之箭擊中后→↓↘+B或D
          瑪麗翻臉:↓↙←+B
          頭部飛彈:↓↙←+D
          回身真落:(近身)←↙↓↘→+A或C
          *瑪麗臺風:(近身)→↘↓↙←→↘↓↙←+B或D
          *瑪麗野玫瑰:↓↘→↘↓↙←+A或C
          *動感閃光:↓↘→↓↘→+B或D

          山崎龍二

          打刺:→+A
          蛇使·上段:↓↙←+A(可蓄)
          蛇使·中段:↓↙←+B(可蓄)
          蛇使·下段:↓↙←+C(可蓄)
          蛇使取消:蛇拳蓄勁中D
          施虐:←↙↓↘→+B或D
          倍返:↓↘→+A或C
          制裁之首:→↓↘+A或C
          爆彈:(近身)←↙↓↘→+A或C
          踢砂:→↓↘+B或D
          *斷頭臺:↓↘→↓↘→+A或C
          *射殺:(近身)→↘↓↙←→↘↓↙←+A或C(A+C連打蓄力) ……(完結時)你死定了!

          比利

          大回轉蹴:→+A
          棒高跳蹴:→+B
          三節棍中段打:←↙↓↘→+A或C
          火炎三節棍中段打:三節棍中段打中↓↘→+A或C
          旋風棍:A鍵連打
          集點連破棍:C鍵連打
          強襲飛翔棍:→↓↘+B或D
          火龍追擊棍:↓↙←+B
          水龍追擊棍:↓↙←+D
          旋元殺棍:→↓↘+A或C
          *超火炎旋風棍:↓↘→↘↓↙←+A或C
          *大旋風:↓↘→↓↘→+A或C
          ---------------
          八神庵 {暴走八神(按住開始鍵不放輸入←→←→←→+A+C}
          ……馬上就把你解決!
          外式·影舞·夢彈:→+A+A
          外式·轟斧陰·死神:→+B
          外式·百合折:(跳躍中)←+B
          百式·鬼燃燒:→↓↘+A或C
          二百十二式·琴月陰:→↘↓↙←+B或D
          百二十七式·葵花:↓↙←+A或C(可三回連續輸入)
          屑風:(近身)←↙↓↘→+A或C
          百八式·暗勾手:↓↘→+A或C
          *禁千二百十一式·八稚女:↓↘→↘↓↙←+A或C ……哭吧,叫吧,然后就死吧!
          *里百八式·八酒杯:↓↙←↙↓↘→+A或C
          ……每逢看到月亮就會想起我!

          矢吹真吾 外式·轟斧造型:→+B
          百式·鬼燃燒未完成:→↓↘+A或C
          百十四式·荒咬未完成:↓↘→A
          百十五式·毒咬未完成:↓↘→C
          百一式·朧車未完成:↓↙←+B或D
          真吾踢:←↙↓↘→+B或D
          *外式·鳳鱗:↓↘→↓↘→+A或C
          *燃燒真吾:↓↙←↙↓↘→+A或C

          草雉京KOF94版(按住“開始鍵”不放選草雉京)

          外式·轟斧陽:→+B
          外式·奈落落:(跳躍中)↓+C
          八十八式:↘+D
          百八式·暗勾手:↓↘→+A或C
          外式·朧車:←↓↙+B或D
          百式·鬼燃燒:→↓↘+A或C
          秘奧義里百八式·大蛇雉:↓↙←↙↓↘→+A或C
          -------------------
          在選出暴走莉安娜后,按住開始鍵不放輸入:↑←↓→↑↓+B+C就可以選出大蛇七枷社、大蛇夏爾米、大蛇克里絲

          大蛇克里絲

          針刺:→+A
          射太陽之炎:↓↘→+A或C
          摘月之炎:→↓↘+A或C
          屠鏡之炎:↓↙←+A或C
          咬四肢之炎:(近身)←↙↓↘→+A或C
          *暗黑大蛇雉:↓↙←↙↓↘→+A或C
          *拂大地之禁果:↓↘→↓↘→+A或C

          大蛇夏爾米

          夏爾米站立:→+B
          無云之雷電←↙↓↘→+A或C或B或D
          雷神之鞭↓↙←+A或C
          雷神之杖(跳躍中)↓↘→+B或D
          (不明)↓↙←+B或D
          *暗黑雷光拳↓↘→↓↘→+A或C
          *(不明)↓↙←↙↓↘→+B或D
          ……這就是你的命運…請安息吧…… 大蛇七枷社

          滑步踢:→+B
          (不明):←↙↓↘→+B或D
          (不明):(近身)→↘↓↙←→+A或C
          (不明):(近身)←↙↓↘→+A或C
          挫大地:↓↙←+A或C
          吼大地:↓↘→↓↘→+A或C(可蓄力)
          *荒大地:(近身)←↙↓↘→←↙↓↘→+A或C ……乖乖地安睡吧!因為你馬上就要完結了!
          *暗黑地獄極樂落:(近身)→↘↓↙←→↘↓↙←+A或C ……(MAX完結時)你認命吧!
          ------------------
          大蛇 (KOF中的強者。SS版的大蛇選法:在練習模式中先選出上述5名隱藏角色,把光標移到普通克里斯處同時按下L、R、Y、Z、B五鍵一秒即可……有些街機經過修改也能直接選“大蛇”等人!)
          注:PS版的有大改動
          “黑粒子”:↓↘→A
          “神指”:↓↘→B或C
          “反彈盾”:↓↘→D{吸收(飛行道具)并反擊,也可用于狂加能量、硬直取消}
          “靈氣柱”:→↘↓↙←任一鍵
          *“掏魂”:→↓↘A或C
          *“陽光普照”:↓↙←A或C ……一切都歸于『無』吧!
          (一擊必殺:遠距↓↘→A》沖跳B》(↓)B》↓↙←A簡單的一招)

          posted @ 2006-02-15 12:32 7夜 閱讀(8507) | 評論 (22)編輯 收藏

          每次看到“四書五經”這個詞,我的腦子里總是很煞風景地冒出寶二爺那句名言:“除《四書》外,杜撰的太多,偏只我是杜撰不成?”這“杜撰”二字,當指后世理學家們闡釋孔孟之道的所謂“偽經”。在這樣一個標題之下,今天我要推薦的書卻多是旁人對J2EE的闡釋。一個道貌岸然的標題,倒讓我寫成一個矛盾修辭法了。不過,對于一種已經有七年歷史,并且即將改朝換代(下一版本的企業Java將改名為JavaEE)的技術而言,相信讀者們需要的已經不是入門教材,而是關于“如何用它來開發真實應用”的經驗之談。本文將為讀者推薦數本不同角度的J2EE最佳實踐集錦,希望它們能夠幫助熟悉Java編程、但對J2EE缺乏了解的讀者描繪一幅這個龐大世界的導游圖。

          J2EE核心模式》(第二版)
          Core J2EE Patterns (2nd Edition)Deepak Alur等著,劉天北等譯,機械工業出版社,20055

          譯者為這本書所做的序言已足夠直白:“如果說此前的各種教程都是在介紹J2EE開發中的‘內容’要素———也就是,教給我們‘做什么’———的話,本書關注的則是這里的‘形式’要素,是‘怎樣做’才能開發出高效的、優雅的J2EE系統。讀者從中學到的,將不僅僅是‘J2EE技術’,而是‘如何使用J2EE技術進行設計’。”不過,值得留意的是,這里所說的“J2EE技術”,應該更準確地描述為“Sun公司的J2EE技術”或者“正統J2EE技術”,即“基于EJBJ2EE技術”。由于某些原因(請容許我稍微賣個關子),這一類型的J2EE技術呈現出極大的復雜度,因此書中的解決方案(即“模式”)也往往呈現出令人敬畏的技巧。對于這本書,我的推薦意見是:讀者應該牢記其中的每個解決方案以及對于這些解決方案的敬畏感——這種敬畏感將有助于你充分理解下一本書的價值所在。

          Expert One-on-One J2EE Development without EJB
          Rod Johnson等著,JavaEye譯,電子工業出版社,2005年8月

          揭開前面埋下的伏筆:“正統的”J2EE之所以那么復雜,很大程度上正是因為EJB的存在。而作為一個擁有十年Java經驗和更長企業應用開發經驗的開發者,Rod Johnson堅信這個世界上確實有很多不那么復雜的問題,而為這些問題找到同樣不那么復雜的解決方案就是他(以及他的Spring框架)希望達到的目標。這本《J2EE Development without EJB》的妙處在于,它不僅指出了EJB的問題所在,更加闡述了一套完整自洽的、“Without EJB”的Java企業應用架構——全球第一大連鎖超市沃爾瑪的信息系統正是采用此架構搭建而成,這一事實足以證明該架構的合法性。之所以要將這本書放在《J2EE核心模式》之后推薦,是因為我擔心讀者在閱讀《J2EE Development without EJB》之后再也沒有興趣去閱讀前一本書,從而錯失了充分了解EJB技術的一個機會。

          更值得稱道的是,Rod Johnson并不試圖宣稱自己的解決方案是Java企業應用的不二法門。貫穿全書,讀者可以感覺到Johnson最希望傳達給讀者的是一種基于實踐的“循證架構”方法。如果說這本書有其獨到的功德,我想那不是因為它宣傳了IoC或者AOP,而是因為它幫助一些讀者破除了技術的門戶之見,學會根據自己的需求和實踐檢驗來選擇架構。

          《企業應用架構模式》

          Patterns of Enterprise Application Architecture》,Martin Fowler著,王懷民等譯,機械工業出版社,20047

          讀過前兩本書之后,讀者大概能夠對J2EE的常見技術、問題和解決方案有所了解,隨后粉墨登場的就該是Martin Fowler了。Fowler是一位善于總結他人經驗的技術傳教士,這本PoEAA便是他的典型作品之一:沒有任何原創材料,卻把很多“古而有之”的技術分析得絲絲入扣、闡述得鞭辟入里。其價值究竟有多大,只需看看諸如《J2EE核心模式》、《J2EE Development without EJB》、《.NET企業解決方案模式》一類好書有多么頻繁地引用其中的內容,便可以知道大概。

          這本PoEAA的缺點——和其他很多模式類書籍一樣——是過于“形式化”:欠缺更具實際意義的范例,47個模式的列舉與闡述多少顯得有點干巴,而且對于“何時使用/不使用某個模式”這一問題的解答很難令人滿意。不過,在本文涉及的幾本書中,可能只有這一本是不需要額外推薦的,因為當你一次又一次地遇到別人在文章或交談中不加解釋地引用“Unit of Work”或者“Transaction Script”之類詞匯之后,你很難不去讀這本PoEAA

          Enterprise Integration Patterns

          Gregor Hohpe等著,Addison-Wesley 200310月(暫無中譯本)

          這本書中有一句話深得我心:“如果有人跟你說企業應用集成是件很輕松的事,這人要么是聰明得出奇,要么是傻得出奇,要么就是出于商業原因希望讓你相信他即將兜售的某種東西。”對于習慣了面向對象的大多數Java程序員而言,充斥異步/跨進程調用的企業應用集成(EAI)不啻是一場噩夢;而在銀行/保險等信息化較早的機構中,EAI的需求又偏偏如同家常便飯。兩者之間的張力,使得這本書——在某些特定的時候,對于某些特定的人——有如天籟一般。在某種意義上,這本書對于破除大詞迷信也有一定的幫助:它將“面向服務架構”(SOA)作為企業應用集成的六種應用類型之一加以闡述,并總結了各種類型的適用場景和優缺點。Martin Fowler為它做的序中稱其為“PoEAA的姊妹書”——從填補了PoEAA所沒有覆蓋的一大類企業應用場景這一角度來說,這一稱號是名副其實的,而作者的技術與文筆也對得起這一贊譽。

          Java Modeling in Color with UML

          Peter Coad著,Prentice Hall 19996月(暫無中譯本)

          推薦最后這本書的目的是明確的:一位稱職的J2EE開發者應該具備一定的領域建模能力。但從知名度上來說,被推薦的對象似乎應該是《分析模式》或者《Domain Driven Design》,而不是這本幾乎從來沒在國內引起過關注的“小書”。遺憾的是,Martin Fowler那本書缺乏對實踐經驗的歸納總結,而Eric Evans那本對于“怎么把業務概念變成領域模型”這件最后的、卻絕非最不重要的事情語焉不詳。不過好在Peter Coad是出了名的鬼才,惟其如此才能保證區區221頁內容確實言之有物。

          從計算機科學的角度來分析,越是形式化、可遞歸應用的方法就越具有可***作性。Eric EvansDDD在“理解需求”方面的闡述很具可***作性,而Peter Coad提出的幾類基本元模型對于實際進行建模工作有著非比尋常的指導價值——當大多數人在分析業務領域模型時,Peter Coad在分析業務領域的元模型,其“鬼才”由此可見一斑。至于“帶顏色的UML”,無非是對元模型的一種直觀描述而已。對于面向對象(而非面向用例)的企業應用業務建模,這本“小書”便是首屈一指的最佳實踐指南。

           

          讀者可以看到,在我推薦的五本書中,既沒有介紹時下流行的HibernateSpring等框架的專著,也沒有講述AOPAJAX之類新興技術的著作。J2EE是一個實用至上的領域,尤其是在它已經完全成熟的今天,或許更有價值的是“如何使用”的指導。在我的推薦之中不乏已問世三、五年的“舊書”,由此或許可以證明:越陳越香的大概不只是美酒,還包括技術的積淀。

          posted @ 2006-02-13 09:50 7夜 閱讀(319) | 評論 (0)編輯 收藏

          日本 NHK 發起的全民投票活動,選出20世紀日文百佳歌曲,供大家參考。


          排名 歌曲 演唱 年代 備注

          001 川の流れのように 美空ひばり 1988
          本文轉自滬江日語jp.hjenglish.com
          002 いい日旅立ち 山口百恵 1978
          本文轉自滬江日語jp.hjenglish.com
          003 神田川 かぐや姫 1973
          本文轉自滬江日語jp.hjenglish.com
          004 高校三年生 舟木一夫 1963
          本文轉自滬江日語jp.hjenglish.com
          005 アジアの純真 Puffy 1996
          006 いとしのエリー サザンオールスターズ 1979
          007 荒城の月 / 1901 明治民謠
          008 秋桜 山口百恵 1977
          009 赤とんぼ / 1921 大正民謠
          010 LOVE LOVE LOVE Dreams Come True 1995
          011 上を向いて歩こう 坂本九 1961
          012 昂 谷村新司 1980
          013 赤いスイートピー 松田聖子 1982
          014 人生いろいろ 島倉千代子 1987
          015 名もなき詩 Mr.Children 1996
          016 時の流れに身をまかせ 鄧麗君 1986
          017 浪漫飛行 米米 Club 1987
          018 碧いうさぎ 酒井法子 1995
          019 TOMORROW 岡本真夜 1995
          020 おふくろさん 森進一 1971
          021 SAY YES Chage & Aska 1991
          022 およげ!たいやきくん 子門真人 1975
          023 愛の言霊 サザンオールスターズ 1996
          024 LA·LA·LA LOVESONG 久保田利伸 1996
          025 少年時代 井上陽水 1990
          026 戀人よ 五輪真弓 1980
          027 北國の春 千昌夫 1977
          028 田園 玉置浩二 1996
          029 花 喜納昌吉 1982
          030 赤いハンカチ 石原裕次郎 1962
          031 悲しい酒 美空ひばり 1966
          032 贈る言葉 海援隊 1979
          033 夜霧よ今夜も有難う 石原裕次郎 1967
          034 ロード THE 虎舞竜 1993
          035 あなたに逢いたくて松田聖子 1996
          036 愛は勝つ KAN 1990
          037 いちご白書をもう一度 バンバン 1975
          038 I Love You 尾崎豊 1983
          039 襟裳岬 森進一1973
          040 青い山脈 藤山一郎 1949
          041 四季の歌 芹洋子 1971
          042 よこはまたそがれ 五木ひろし 1984
          043 島唄 THE BOOM 1992
          044 星影のワルツ 千昌夫1966
          045 千曲川 五木ひろし 1975
          046 シクラメンのかほり 布施明 1975
          047 長良川艶歌 五木ひろし 1984
          048 YAH YAH YAH Chage & Aska 1993
          049 TRUE LOVE 藤井フミヤ 1993
          050 どんなときも 槙原敬之 1991
          051 Don't wanna cry 安室奈美恵 1996
          052 天城越え 石川さゆり 1986
          053 UFO ピンク·レディー1977
          054 娘よ 蘆屋雁之助 1984
          055 とんぼ 長渕剛 1988
          056 故郷 / 1914 大正民謠
          057 仰げば尊し / 1884 明治民謠
          058 リンゴ追分 美空ひばり 1952
          059 DEPARTURES globe 1995
          060 なごり雪 イルカ 1973
          061 時代 中島みゆき 1975
          062 知床旅情 加藤登紀子 1971
          063 ふたり酒 川中美幸 1980
          064 夫婦坂 都はるみ 1984
          065 いつでも夢を 橋幸夫 & 吉永小百合 1962
          066 リンゴの歌 並木路子 1945
          067 異邦人 久保田早紀 1979
          068 長崎の鐘 藤山一郎 1949
          069 津輕海峽·冬景色 石川さゆり 1976
          070 ルビーの指環 寺尾聰 1981
          071 ブルーライト·ヨコハマ いしだあゆみ 1968
          072 innocent world Mr.Children 1994
          073 ここに幸あり 大津美子1956
          074 人生の並木路 ディック·ミネ 1938
          075 かえり船 田端義夫 1946
          076 待つわ あみん 1972
          077 早春賦 / 1913 大正民謠
          078 アカシアの雨がやむとき 西田佐知子 1960
          079 影を慕いて 藤山一郎 1931
          080 瀬戸の花嫁 小柳ルミ子 1972
          081 兄弟船 鳥羽一郞 1983
          082 別れの一本杉 春日八郞 1955
          083 雪國 吉幾三 1986
          084 月の砂漠 / 1923 大正民謠
          085 さざんかの宿 大川榮策 1982
          086 チャンピオン アリス 1978
          087 青春時代 森田公一 & トップギャラン 1976
          088 世界中の誰よりきっと中山美穂 & WANDS 1992
          089 精霊流し さだまさし 1974
          090 酒と淚と男と女 河島英五 1975
          091 岸壁の母 菊池章子 1953
          092 學生時代 ペギー葉山 1964
          093 ワインレッドの心 安全地帯 1973
          094 ロマンスの神様 広瀬香美 1993
          095 岬めぐり ウィークエンド 1974
          096 君といつまでも 加山雄三 1965
          097 七つの子 / 1921 大正民謠
          098 宇宙戦艦ヤマト 巖崎宏美 1974
          099 心もよう 井上陽水 1973
          100 氷雨 佳山明夫/日野美歌 1981

          posted @ 2006-02-10 16:25 7夜 閱讀(1014) | 評論 (0)編輯 收藏

          Microsoft? .NET 是 Microsoft XML Web services 平臺。XML Web services 允許應用程序通過 Internet 進行通訊和共享數據,而不管所采用的是哪種操作系統、設備或編程語言。Microsoft .NET 平臺提供創建 XML Web services 并將這些服務集成在一起之所需。對個人用戶的好處是無縫的、吸引人的體驗。 — 微軟公司 

          可見,.NET之中最重要的技術首推 Web Services。大多數貼著.NET標簽的技術都在某種程度上支持 Web Services。然而.NET絕非僅僅是 Web Services而已,在.NET技術發布之初,微軟貼上.NET標簽的還包括.NET框架(包括通用語言運行時CLR和.NET框架類庫兩大部份)、Visual Studio.NET、.NET My Services、.NET企業服務器等。 

          要想透徹理解.NET,就必需透徹理解Web services,同時還必須領會以上列舉的每一種.NET技術的基本要素。很可惜,我個人期待的Eric Newcomer的著作《Understanding Web Services: XML, WSDL, SOAP, and UDDI》目前在國內還不得見。不過,無論你打算學習Windows Forms,還是ASP.NET(含Web Services),抑或其他.NET技術,我認為首先應該建立對.NET平臺的通盤認識,然后從CLR開始,自底向上,深入學習.NET各專項知識。

          直到今天,David Chappell的《Understanding .NET: A Tutorial and Analysis》(《.NET大局觀》,華中科技大學出版社)仍然是一本不錯的.NET大局觀讀物。David善于將復雜的技術用簡單而清晰的方式表達出來。尤其值得一提的是,這本書對于Web Services的清晰介紹,在別的書里很難看到。然而,有感于一些讀者的誤解,作為譯者之一,在此我想重提侯捷先生的一句話:“讀者基礎”從來都是一個說不清楚、難以量化的東西。不妨試讀一二,如果滿意,它就適合你。

          我時常光顧的一家書店的.NET圖書總量,在很短的時間內就趕上了Java圖書總量。林林總總,內容遍及各個領域,包括微軟中間語言(Intermediate LanguageIL)、CLR.NET框架類庫、.NET語言、Visual Studio .NET,以及像COM互操作、多線程這樣的高級主題。限于篇幅,本文重點推介三本好書,不過,僅此三本已經涵蓋了.NET平臺的大半江山。

          CLR、Windows Forms和ASP.NET 

          Jeffrey Richter, Applied Microsoft .NET Framework Programming
          《Microsoft .NET框架程序設計(英文版)》,機械工業出版社
          《Microsoft .NET框架程序設計(修訂版)》,清華大學出版社 

          .NET框架主要包含兩大塊:其一是CLR,其二是類庫,而CLR則是.NET框架中其他任何東西的基礎。無論是要透徹理解像C#Visual Basic.NET這樣的.NET語言,還是要全面把握ASP.NETADO.NETWindows Forms這樣的.NET框架類庫,你都必須對CLR有一個很好的理解。Richter的這本書就是CLR方面的權威著作,它詳細地講解了CLR的構造和工作機理,而.NET框架類庫并非本書的重點。 

          RichterWin32程序設計領域的權威技術作家,本書則奠定了他在.NET世界同樣的地位。這本書對于程序集、裝箱/拆箱、事件和委托、異常機制以及垃圾收集等關鍵主題的講解準確而清晰,同時還給出了許多寶貴的建議和忠告。因此,盡管Visual Studio .NET這樣的集成開發環境很容易上手,但為了有效地構建各類高效的應用程序,我推薦你在動手編寫代碼之前,認真閱讀一下這本書。 

          這本書對于完全的初學者有一定的難度,而對于有經驗的程序員(包括Windows DNA程序員和Java程序員)來說,這本書正是他們夢寐以求的.NET讀物。 

          順帶一提,這本書的中譯本先后出過兩個版本。“修訂版”的譯者李建忠先生是我的朋友。因我虛長建忠幾歲,在他決定接受此書修訂邀請之前曾征求我的意見 — 很幸運 — 他沒有理會我的建議,各位讀者朋友今天才得以看到這個傾注著譯者心血的譯本。 

          Charles Petzold, Programming Windows with C# (Core Reference)
          《Programming Windows with C# (Core Reference)(影印版)》,世界圖書出版公司
          《Microsoft C# Windows 程序設計》(上、下冊),北京大學出版社

          這部著作的問世,證明Petzold 依然是Windows GUI程序設計領域的首席作家。本書專注于使用Windows Forms類庫和C#語言編寫傳統的Windows桌面應用程序。是的,本書沒有涉及CLR、ADO.NET以及ASP.NET等“更重要的”.NET技術。除了對C#語言浮光掠影的簡介外,它沒有越雷池半步,全神貫注于Windows Forms程序設計,深入解釋了Windows Forms類庫的方方面面。

          盡管Visual Studio .NET提供了大量的可視化工具和向導,使我們得以快速地設計用戶界面并享用其生成的代碼框架,但Petzold 沒有讓Visual C# .NET自動生成代碼,本書所有代碼都是手工編寫而成 — 這也是Petzold一貫的風格。不妨首先按照Petzold的方式,學會怎樣編寫你自己的代碼,在理解了足夠多的Windows Forms知識的基礎上,再使用IDE來縮短你的項目開發周期。

          淵博的領域知識,高超的寫作技巧,清晰的寫作風格,使得本書如此之厚,而又如此簡潔、清晰。閱讀本書,宛若和Windows程序設計大師面對面地交流,許多疑惑,豁然開朗。 

          Windows Forms程序設計領域,我還要特別提一下Chris Sells的著作《Windows Forms Programming in C#》,原因倒不僅僅在于我是這本書中文版的領銜譯者。 

          我們知道,GUI應用程序開發方面的參考書往往會走向兩個極端。一種是充斥著IDE截屏圖的開發工具“快速入門”,我想各位讀者對這種書不應該陌生。而上面提到的Petzold的著作則走向“另一個極端” — 它只字不提IDE提供的可視化的交互設計特性。我不否認Petzold的方式對于學習者來說行之有效 — 我本人就是Petzold著作的受益者。然而,你知道,作為一名開發實際.NET應用的程序員,我們幾乎總是工作于像Visual C# .NET這樣的IDE中,因此,我們必須能夠游刃有余地運用IDE提供的各項功能,同時還必須洞悉IDE背后隱藏的Windows Forms及與之緊密相關的知識。Sells 的這本書能夠讓你心想事成。請耐心等候,好戲還在后頭。 

          Jeff Prosise, Programming Microsoft .NET
          《Microsoft .NET程序設計技術內幕》,清華大學出版社
           

          和前面兩本書一樣,這也是一本“文不對題”的著作,中文版的書名則更加離譜。盡管這本書在內容上劃分為三大塊,對于Windows Forms等技術主題也花了一定的篇幅,但本書的出發點顯然在于ASP.NET應用程序開發,它的大部分篇幅要么是講述Web應用開發和Web Services技術,要么是講述與此兩者密切相關的東西。 

          這并不奇怪。盡管.NET平臺包含許多東西,但首先同時也是最重要的是,它的出發點是為了提供一種更好的編寫以Internet為中心的應用的方式(請不妨再回顧一下.NET的定義)。可以說,Prosise準確地把握、解釋和示范了.NET平臺最主要的一大塊內容。 

          鑒于傳統的ASP技術是如此流行,ASP.NET對開發人員的影響肯定要比 .NET框架類庫的其他任何部份都要大。客觀地說,在.NET世界,ASP.NET的地位要比Windows Forms的地位來得重要。 

          順帶一提,Prosise的著作一向是一線程序員的鐘愛。在程序員面前,他的作品沒有什么架子,你可以一邊翻著他的書,一邊寫程序。 

          .NET語言 

          CLR.NET語言定義了一套通用的語義,而不同的.NET語言則以不同的語法表達了這一語義。在.NET平臺中,語言已經退居次席。和大多數.NET程序員一樣,我選擇的.NET語言是C#

          如果你安裝了VS.NET 2002或VS.NET 2003中文版,請到VS.NET的安裝目錄下搜索一個名為“C# Language Specification.doc”的文檔。其作者是Scott Wiltamuth 和 Anders Hejlsberg。區別在于,VS.NET 2002攜帶的是英文版,而VS.NET 2003攜帶的則是中文版。你也可以訪問MSDN主頁(文后給出了具體鏈接)。這兒除了有C# Language Specification外,還有C# Programmer's Reference這樣的非常有用的參考手冊。

          此外,如果你是一名完全的C#初學者,不妨留心一下Petzold的《Programming in the Key of C#: A Primer for Aspiring Programmers》。這是Petzold專為C#初學者編寫的一本小書。我相信這本書早晚有一天會出中文版。本著Petzold的一貫水準,它不應該讓你失望。

          結語 

          微軟起初為許多玩意兒貼上了.NET標簽,盡管當時其中一些既未使用.NET框架,也不直接支持.NET框架。這也導致了巨大的混亂和混淆,同時也為.NET招致了更多的非議和批評。我們應該還有印象,在.NET戰略發布之后的很長時間內,仍然有許多人迷惑不解:到底什么是.NET?或者說,.NET到底是什么?

          今天,多少有點諷刺意味的是,就在一些產品真的支持.NET技術之際,它們反而丟掉了.NET標簽。比方說,內置了.NET框架的“Windows .NET Server”在發布前夕被重命名為Windows Server 2003.NET企業服務器亦在陸續支持.NET框架、成為貨真價實的“.NET企業服務器”的同時,而被撕掉.NET標簽。而所謂的“Office .NET”終究只是一個謠傳,但Office 2003的確提供了對.NET實實在在的支持。比方說,Word 2003 文檔和模板以及 Excel 2003 工作簿都可以運行所引用的 .NET 程序集中的代碼,而這些 .NET 程序集代碼的安全性則是由.NET框架而非WordExcel進行管理的。

          但是,有兩樣東西的.NET標簽貼得一直非常牢靠:一是.NET框架,二是Visual Studio .NET。我們可以感覺到,目前.NET標簽基本上局限于使用在“技術范圍”之內,這與其說是微軟的妥協退步,倒不如說是一種理智的進步。“高科技”企業向來有拿技術名詞糊弄外行的惡習,這也是市場營銷人員的慣用伎倆(比如新模范馬路上的手機廣告可以是“內置Java技術……”)。也許微軟意識到了誠實一點于人于己都有好處。

          .NET標簽的縮水并不意味著微軟.NET技術戰略發生了根本性的動搖。盡管像.NET My Services這樣的技術沒有像微軟預想的那樣成功,但.NET平臺的核心技術卻一直穩步向前發展,并業已取得無可辯駁的成功。回頭看看一兩年前包圍著.NET的許多誣蔑和毀謗,如今早已不攻自破,事實再次證明微軟將續寫不敗的神話。無論如何,和您一樣,我希望.NET和它的競爭對手能夠共同擁有美好的明天。

          posted @ 2006-02-10 16:16 7夜 閱讀(457) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 桂平市| 万山特区| 武清区| 武强县| 海晏县| 延长县| 巢湖市| 灵丘县| 常德市| 邵东县| 建水县| 贞丰县| 年辖:市辖区| 陆良县| 措美县| 平顶山市| 岳阳县| 宁德市| 商都县| 新和县| 宣恩县| 青田县| 依兰县| 龙陵县| 奉贤区| 河北区| 浦县| 湘西| 休宁县| 玛曲县| 霸州市| 花垣县| 葵青区| 广饶县| 巴东县| 布拖县| 砚山县| 宁陕县| 台江县| 化州市| 大田县|