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

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

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

    Feeling

        三人行,必有我師焉

       ::  :: 新隨筆 :: 聯系 ::  :: 管理 ::
      185 隨筆 :: 0 文章 :: 392 評論 :: 0 Trackbacks

    #

    最近一段時間真是生逢不幸,屋漏偏逢連夜雨,老天爺處處和我作對,每天只能長吁短談,至于怨天尤人,那還不至于成為我的作風,學習的動力也因此而來。人嘛,總是在安逸中墮落,逆境中求生。從大學畢業到現在,除了頭年的奮斗,后面的幾年基本上就是在墮落中度過,而且愈演愈烈。

    工作的幾年,經驗長了不少,大公司,小公司,國內的,國外的,甚至連皮包公司都呆過,還是現在的這個最爽。不過Manager因為移民澳大利亞馬上就要離開公司了,我的好日子也要到頭了。這幾年時間,說實在話,成就不大,基本上就在原地踏步,也不知道工資怎么就翻了10倍。這期間也看過一些書,不過說實在話,收獲不大。現在想回過頭來潛心研究一些基礎的東西,雖說基礎,但是沒有以前的積累,是無法透徹領悟的。

    我想(I think that if I want to)彌補自己的漏洞,在網上看看別人的面試題,然后自己做做,心里就應該有個底了。想當年考研的時候,第一次拿著歷年的考試題做,居然150分只拿了40分,那個汗呀,最后強攻了3個月,最后考了個135,其實我自己都不知道怎么能考這么多分,最后2個大題沒做,這就20分沒了(出得太變態了,居然出魔方,這個規律性太強,我只知道有6個規律,背不下來,難道要自己臨場琢磨,我當場就直接白卷放棄,本來也沒打算上研。不過學校小考的時候也考過這個,我是抄的,也只能怪自己了。)

    設計模式,UML,J2EE,三道難題擺在我面前。外加 Spoken English。Japanese? I'm very sorry,日企我還沒這個雅興。

    這里主要說設計模式了,我看過很多遍,以前沒什么經驗,很多架構自己都沒有用到過,設計模式這個東西,也就是看了白看。這幾天系統地看了一下,其實其中的大部分,我已經從平常閱讀別人的代碼中學過并且已經用過了,現在回頭再看看,自己比較比較,仔細領悟,以后就不用再看了。領悟了以后就是自己的了,還管別人的干什么,自己的就是最好的。這年頭連社會主義都是有自己的特色的,設計模式當然也要有自己的特色,吸眾家之所長,取各方之精華。

    UML慢慢搞吧,去年搞了搞,沒啥進展。

    J2EE我不知道怎么說,除了EJB,其他的好像都搞過,JSP,Servlet,JMS,RMI,JNDI(LDAP),JDBC……不過好像是前兩年搞的,而且都是些小項目。最近在做Eclipse Plugin的開發,一年多沒碰了,心虛的不行呀。就說最近幾年流行的Spring,Hibernate,Ajax,我壓根就不會,也就是搞了一會iBatis,感覺有點落伍了。說白了就是我個人已經厭惡B/S了,已經轉向C/S的懷抱了,沒什么興趣在搞這些玩意。

    看看網上的招聘信息,很搞笑,某外企,英文要求寫的是熟練掌握書面英語,口語流利。最后中文附注只要求看懂文檔就行了,俄的神呀!是不是所有的外企都這樣?我的印象外語還是蠻重要的,最近努力加強中……看來我以后的工作性質只能向C/S靠齊了,B/S方向已經嚴重落伍。

    其實作為技術而言,只要工作上要用,學起來都會很快。但是有些技術之外的東西卻需要時間來沉淀,比如Design Pattern,UML,English,System Architecture,還是每天花時間搞搞這些玩意來的實際。

    今年下半年的主要任務就是查漏補缺,系統總結了。明年公司合同就到期了,到時候看看情況再決定是走是留吧……留當然容易,不過還要看看發展前景再說:-(
    posted @ 2007-06-20 19:36 三人行,必有我師焉 閱讀(1529) | 評論 (15)編輯 收藏

    想真正領悟這首曲子感人的地方,就不能不去玩《英雄傳說6》這個游戲。

    星之所在口琴版(游戲中的音樂):
     
    下載地址:http://www.tkk7.com/Files/cnfree/xzszkqb.mp3

    星之所在完整版:
     
    下載地址:http://www.tkk7.com/Files/cnfree/xzszwzb.mp3

    FC結局視頻:


    《星之所在》歌詞

    一秒的喜悅,一秒來幻滅
    不意闖入流光飛舞的世界
    輪廓再真切,情感越發強烈
    就暫時停留這天上宮闕

    左手很鮮艷,右手在凋謝
    慶幸至今誰都沒想過妥協
    一千零一夜,竟是一千零一劫
    劫后余生何嘗不是破滅

    你早不是你,而我不是我
    兩個名字,靠得那么近

    前生的不滿,來世再償還
    此刻只想逃避千萬別責怪
    或許是今晚,明月繁星都不在
    不正好沉寂自做主張的愉快


    幕布拉不開,忘掉了對白
    世人不復昨日的百無聊賴
    空曠的舞臺,沒有誰人會理睬
    不正好獨享光輝燦爛的存在
    再一次重來,又怎么才能重來
    請別計較遺忘和銘記的勝敗

     


    翻譯二:
    遙遠的地方,是誰在歌唱,
    踏著夢的足跡,來到我身旁,
    失去你的黑夜,我心仍徬徨,
    期待你有天會出現我身旁;

    微風在輕揚,訴說著憂傷,
    乘著愛的翅膀,找尋你方向,
    就算受傷情愿和你去流浪,
    我依然向往和你一起飛翔,

    靜靜守候相約的誓言,
    等候明天太陽的光芒,

    讓愛去徜徉,讓心去飄蕩,
    就讓淚光融化寒冷和冰涼,
    有你陪伴的夜我不再迷惘,
    看星光依然,雪花飛舞飄揚。

    依然等你在相遇的地方。

    posted @ 2007-05-05 02:34 三人行,必有我師焉 閱讀(1981) | 評論 (0)編輯 收藏

    假如你是一個Leader,那么你敢對你的自己的項目Refactor嗎?當然我這兒所說的Refactor不是僅僅修改幾個Class而已,而是將舊有的框架完全拋棄,而建立一個全新的框架。你能面對Release的壓力,還有項目成敗的挑戰嗎?

    當一個Project越來越大,Logic越來越復雜的時候,就有的框架體系往往不能滿足新Feature的要求,于是程序員們有兩種選擇,要么重構,要么打補丁。對于后者,如果開發人員水平高一點,補丁的痕跡還不會很明顯,如果水平一般的話,這段代碼往往就會形成一個惡夢。久而久之,整個項目都會積重難返,直至崩潰。

    很幸運的是,我所在的Team從一開始就定位于堅持Refactor。基本上每個MileStone,都會有1-2個人手上的活不是new feature,而是refactor。也許剛剛開始refactor的時候會無從下手,畢竟很大的一塊,不是說動就動的。但是不管怎么樣,refactor之后的效果是顯而易見的,新的擴展很容易實現,往往只要覆寫某個方法就可以實現一個新的feature。磨刀不誤砍柴工,refactor很好的詮釋了這一點。

    看過《重構》這本書的人,都會知道重構須從小處做起,不斷堅持,但這樣的重構也只僅僅局限于某些功能點的重用性而已。真正的重構,是需要大刀闊斧的。一個項目,你很難知道后期的行為,因此代碼框架也很難一直適應新的需求。當需求不斷變更的同時,如果固步自封,渾身打上狗皮膏藥,補丁越多,維護越累。當量變達到質變的時候,也就是項目崩潰的時候。只有堅持對框架進行調整,才能夠不斷的滿足新的需求。

    說到這兒就不得不說到團隊間的合作問題,一個產品,往往是由幾個Team共同協作完成的。基本上每個Team都只需要負責自己的模塊,并且根據工作量的大小有相應的人手。那么你認為在這兒Team之間,大家工作的感覺會想差不多嗎?實際上,每個Team內部的情況完全不一樣,有的Team,一個人平均每天只能該1個Bug,有的Team能夠該3-5個。歸根結底,還是由于框架的問題。如果框架結構清晰明了,改起來自然簡單,往往一行代碼的修改就能解決問題。框架結構復雜的話,那就不好收拾了。框架的作用就是增加重用性,降低耦合度。我們這兒有一個Team,框架3年都沒有什么改變了,而且由于人員的更迭,很多代碼都和黑盒一樣,沒有人能夠看明白。我敢說,我一天改10個Bug都不在話下,他們能說嗎?

    一個Leader要維護Team之間的平衡真得很累,結構好了,自然就做的快了,可那又不是自己的錯,做得慢的Team不但拖累自己,到頭來還硬要說你出風頭。開發人員第一個需要擁有的素質就是能夠不斷自省,要學會先懷疑自己。把所有的責任都推卸出去了,到最后問題沒解決那還是自己的。一個項目的成敗也往往是由Leader的管理水平來決定的。如果Leader都怕失敗,不敢去承擔責任,那么手下的人自然也沒有這個義務了。

    我只想說一句,不敢對自己現有的框架體系做出挑戰的,不能夠自省的Leader,都是對自己的項目,自己的手下不負責任。一個項目最終的成敗,也可能就毀在這些人手上。
    posted @ 2007-05-02 18:51 三人行,必有我師焉 閱讀(849) | 評論 (4)編輯 收藏

    DataSet Joint
    一個簡單的Dataset Joint Example

    一般來說,Eclipse插件開發用到GEF的機會并不是很多,大概也就是結構設計,數據管理,流程控制等應用罷了。看了一下網上的例子,大部分都是基于數據庫管理的,我想這應該是因為數據庫設計的Dataset Joint是程序開發最常見的吧。

    GEF的一個簡單Example可以參加GEF自帶的例子Logic,功能非常強大,了解了Logic,就能夠了解相應的GEF開發。在網上這方面的教程并不多,我也基本上沒開,我個人始終認為看書不如看代碼。當然我以前也沒有接觸過GEF,畢竟要完全掌握這個東西并非一日之功,要想在上面有所造詣不通過一個大型項目的加強是不可能的。上面的這個小東西也是我花了半個月,還請教了一些人幫忙debug才研究出來的,還是花費了相當功夫。

    不過GEF是一套框架,上面的這個小東西,麻雀雖小,五臟俱全,而且基本上可以算一個不依賴于Eclipse平臺的小應用程序。不過GEF(Ver 3.3)這個項目依賴于Eclipse OSGI,如果想完全獨立于Eclipse,需要自己做一些小小的改變,也不算太麻煩。最后基本上SWT+JFACE+GEF基本上就可以自己做應用了。

    獨立于Eclipse的GEF簡單教程可以參見:
    http://www13.plala.or.jp/observe/GEF/GEF_StandAlone.html
    http://www13.plala.or.jp/observe/GEF/GEF_Tool_StandAlone.html

    日文寫的,我看不懂,只看代碼。

    這里我只說幾點:
    1、如果面板需要滾動條,并且能夠自由伸縮,顯示的話,請選擇ScrollingGraphicalViewer,相應的RootEditPart請選擇ScalableFreeformRootEditPart。

    2、GraphicalViewer是通過EditPartFactory拿到子EditPart的,有些類似于JFace TreeViewer的ContentProvider,根據特定的Element拿到對應的EditPart,不同于TreeViewer的是,GEF的getChildren方式是寫在EditPart里的,每一個EditPart都要實現 protected List getModelChildren( ) 方法,而TreeViewer的getChilder是在ContentProvider內部實現的。因此EditPart更為靈活,因為EditPart還可以通過EditPartFactory拿到上下文環境,而TreeViewer ContentProvider脫離了Viewer本身,只能通過Model來取,這樣當Model和Viewer不一致的時候,GEF游刃有余,而TreeViewer卻舉步維艱。

    3、EditPart的FeedBack Figure的背景顏色是和它的背景取異或操作的,因次再拖動EditPart的時候,如果FeedBack Figure覆蓋EditPart的時候,Figure的顏色很難看,解決這個問題的辦法就是設置GraphicalViewer的背景顏色為白色。

    4、希望EditPart能夠拖動,需要實現getDragTracker( )方法:

        public DragTracker getDragTracker( Request req )
        {
            DragEditPartsTracker track 
    = new DragEditPartsTracker( this );
            
    return track;
        }


    5、刷新EditPart的顯示需要覆寫protected void refreshVisuals( )方法,當Model的模型改變,需要刷新View的時候可以通過事件監聽來顯示的調用該方法。

    6、設置EditPart在父親EditPart的位置調用( (GraphicalEditPart) getParent( ) ). setLayoutConstraint(EditPart arg0, IFigure arg1, Object arg2)方法。 

    7、如果是XYLayoutEditPolicy,內部EditPart位置的改變會調用XYLayoutEditPolicy的protected Command createChangeConstraintCommand( EditPart child,
       Object constraint )方法,需要記錄EditPart位置可以在這里進行。

    8、EditPart的Selection事件需要注冊SelectionEditPolicy,你可以針對不同的EditPart實現不同的SelectionEditPolicy。

    9、內部有自由布局的EditPart需要注冊LayoutEditPolicy的子類。而該EditPart的Figure需要設置對應的LayoutManager。

    10、GraphicalViewer監聽Key操作需要setKeyHandler(new KeyHandler(viewer))。

    11、進行連接操作的源EditPart需要實現protected List getModelSourceConnections( )方法,目標EditPart需要實現protected List getModelTargetConnections( )方法,創建一個連接需要使用ConnectionDragCreationTool。連接圖形的EditPart必須繼承AbstractConnectionEditPart。實際上每個連接會被創建出2個EditPart,只有這2個EditPart的Model相等的時候,一個連接才會成立。

    12、如果需要連接,需要注冊GraphicalNodeEditPolicy,并且實現protected org.eclipse.gef.commands.Command getConnectionCompleteCommand(
       CreateConnectionRequest request )和protected org.eclipse.gef.commands.Command getConnectionCreateCommand(
       CreateConnectionRequest request )方法。注冊代碼:

    installEditPolicy( EditPolicy.GRAPHICAL_NODE_ROLE,
                    
    new ConnectionCreationEditPolicy( ) );


     先寫到這兒,慢慢再補。

    posted @ 2007-04-30 18:35 三人行,必有我師焉 閱讀(3703) | 評論 (4)編輯 收藏

    Eclipse下的插件開發如果需要用到什么字體或其他的工具時,盡量避免使用AWT GraphicsEnvironment ,這會導致Vista Aero效果暫停工作。如果有需要得到Font字體列表的話,可以使用SWT的FontList拿到:

     1    public static String[] getSystemFontNames( Comparator comparator )
     2    {
     3        FontData[] fontDatas = (FontData [])Display.getCurrent( ).getFontList( nullfalse );
     4        SortedSet set = new TreeSet(comparator);
     5        for(int i=0;i<fontDatas.length;i++){
     6            set.add( fontDatas[i].getName( ) );
     7        }

     8        fontDatas = ( FontData [] )Display.getCurrent( ).getFontList( nulltrue );
     9        for(int i=0;i<fontDatas.length;i++){
    10            set.add( fontDatas[i].getName( ));
    11        }

    12        String[] fonts = new String[set.size( )];
    13        set.toArray( fonts );
    14        return fonts;
    15    }

    /**
     * Returns <code>FontData</code> objects which describe
     * the fonts that match the given arguments. If the
     * <code>faceName</code> is null, all fonts will be returned.
     *
     * 
    @param faceName the name of the font to look for, or null
     * 
    @param scalable if true only scalable fonts are returned, otherwise only non-scalable fonts are returned.
     * 
    @return the matching font data
     *
     * 
    @exception SWTException <ul>
     *    <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li>
     * </ul>
     
    */

    public FontData [] getFontList (String faceName, boolean scalable)
    posted @ 2007-04-30 16:34 三人行,必有我師焉 閱讀(1116) | 評論 (0)編輯 收藏

    規則:每次單挑都有五個候選人可以選擇單挑,有人有武器,有人沒有。戰勝持有武器的武將,得武器,體力回復少許;戰勝沒有武器的武將,體力回復較前者略大;中間敗北可以選擇復活一次(只有這一次!)體力全滿
    手戟:太史慈93、典韋95、甘寧94(無需斗志即可實行暗器攻擊)
    弓:黃忠93(100斗志偽退卻,有幾率使敵將受傷)
    劍:趙云96(斗志提升速度加快)
    刀:關羽97(攻擊力上升大于丈八蛇矛)
    沒有武器的武將:顏良94、文丑93、龐德94、馬超97、張遼92、許褚96

    首先要注重單挑順序,其次注重技巧。技巧方面就是盡量多防守,少進攻,必殺技一定要留在最后放,否則敵人會通過你的攻擊集氣,然后給你個必殺技就得不償失了。

    首先單挑太史慈,選擇攻擊,在損失15%的血以后就可以順利擊敗,并獲得手戟。
    排在第二位的是趙云或者關羽,關羽難度比較大,個人感覺是13人中最強的,建議先選趙云。先攻擊幾個回合再防御,最后2個必殺技+暗器,PK掉趙云,應該還剩30-40%血,拿到青虹劍,加快斗志提升速度。
    第三位可以選張遼,張遼是武力最低的一個,但是比較難打,因為無論是進攻還是防守,都會費不少血,建議先防守1招,然后攻擊幾招,最后必殺技+暗器搞定。最后還剩20-25%左右血。
    第四位和第五位選龐德或者文丑(顏良?),這里面龐德、文丑、顏良是有很大機會秒殺的,而且費血很少。這2關打完以后血應該能夠恢復到60-70%。
    第六位選擇甘寧或者典韋,會費一點血,不過最后應該會超過50%血。
    第七位要看黃忠是否出來了,黃忠出來了立即選黃忠,一開始就進攻,不要防守,在15招之前解決戰斗。拿到養由基弓。應該還有40-50%血。
    第八位:龐德、文丑、顏良中剩下的一個,有機會秒殺,不秒殺也要盡量剩70%以上的血。
    第九位:許褚,主防即可。剩75-85%血。
    第十位:關羽,這一仗至關重要。關羽很難打,無論是攻擊還是防守,都會制你于死地。建議先防守一招,然后對攻,還剩不到45%血時主防,最后必殺技+暗器+偽退。可能還剩10%-30%血,拿到青龍偃月刀,再次加快斗志提升速度。
    第十一位:如果血比較多,可以選典韋、甘寧中剩下的一個,血少的話選馬超。主防即可,打馬超基本不費血,最后2必殺技+暗器+偽退。如果是馬超,最后血補全滿。
    第十二位:如果十一選了馬超,那么這一關就要盡量避免失血。一定要保證血大于60%,不要大意哦。
    剩下的就是呂布和項羽了:只要一直防守就可以了,打完呂布之后似乎是不會補血的。所以最后要保證30%以上的血,呂布集氣很快,有可能會放必殺技。項羽除了一個暗器以外,很菜的。對付這兩人都是3必殺技+暗器+偽退,五個大招一次解決問題。

    太史慈、黃忠、顏良、文丑、龐德,盡量多進攻,張遼、關羽,進攻+防守,剩下的防守就可以了。最后連續的幾個必殺技按快一點,一定要保持連續性,不給敵人喘息的機會。如果必殺技放完了,敵人還有一絲血,就馬上切換成進攻,給予最后的一擊。
    posted @ 2007-04-24 01:28 三人行,必有我師焉 閱讀(20172) | 評論 (16)編輯 收藏

    Realease在即,而Mock-up卻還在更新,這就是我目前的境況。要命的卻是還有一個從來沒有涉獵過的領域擺在我面前,那就是GEF,Eclilpse最復雜的框架之一。我一向推崇簡單就是美,Java搞了這么多年,但是越搞越復雜,Eclipse也是如此。最令人推崇的Eclipse開發版本還是2.1.2,相對于2.1版本,3.2簡直就是蝸牛。而我們卻要無休止緊跟著Eclipse的腳步,它走一步,我們就要前進一步。我以前甚至不屑于使用JFace,更何況這個傳說中的GEF,玩玩還可以,使用它那還不是要我的小命。

    不過框架自有框架的好處,如果能夠熟練使用,可以少寫很多代碼,因此能夠使項目速成。我現在要做的是一個數據庫表索引關聯編輯器,功能其實不多,但是麻雀雖小,五臟俱全,一個完完整整地GEF應用。拖拉暫且不說,是GEF的基本應用,最麻煩的其實還是各個表初始化的布局,需要寫一個自己的布局管理器。如果要自己從頭寫而不用GEF,估計一個月怎么也夠嗆。現在采用GEF,我想半個月就差不多了,不過學習成本昂貴呀。我得承認我嚴重低估了GEF的復雜度,到目前為止,我已經研究了三四天,才剛剛能夠進行簡單應用。看書,找資料,研究框架的構架,都是扯淡,看了八進制的文章,仍舊是一頭霧水。看別人的容易,變成自己的就太難了,什么事情都還要靠自己領悟才行。

    還好我是多條路并行采用了。雖然我眼下的項目可以稱得上是最復雜的GEF應用之一(源代碼打ZIP包都快30M了),但身邊能用GEF開發的高手卻屈指可數,Manager估計早就想讓我搞這個玩意了。JFace我都是速成的,現在已經很熟練了。順便說一下TreeViewer這個東西,它的顯示邏輯全部都是通過Provider來實現的。顯示的時候就會通過getChildren從上往下走,找一個節點的時候則是通過getParent從下往上走,現在就有一個問題了,如果我setInput的Model的內部邏輯和我要顯示的外部邏輯相差比較大,那么如何實現?在這兒適配器是不能工作的,因為溝通是雙方的,適配器則是單方的。如果用一個虛節點來代替Model實際上沒有的顯示邏輯,那么虛節點的兒子(一個Model實體)通過getParent是找不到那個虛節點的,它只知道自己的實體父親。封裝所有的Model也是不可取的,要不要Model干什么。我想TreeViewer碰到這樣的應用就會無能為力了。

    現在說一下框架速成大法:
    1、問,自然是問高手了。高手會一針見血的把問題找出來,并能告訴你框架的整體結構,通過現場演示,能夠讓你的腦子對框架有一個整體的認識,這可比看文章接受的快多了。我同事已經被我折磨了一個禮拜了。在問和解答的過程中,大家都能夠發現自己的不足,如果兩個人在一起編碼,又是一個結對編程的過程,這個時候2個人的腦子思維都會很清晰。
    2、Debug,找一個和自己相近的應用。每一個框架,作者一般都會提供一些例子,而且這些例子雖然簡單,卻基本上包含了框架的方方面面。要想應用框架,最終是需要自己寫代碼的,代碼在哪兒找,就是作者的例子里找。看看例子里有多少應用是自己需要的,找到合適的地方Debug一把,一步一步地跟下去,很快你就能夠通過堆棧信息以及源碼了解應用的整個步驟,然后用Copy大法,一個自己的應用就創建出來了。

    當然第二點依賴于第一點,初學者是很難尋找合適的斷點進行跟蹤,所以需要找個高手過來,讓他來跟,他演示的過程就是自己學習的過程。有了自己的第一桶金,后面的路就已經很平坦了。一個人對于未知領域的恐懼并不是怕自己不能掌握,而是不知道自己要花多長時間來掌握它。通過3天的速成,雖然對GEF的整體了解是管中窺豹,但我已經心里非常有底了。現在已經能夠把Tabel以及里面的Column畫出來,而且已經實現了布局,拖拽等基本事件,剩下需要研究的東西不會太多,夠用就行。技術這個東西,不怕不了解,就怕不會學習,很多時候,等到要用到的時候再學也不會遲,關鍵是要掌握正確的學習方法。

    posted @ 2007-04-07 00:22 三人行,必有我師焉 閱讀(1188) | 評論 (3)編輯 收藏

    傳說中鳳凰每隔500年要投入火中以求得新生。有一種恒星在其「臨死亡」的剎那,將發生激烈的爆炸,如迴光返照般放出極耀眼的光芒。星球毀滅了自己,卻也同時觸發了新恒星的誕生。這就是超新星,天上的火鳳凰。

    在宇宙中,恒星的分類是按照它們的死亡的方式,一類象我們太陽這種,最終安靜的成為白矮星,另一類是比太陽大8倍以上的恒星,它們的死亡是爆炸。恒星越大,壽命就急劇的縮短,質量差3倍,壽命就差750倍,也就是說,一個比我們的太陽大3倍的恒星,它的壽命就只有1300萬年,所以,生命的進化是不可能托付給大恒星的。但是,宇宙的物質的豐富和流動,卻全靠它們。

    宇宙在過去有過一個非常單調的開端,只有氫元素和少量的氦元素,然而宇宙在成長,而成長的標志就是重元素的增加,這種增加使宇宙越來越豐富,宇宙的所有的奇跡,都是在有了完整的元素制造之后。而制造元素,就是把氫元素以不同的數目聚合,而要完成所有元素的聚合的場所,就是擁有巨大引力的大恒星。從豐富物質角度來說,大恒星是宇宙中的精品,它們不僅能生產所有的元素,而且由于恒星越大,壽命越短,因此周期也短,所以,恒星的巨無霸是宇宙制造元素效率最高的工廠。不過,宇宙中最大的恒星的質量極限是一百個太陽,如果再大,就會因為自身的核反應過猛而解體。

    船底座海山二星(Eta Carinae)可能即將爆炸!但誰也不知道它會發生于何時?一年后,抑或百萬年后?海山二星的質量約為太陽的100倍,擁有足夠的能量以產生一次非凡的超新星爆炸。根據歷史記載,大約150年前一次不平常的爆發,使得海山二星成為南半球夜空中最亮的幾顆星之一。位在鑰匙孔星云(KeyholeNebula)中的海山二星被認為是目前已知唯一一顆可發射自然激光的恒星。這一張在1996年經由復雜的影像處理后所得的影像,顯示出這顆恒星周圍云氣的細微部分,其中包括兩個清楚的圓形突出部分、一個熾熱的中央區域,以及一些奇怪的輻射狀條紋。
    船底座海山二星(Eta Carinae)可能即將爆炸

    引力制造元素,但也束縛元素,小恒星大約能制造出十來種元素,但這些元素最終不能在宇宙中流動。大恒星能制造更多的元素,一般超過太陽質量 8倍以上的恒星就能使聚變一往無前,其核心達到幾十億度的高溫不斷的創造不可思議的聚變,每次聚變所產生的能量都使恒星膨脹得更大一些,于是它就象洋蔥一樣形成令人吃驚的多層核聚變的巨大空間,這個空間可以達到一百億公里,裝下整個的太陽系。在聚變的深入的過程中,恒星變得越來越危險了,因為元素越重,聚變提供的能量越少,而巨大的恒星又必須靠不斷釋放的核能支撐。然而,當聚變到排列第26位的鐵元素時,搖搖欲墜的恒星遭受到最致命的破壞──因為鐵元素的結構極其穩定,它在聚變時不釋放能量,于是,巨大而膨脹的恒星將會因核心失去支撐而倒塌。

    因此而恒星粉碎性的爆炸,能量的狂飆掃蕩天庭,這就是超新星爆發。此刻它的能量相當于正常恒星的一百億倍,在這個超能量的瞬間,宇宙中所有的元素都被聚變出來了。象金銀首飾這種重元素,就是在超新星的爆炸中誕生的,當我們佩戴它們時,要記住宇宙制造高檔產品確實是代價很高,它需要報廢一顆至少比太陽大8倍以上的恒星,才能使我們披金戴銀。

    超新星發生在一個恒星即將結束生命時,亦即在紅巨星階段,核心燃料快要消耗殆盡時,恒星會因為沒有額外的燃料而自行崩潰。如果恒星的質量夠大,恒星內部的內爆層會在接觸核心時反彈,產生巨大的爆裂,爆炸所產生的震波會將恒星的所有物質射入太空中。

    我們的太陽將會在50億年后衰亡,因它內部提供予核融合的燃料終於消耗殆盡。到時太陽會變成一個主要由碳和氧組成、密度高而「寒冷」的白矮星。 另一方面,一顆比太陽更重的恒星的中心溫度更高。這些巨大星體會在經過一次壯觀的爆炸后滅亡,這過程稱為「超新星爆炸」。爆炸釋出的能量非常巨大,超新星爆炸的光度可能相當於1,000億萬顆恒星同時發出的光芒。

    超新星的爆發是在約一秒鐘之內完成的。由於高能輻射與爆炸拋射出來的恒星大氣相互作用,使得超新星也可能有X射線等輻射。例如SN1987A在爆炸后100多天才被Ginga衛星所探測到它的X射線。而光學波段的突然增亮,首先是由膨脹大氣引起的,后來則由Ni56等同位素的衰變提供能量,使得光度下降較為緩慢。圖五中給出了典型的超新星光變曲線。超新星爆發的高速拋射物與周圍介質相互作用形成的激波引發出電波輻射,而對星周塵埃的加熱則可以產生紅外輻射。但這些只有周圍有稠密的星際物質的II型或Ib、Ic型超新星才能觀測得到。

    在不到一秒鐘時間內釋放出1051~1053erg的能量(相當於90個太陽在其一生所釋放能量之總和)的天體,它的前身星是什么?產生如此巨大能量的機制是什么?這些是天文學家首先面臨的問題。

    首先我們來看看Ia型超新星。在它的光譜中缺少氫譜線,而且根據統計它在不同類型的星系中都有可能出現。據此天文學家提出了Ia型超新星是密近雙星演化到晚期的終極結果的想法。設想有一密近雙星系統,其兩個成員星的質量均小於8M¤ ,其中質量大的那一個演化得比較快,在其核心燃燒完氫后,接著燃燒氦,而變成中心為碳和氧的白矮星。這時初始質量較小的那顆成員星的物質就被它吸積。假如物質轉移速度小於每年10-8M¤ 的話,在白矮星周圍形成氫殼,當它達到核融合點火的溫度時,其表面就產生核融合點火爆發,這就是新星爆發的現象,其規模比超新星要小得多。

    當轉移速率在每年10-6M¤ ~10-8M¤ 之間的話,表面同樣會產生核融合,而形成氦,氦形成碳,逐步使其碳核心質量增加,直到錢氏 (Chandrasekhar) 極限的1.4 M¤ 。其中心密度可達到3×109g/cm3,而且中心達到碳點火的溫度。碳被點燃,并且融合過程從中心往外迅速傳播,在不到一秒鐘之內傳到白矮星的最外層。其爆炸將產生1053erg的能量,而且爆炸規模巨大無比,以至於將這顆白矮星完全「炸飛」了。由於白矮星中的氫已經燃燒殆盡,所以它的光譜中沒有氫線,同時因為它是一種「老年」的恒星,因此會出現在不同的星系之中。

    II型的超新星則不同。它的光譜中以氫線為主,而且往往出現在螺旋星系的旋臂上,在那裡往往有恒星正在形成。一個目前被廣泛接受的II型超新星爆炸的模型是:一個大質量的恒星(質量大過10M¤ ),在其最初的3000萬年甚至更短的時間內,它的核心首先是氫融合為氦,然后氦變為碳和氧,碳變為氖和鎂,氧和鎂變為硅和硫,直到最終硅和硫融合為鐵屬元素。上述每種融合過程都釋放出大量的能量,維持著恒星的「生命」,而且其核心變得愈來愈密,溫度則愈來愈高,以致能夠抵抗恒星引力的收縮。但到了核心變為鐵心后,由於鐵屬元素的核束縛能最小,融合無法繼續為恒星提供能量,反而要吸收能量。引力收縮就開始,中心的密度和溫度繼續增大,到 1010K和1010g/cm3時,電子就被壓到原子核內而形成富含中子的同位素,而高能輻射又將原子核「撕」成a粒子。這兩個過程都要吸收能量,使得重力塌縮變得更快。當中心密度超過2.7×1014g/cm3時,塌縮不能繼續,產生反彈而引發超新星爆發。它將外層核融合的剩余物,包括最外層的氫向外拋,而留下一個核核心,也就是中子星。所以在光譜中有強的氫線,同時因為大質量恒星(壽命短;因此我們看到的都是不久前形成的)是和恒星形成區相關的,所以他們往往出現在螺旋星系的旋臂上。至於Ib和Ic型超新星,目前也認為是一種稱為「沃夫─瑞葉星」 (Wolf-Rayet stars; W-R stars) 的大質量恒星演化到晚期的結果。由於W-R星有大規模的恒星風,質量流失很大,因此表層已失去了氫甚至氦,所以其光譜中沒有氫線(或甚至於氦線)。

    超新星1987A(1987年發現的第一個超新星)是近代爆炸的超新星中,最靠近地球的一個,位於169,000光年外(我們銀河系的伴星系)的大麥哲倫星系。它也是自從克卜勒在1604年於銀河系中觀測到超新星以來最明亮的一個;同時是自1885年以來第一個肉眼看得見的超新星。那原來是一個藍超巨星的位置,其質量約為太陽的20倍。天文學家相信這個星球先是膨脹成紅超巨星,在吹開一部份的星球體后,經過收縮與再加熱,成為一個藍超巨星。之后,在短短不到一秒鐘,整個星球的中心突然就崩垮了,一陣微中子將中心加熱至100億度。這個過程引爆出震波,將此星球炸散掉,并噴出大量的微中子到太空中。

    直至1987年5月,國際紫外線探索號已在超新星的碎片中發現了許多化學元素,顯示出這個始祖星球已經過了紅巨星期,證實了原來的理論。到了7月,一個日本的人造衛星和德國的望遠鏡都偵測到從碎片中發射出來的X光線。自8月到11月,更有其他的研究團隊偵測到高能的伽瑪射線,這是在即將死去的星球中心出現核反應所產生的放射性元素,衰變時所放射出來的。此資料證實了大家所相信的理論,即超新星會產生組成地球大部分的重化學元素。

    超新星1987A影像 
    超新星1987A影像

    哈伯太空望遠鏡先進巡天相機 (ACS) 所拍攝的超新星1987A影像,在其四周包圍著一串如珍珠項鏈般的氣體環,這些「珍珠」其實是超新星爆發所產生的沖擊波,以超過每小時6千萬公里的速度追撞上了“恒星在爆炸前數萬年所噴出, 膨脹速度較慢的氣體”。爆震波追上了這個環,由於碰撞作用,氣體受到衝擊,溫度升高到了數百萬至1千萬度,因而發出了紅外輻射。環中的塵埃是在星風中形成的,而不是在超新星爆發中形成的。光環直徑約一光年,光環中央的長橢圓形黯淡星體就是超新星殘骸,主要受超新星爆炸時所產生放射性元素鈦 44 衰變輻射加熱而發光,未來數十年都還將持續發光。天文學家在 1996 年首次在 SN 1987A 的外圈發現一個亮點,現在則可看出數十個。天文學家推測,未來幾年中還將陸續出現更多類似的光點,這些亮點的光會將周圍照亮,天文學家屆時將可推測超新星爆炸前是如何噴發物質至太空中。當震波逐漸往外移時,產生的紫外線和X射線輻射將加熱更多周圍過去所噴出的物質。就如同參與錢卓研究計畫的科學家理查、麥克雷所說:「超新星1987A將會點亮它自己的過去」。

    超新星的爆炸使物質擺脫了引力的束縛,但鐵元素的核卻墜入引力的深淵,巨大的塌方把電子都壓進了質子,于是質子全變成了中子,而中子之間沒有電磁力的排斥,原子核可以相互緊緊的挨在一起,這就形成了最致密的物質──中子星,它一立方厘米的質量能達到十億噸,而它引力強大到讓光都要成拋物線才能掙脫。把一個幾百萬公里直徑的物體壓縮成只有30公里的直徑,就是中子星,而同時被壓縮的還有磁場,這是一個匪夷所思的超高能核電站,它可以把表面附著的電子象高壓水柱一樣噴射出去,它們所具有強烈的方向性可以成為宇宙定位的燈塔。十幾年前,人類尋訪外星生命的一艘飛行器上所攜帶的人類的自我介紹,就是用多顆中子星為地球做定位。一些大的超新星爆炸之后,將會產生引力的奇跡──黑洞,巨大的引力把物質化為無形,因為連光都要被吸回它的表面,如果把地球壓縮成一個核桃,就是黑洞,因為地球其實是一個強力和電磁力支撐的物體,如果把原子核都毀滅了,地球就將成為幾厘米直徑的濃縮引力的載體,黑洞的存在已經被證實。

    超新星是宇宙中4種力配合的杰作,它們共同建造一個巨大的原子鍋爐,然后以鍋爐的崩潰所激發的能量完成所有元素的制造,并且在最后的瞬間把元素都徹底的拋灑出去,正因為有這種拋灑,物質才有可能演化,否則,就象有錢不去投資,再多的財富也將沒有任何意義。恒星以自身的毀滅造就了宇宙中最偉大的新生。 在超新星的物質彌漫之后,引力將會再次把這些物質凝聚成天體,大的塌縮成恒星,小的形成行星,如果這顆恒星有較長的壽命,而它的周圍有若干合適的行星圍繞,那么這個長壽的核能和比較靠近它的行星上豐富的宇宙元素的光和熱交流,就可能最終產生宇宙中最復雜的物質形態──生命。

    宇宙中最豐富的十種元素
    posted @ 2007-04-05 13:07 三人行,必有我師焉 閱讀(521) | 評論 (1)編輯 收藏

        超新星是最激烈的天體物理現象,它的爆發過程只延續大約一秒鐘,但是釋放出極大的能量,超新星爆炸的光度可能相當於1,000萬億顆恆星同時發出的光芒。爆炸時產生的高能粒子是地面上任何加速器都不能達到的, 它提供一個在極端條件下進行的核融合,以及與高能粒子相互作用的實驗,包括爆炸過程在內,這樣的條件在地面上是永遠無法實現的。在周期表中原子序數比鐵更高的元素(如鋅、金或鉛)全都是在超新星爆炸中產生的。超新星爆炸標示了一顆恆星壯烈的死亡,但是也觸發了新一代的恆星誕生。

    超新星Supernova 1994D (表示是1994年里第4個發現的超新星,第二十六個以后的則是用aa、ab、ac等等)
    超新星Supernova 1994D

    天文學家把超新星按它們光譜上的不同元素的吸收線來分成數個類型:
    I型:沒有氫吸收線。
    Ia型:沒有氫、氦吸收線,有硅吸收線。
    Ib型:沒有氫吸收線,有氦吸收線。
    Ic型:沒有氫、氦、硅吸收線。
    II型:有氫吸收線。

    I型的超新星一般都比II型超新星亮。一般學生最先知道的超新星是II型(Type II)超新星, 是大質量恆星死亡后, 成為黑洞或中子星前的超新星爆炸產生的。 Ia型超新星(Type Ia supernova, Ia唸成one-a, 不是i-a).一般相信(會寫一般相信, 就表示并非百分之百有定論)是來自含有白矮星與巨星的雙星系統, 白矮星從巨星的外層大氣中逐漸吸收質量, 待白矮星的質量超過所謂"錢的限制(Chandrasehkar's limit)"后, 會引發重力塌縮及超新星爆炸。

    這種雙星系統的爆炸分為兩種,一種是新星的爆炸,另外一種則是更劇烈的超新星爆炸。

    新星 (Nova) 爆炸:

    Nova(復數Novae)在拉丁文中代表「新的」,在天文學中「新星」指的是看來像是新產生的星星。新星會在天空中突然變亮,維持幾天后,逐漸變暗,至數月后才看不見。但是事實上「新星」并非一個新誕生的星星,而是一顆年老的白矮星爆炸所形成。

    新星爆炸是由於一顆普通星星的質量經由吸積盤轉移到一顆白矮星上。由於這些物質是由一顆普通的星星上來的,所以裡面含有許多未經核融合的成分,其中氫就佔得最多。當這些物質聚集在白矮星的表面時,形成一層未經核融合反應的燃料層。當這層物質愈來愈厚,它也變得愈來愈密、愈來愈熱,最后到達可以產生氫的核融合的條件,突然產生爆炸。

    為了明白這些爆炸如何產生,我們要先了解質量如何掉入一顆星球上。

    吸積盤 (Accretion Disks)

    當伴星質量往白矮星掉落時,由於角動量守恆,事實上物質無法直接掉在白矮星上,而是繞著白矮星轉。我們用一個日常生活舉例︰一個裝滿水的洗臉槽,槽內的水原本有些輕微的擾動,不過它的旋轉并不明顯,一旦我們將塞子拔掉,往排水口流出的水由於角動量守恆,所以變成了漩渦。同樣的,掉入白矮星的氣體也會因同樣的效應形成一個旋轉盤,稱為吸積盤。

    這兩顆恒星是如何產生如此奇怪的復雜結構呢?大部分的恆星是屬於多星系統的一員。有些緊鄰的雙星,其中一顆星的物質會掉入環繞著另一顆星的吸積盤上。然而只須扳一扳手指頭就可以數出來的緊鄰雙星系統,是屬於中度的極化雙星系統,在這個系統中,白矮星的磁場會將內吸積盤向外推出,使得物質只能從磁極附近掉入。上圖所示由畫家所描繪的中度的極化雙星系統,是著名的英仙座DQ (DQ Hercules)系統。在前方的白矮星與另一顆一般的星靠的很近,以至於白矮星會掠奪另一顆的外圍大氣。當白矮星自轉時,被吸入的氣柱也跟著一起轉起來。所謂的中度極化,是因為它所發出的光的極化程度 是另一種沒有吸積盤的極化雙星的一半而已。中度的極化雙星系統是激變星中的一種類型。
    中度極化雙星系統中的吸積盤

    在吸積盤中會發生兩件重要的事情︰第一,盤中的氣體因為摩擦力及潮汐力而變得十分熱。這個吸積盤扮演煞車的角色,讓氣體旋轉速度變慢,掉入白矮星內。靠吸積盤內部的氣體溫度可以超過100萬K,氣體會發生強烈的X光。另外,從吸積盤往內掉落至白矮星上的物質會發出巨大的爆炸。

    新星的爆炸將白矮星的外層以每秒幾千公里的速度往外炸開。雖然往外炸開的物質質量僅有0.0001倍的太陽質量,但是它的光度可達太陽的10萬倍。當外層膨脹得愈來愈大,且愈來愈稀薄時,就逐漸變冷,新星看來就逐漸黯淡了。

    這個爆炸幾乎不會影響這顆白矮星和它的伴星,所以同樣的質量轉移的過程又開始進行。白矮星外層的燃料層加厚的速度與質量轉移的速度有關。根據這個理論,有些新星需要1,000到10萬年來累積足夠厚的燃料層來產生爆炸;有些則僅需要幾週。再發新星 (recurrent novae)、矮新星 (dwarf novae) 及一些相關的不規則變星 (irregular variable stars) 都經歷類似新星的較小規模的爆炸。雖然這幾型星球并不一樣,不過它們都經歷質量累積在吸積盤的過程。

    在名為蛇夫座RS (RS Ophiuchi)的雙星系統里,壯觀的爆炸不停的重復發生。大約每隔20年,隨著紅巨星傾洩足夠的氫氣到它的白矮伴星,就會在白矮星的表面引發閃亮的熱融合爆炸。離我們有二千光年遠的蛇夫座RS星,因新星爆炸而大幅增亮,成為肉眼可見的天體。在上面這幅圖示中,右方的天體就是這顆紅巨星,白矮星則在左端明亮吸積盤的中心。隨著恆星相互繞行,云氣不斷地由紅巨星流向白矮星。天文學家認為在接下來十萬年的某個時間點,當足夠的質量累積在白矮星上,讓它的質量超過錢氏極限 (Chandrasekhar Limit)時,就會造成更強烈的超新星爆炸。事實上宇宙中有一半以上的恆星都是雙星系統。大部分的雙星系統兩顆星星都分得很開,所以當其中一顆膨脹并塌縮時不會影響它的伴星。但是有些雙星距離很近,當質量較大的星星開始膨脹時,會與它的伴星有些特別的交互作用。
    不斷發生爆炸的蛇夫座RS (RS Ophiuchi)的雙星系統

    超新星爆炸:

    經典的觀點認為,熱核爆炸超新星——也就是Ia型超新星——爆炸發生在白矮星——一種燃燒完核燃料(Nuclear Fuel)并且全部由碳(Carbon)和氧(Oxygen)組成的星體——從一個鄰近的伴星吸積物質的時候發生。在吸積的同時白矮星會收縮從而導致密度和溫度上升。這個過程一直進行到白矮星的質量達到質量極限——也就是所謂的Chandrasekhar質量,大概等于1.4倍的太陽質量。當達到這個狀態的時候,由于熱核反應不穩定性導致核聚變放出大量的能量,將白矮星外層的物質以很高的速度噴射出去,速度可以達到光速的百分之幾。核反應可以將大概0.6個太陽質量的白矮星物質變成一種同位素:放射性的鎳56(Nickel-56)。這種同位素的衰變——先是衰變到鈷56(Cobalt-56),然后再衰變到鐵56(Iron-56)——提供了一個延遲能量來源,這可以維持噴射出去的物質處于高溫,導致超新星獲得比十億個太陽更強的峰值光度(光度的定義為單位時間內輻射出來的能量)。

    天文學家對于Ia型超新星具有濃厚的興趣,因為它們可以被用來探索宇宙的膨脹歷史。這種超新星的光度很大,這就意味著能夠在很遠的地方看到——由于光的傳播速度有限,這同時也意味著可以看到遙遠的過去——而它們的相對視亮度則可以被用來推測它們的距離。超新星光變曲線和峰值光度之間的經驗關系可以用來很精確地確定超新星的光度。

    所有的Ia型超新星, 當它們的亮度達最高點時,都有著同樣的絕對亮度。因為它們發生爆炸的原因都完全相同,起始于白矮星吸收伴星物質的過程一直進行到白矮星的質量達到質量極限,由于熱核反應不穩定性導致核聚變放出大量的能量。

    但是1996年后, 這一點被新觀測給修正了。由Howell等人發現的超新星是SNLS-03D3bb(或者SN2003fg)在光學波段具有發射和吸收譜,由這些信息可以確定這顆超新星是Ia型的。這就意味著它的爆炸是由前面描述的失控熱核反應驅動的,而不是驅動其它類型超新星的引力塌縮。但是這顆超新星的峰值光度是典型Ia型超新星爆炸事例的2.2倍。超新星爆炸的光度取決于鎳56的質量,在這個案例中,產生這么大的光度需要有1.3倍太陽質量的鎳56。產生這么多的鎳要求初始噴射物質的質量遠遠超過Chandrasekhar極限允許的1.4倍的太陽質量。這是因為核聚變不僅產生鎳,而且還穩定的鐵系同位素,而且SN2003fg的光學譜顯示存在更輕元素比如硅(Silicon)、硫磺(Sulphur)和鈣(Calcium)的存在。同時還可能存在沒有燃燒完全的碳和氧。把這些都考慮在一起,Howell等人估計噴射物的質量達到了2.1個太陽質量。

    但是為什么白矮星可以如此之重呢?一種可能是兩個鄰近的白矮星相互繞轉最后融合。這種情況可以通過由引力波導致的星體角動量損失產生。但是這種情況下通常會產生的是中子星而不是超新星爆發。一個可能性更大的解釋是,從普通伴星那里被白矮星吸積過來的物質導致白矮星的角動量增加,從而使得白矮星高速轉動,可以克服引力的吸引,從而使得白矮星在爆炸之前具有超過極限的質量。

    在這種情況下白矮星可以具有多大的質量取決于角動量在星體內部如何分布,也就是說白矮星作為一個整體轉動還是各不同部位的轉動不一樣。較差轉動(Differential Rotation)可以使得白矮星的質量達到四倍太陽質量之巨,考慮到從伴星吸積物質有一定限度,白矮星的質量可能被限制在大概兩倍太陽質量。

    由于多普勒效應的結果——移動物體發出的輻射譜發生變化——SN2003fg的光譜被展寬,而光譜變化的程度顯示噴射物質的速度比起典型Ia型超新星來要低。這和超極限質量白矮星是符合的,因為雖然在這種情況下核聚變產生的能量更多,而同時也造成物質脫離引力束縛需要具有更高的能量。高束縛能造成較低的噴射速度。

    為了更好地了解Ia型超新星,確定噴射物質的質量分布是非常關鍵的。比如Ia型超新星是否普遍具有超極限的質量?它們的質量在1.4到2.1倍太陽質量之間有平滑的分布?Howell等人對超新星樣例所作的一項分析表明情況可能確實如此。目前的數據和位于質量極限附近的典型Ia型超新星是相容的,而SN2003fg則顯得比較例外。這種解釋主要是受到了不同以往的超大光度以及對于光度-光變關聯關系的破壞這兩種異常現象的啟發。雖然這種Ia型超新星的亮度非常大,光變曲線的形狀則是典型的。

    但是這種Ia型超新星爆發現象的發現并不意味著用Ia型超新星作為宇宙學距離指示器有問題。如果假設SN2003fg符合光度-光變形狀經驗關系,就有可能極大地低估它的光度,從而低估它的距離。但是由于這顆超新星是如此地奇特,在一項宇宙學研究中已經將其排除。光度-光變形狀關系是經驗性的,并且對Ia型超新星的質量分布沒有人為假設。這就已經意味著這個經驗關系可以容納白矮星質量對質量極限有少許偏離,但這并不包括SN2003fg這種情形。

    無論如何, 我們可以透過觀測Ia型超新星而得知它們的絕對亮度. 一但有了絕對亮度, 和觀測到的亮度比較后, 透過平方反比律, 我們就可以算出該超新星的距離, 也就是它的母星系的距離。
    posted @ 2007-04-04 17:40 三人行,必有我師焉 閱讀(2104) | 評論 (6)編輯 收藏

    1、? 程序員不擅長交際,但擅長說服別人。

    2、? 要習慣閱讀別人的代碼。

    3、? 通過閱讀程序員的代碼,主管可以從中了解程序員的能力,工作是否出色。

    4、? 在軟件維護的過程中,被閱讀最多的代碼往往不是最好的代碼,而是最需要重構的代碼。

    5、? 如果程序根本無法正常運轉,對其效率,適應性以及生產成本的評價就毫無意義。

    6、? 什么是程序中的毛病,在很大程度上取決于人的觀點。如果這種毛病出現在你的程序中,你幾乎不可能會認為它是毛病。

    7、? 在考慮一系列的程序的開發工作效果時,需要衡量開發時間的方差,而不是只考慮平均值。一般的開發主管寧愿先做 12 個月的計劃,然后花 12 個月完成,也不愿做 6 個月的計劃,卻花了 9 個月。真正困擾人們的并非預先估計的平均開發時間,而是實際消耗時間的標準偏差。大多數人愿意每天花 10 分鐘坐車,也不愿 4 天花 1 分鐘, 1 天花 26 分鐘。盡管就平均時間而言,后者花費更少,只需要 6 分鐘。但是由于某次無法預測的長時間等待而將計劃打亂,這點好處無法彌補損失。

    8、? Fisher 基本定理:一個系統對某個特定環境的適應性越強,它適應新環境的能力也就越弱。為保證程序的效率,就必須考慮要解決問題的特殊條件。過分追求效率,只會降低適應性。但通常我們還是在二者之間做一取舍。至少,具備一種優點,要比哪種都沒有強。

    9、? 衡量程序的真正效率,并不總能用運行時間來衡量。

    10、 作為一個好程序,有一些重要的因素:該程序在多大程度上滿足功能要求;該程序的開發是否按照計劃完成,和計劃的偏差幅度有多大;當條件改變時,是否能夠修改,修改的成本有多大;程序的效率如何,為了彌補某一方面的低效率,是否犧牲了另一方面的高效率。

    11、 主管根據什么來獎勵程序員?在你的標準中是否存在相互矛盾的現象 ? 即快又好,還要易與重構,容易修改?

    12、 在你的項目中,修改或者重構是否屬于一項主要開支?

    13、 即使一個計劃不可靠,只要它是完成進度的唯一希望(盡管可能根本無法完成),程序員還是會采用它,你知道為什么嗎 ?

    14、 在進行某個項目的時候,你的腦子是否有一些明確的準則?或者是依照上級主管的看法?在項目的進行過程中,這些準則有無更改,或者你是否有辦法讓你的準則不被動搖?

    15、 在編寫程序時,你曾經有多少次想到它可能在未來會被人修改?反過來,在修改別人的程序時,你又曾經咒罵過幾次?

    16、 你是否因為追求“效率”,而延誤了工作進度?反過來,是否因為要“趕時間完成”,而沒有做到盡善盡美?

    17、 在軟件質量管理的過程中,軟件性能的偏差使一個極其重要的方面。

    18、 許多主管希望得到所有的東西,卻不知道更重要的是應該通過明智的權衡,得到自己可能得到的最佳成果。

    19、 愛因斯坦的名言:重要的是不要停止懷疑。如果不去進行嘗試,我們永遠不肯能成功。

    20、 霍桑效應:因受到他人關注而帶來提高或進步。關注手下工作的領導,將會取得更好的成績。很多負責軟件開發的主管,就是不愿意與屬下并肩工作。

    21、 最優秀的程序員同時也是那些最善于自省的。如果他們發現做錯了什么,他們會對導致這個結果的思維過程(或物理過程)進行檢討;然后,他們會采取一些相應的措施,對這個過程進行調整。這種方法稱為“根源分析”。然而更多人仍然喜歡使用“過失追究分析”方法,這種方法恰恰相反,它會誘導人們把引發問題的根源隱藏起來。

    posted @ 2007-03-18 23:52 三人行,必有我師焉 閱讀(1663) | 評論 (0)編輯 收藏

    僅列出標題
    共9頁: 上一頁 1 2 3 4 5 6 7 8 9 下一頁 
    GitHub |  開源中國社區 |  maven倉庫 |  文件格式轉換 
    主站蜘蛛池模板: 在线播放高清国语自产拍免费| 超pen个人视频国产免费观看 | 亚洲免费在线视频| 亚洲午夜福利在线视频| 中国黄色免费网站| 好爽…又高潮了免费毛片| 久久精品亚洲AV久久久无码| 国产免费人成视频在线播放播| 国产成人免费网站| 亚洲AV无码码潮喷在线观看| 国产成人亚洲综合无| 在线永久看片免费的视频| 久久亚洲国产精品五月天婷| 亚洲免费网站观看视频| 国产成人精品免费视频网页大全| 美腿丝袜亚洲综合| 国内精品一级毛片免费看| 亚洲国产精品毛片av不卡在线 | 国产成人亚洲综合网站不卡| 99免费观看视频| 国产亚洲无线码一区二区| 免费一级全黄少妇性色生活片 | 中文字幕亚洲综合久久菠萝蜜| 亚洲AV电影天堂男人的天堂| 成人免费a级毛片| 亚洲成a人片7777| 免费无码毛片一区二区APP| 亚洲国产理论片在线播放| 无码国产精品一区二区免费式芒果| 中文字幕不卡亚洲| 99re6在线精品视频免费播放| 亚洲一级毛片免观看| 免费一级一片一毛片| 美女视频免费看一区二区| 日日夜夜精品免费视频| 亚洲国产成人久久精品大牛影视| 免费无码黄十八禁网站在线观看| 黄色一级视频免费观看| 日韩亚洲Av人人夜夜澡人人爽| 日本一道本不卡免费| 亚洲无线电影官网|