• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            Creative Commons License
            本Blog采用 知識共享署名-非商業性使用-禁止演繹 3.0 Unported許可協議 進行許可。 —— Fox <游戲人生>

            游戲人生

            游戲人生 != ( 人生 == 游戲 )
            站點遷移至:http://www.yulefox.com。請訂閱本博的朋友將RSS修改為http://feeds.feedburner.com/yulefox
            posts - 62, comments - 508, trackbacks - 0, articles - 7

            調整思路——2008年繼續努力

            Posted on 2008-01-02 02:43 Fox 閱讀(786) 評論(6)  編輯 收藏 引用 所屬分類: G游戲編程

            Author: Fox

            元旦放假3天,本來想把前面寫的一個存在線程安全隱患的模塊推倒重來的,可是改著改著就覺得不對勁了。

            既然是返工,就想盡量把現在的理解完全加進去,讓后面的人看了不要罵??墒窍氚褞浊械拇a改得面目全非并且更加安全準確也并不是一件容易的事,雖然對于功能和邏輯的認識比以前要清晰的多。

            拿到一個新的模塊,上面一般會給個大致的deadline。除非你對這個模塊和整個項目的依賴關系(接口、邏輯、功能)有很好的把握,否則,你根本不知道到底有多少東西是已經實現的,有多少東西是可以復用的,有多少東西是需要修改的,有多少東西是要重寫的,有多少東西是要新加的,僅僅根據需求預估的進度是不可能恰到好處的。而脫離了整個項目實現的模塊是非??赡艹鰡栴}的,尤其是在使用多線程的項目中。

            當我的這個模塊完成并上馬之后,我沾沾自喜的跟上面說,應該是不會有問題了,上面跟我說了一句:如果不出問題就是奇跡了,我當時頗不以為然。在后面一兩周之內真的就是沒有什么問題,我真想告訴他是我創造了奇跡。

            “奇跡”在2007年的最后一周破滅了。在我從西嶺雪山回來的那天,為了增加新功能把代碼修改了一些,結果第二天更新之后,服務器就老是有問題,找了一下午,才發現在修改代碼的時候居然忘記對一個pointer做NULL判定!我心想,這種錯誤居然都出來了!死了算了!而且這個問題出在非主線程中。然后就和同事在考慮,這個東西如果線程同步出現問題,你就是每次使用前都做NULL判定也沒用,所以就決定把這個模塊重寫了。

            在這兒我就不想就線程安全問題多說了,以后想好了再專門去寫點多線程的東西吧,今天只是想說點瑣碎的東西。

            因為是放假,心思未必就全部放在上面了,代碼沒改多少,倒是玩了很長時間的游戲。后來想想,也不全是時間問題,幾千行的代碼改來改去,難保不出現更多的問題。必須把它當作一個新的模塊去寫,先要把邏輯結構完全理出來,能多細化就多細化,最好能夠精確到變量的使用,而且把文檔做細,這樣就可以在寫文檔的過程中把問題盡可能想全想清楚。改代碼先改文檔,這幾乎是所有學過軟件工程并寫過項目的同學都能認識并理解的常識,可是在實際工作中,上有任務催趕,下有閑心雜念,很難把文檔和注釋寫好。而做不到這一點的話,你就不敢保證你的模塊不出差錯。

            所以,對于一個一般的需求,如果deadline是2個月的話。讀需求、評估依賴關系、量進度要花掉1周,畫邏輯結構、寫文檔要花掉3周,相當于前面一半的時間沒有動手寫代碼,然后寫代碼大概只用1周,甚至更少,其他時間就留給測試和修改文檔、代碼了。從軟件工程的角度,這樣的分配是合理的,而且是應該的,但到了實際項目里面,又做不到!看來,不管是manager,還是coder,都不能急,軟件工程不能白學了。

            我發現,我的軟件工程就是白學了,以后得改改。

            /*****************************************************************************
            ?不想回頭去動以前的代碼,每次看以前寫過的東西,都有一種想把它徹底刪除的沖動。
            ?把需求看好、文檔寫好、時間安排好,這才是硬道理……

            ?畢竟是新年,還是祝大家:新年快樂!
            ?重要的是,新的一年,別荒廢了……
            *****************************************************************************/

            Feedback

            # re: 調整思路——2008年繼續努力  回復  更多評論   

            2008-01-02 11:45 by eXile
            這個問題, 稱之為重構.
            在沒有單元測試的保證下, 進行重構是一種危險的行為. 正如你說的一樣, 要指望不出問題, 那是奇跡. 這也不能怪軟件工程沒學好, 因為我們學的軟件工程本身就是有缺陷的.

            "把需求看好、文檔寫好、時間安排好,這才是硬道理…… "
            這是不對的, 設計的唯一不變的特點就是: 它總是在變化.
            --是不是有點有饒口 :) , 這是<<設計模式Head First>>中的一句話.
            所以我們做的, 是如何應對變化.
            推薦看一下: <<重構,改善既有代碼的設計>>



            # re: 調整思路——2008年繼續努力  回復  更多評論   

            2008-01-02 12:41 by Fox
            @eXile
            呵呵,謝謝!
            設計模式、重構、重構與模式,我都看過,只是在實際工作中很多東西被我們自己打了折扣……而且,上面的東西,看看開闊開闊思路還是好的。
            設計總在變化這句話我也依稀有點印象,但不變的東西更多,你總不能讓玩家今天這樣做明天那樣做啊……

            # re: 調整思路——2008年繼續努力  回復  更多評論   

            2008-01-02 13:52 by eXile
            我覺得, 好象你理解的設計總在變化這句話有偏差, 設計變化的原因主要有兩點:
            1) 需求的變化, 主要是系統功能的改進, 擴充, 版本的升級
            2) 需求的細化, 主要是需求本身不會考慮到所有的實現細節, 在實現時才發現有設計不當的地方.

            # re: 調整思路——2008年繼續努力  回復  更多評論   

            2008-01-02 14:01 by eXile
            另外, 保證你的模塊不出差錯, 不是靠文檔和注釋, 而是靠測試,
            文檔和注釋,也分兩種, 一種是給自己看的, 一種是給別人看的, 這兩種寫法是不一樣的,
            對于寫給自己看的文檔, 如果會影響開發進度的話,為什么要寫它呢?這說明寫文檔的方法不對.

            # re: 調整思路——2008年繼續努力  回復  更多評論   

            2008-01-02 18:06 by Fox
            @eXile
            有道理~~~文檔寫起來痛苦啊~~~~~
            還是要適當的寫點,適合自己吧

            # re: 調整思路——2008年繼續努力  回復  更多評論   

            2008-01-05 17:06 by fallhunter
            從二位的討論中受益,感謝~~
            亚洲日韩欧美一区久久久久我| 久久婷婷色香五月综合激情| 人妻精品久久久久中文字幕一冢本 | 精品一区二区久久| 天天爽天天爽天天片a久久网| 欧美精品一本久久男人的天堂| 久久国产成人| 亚洲va中文字幕无码久久| 久久国产高清字幕中文| 久久久久久久综合狠狠综合| 国内精品久久久久影院免费| 亚洲美日韩Av中文字幕无码久久久妻妇| 亚洲乱码中文字幕久久孕妇黑人| 久久―日本道色综合久久| 久久人人爽人人爽人人片AV不 | 精品国产91久久久久久久a| 精品伊人久久久| 久久精品中文字幕一区| 欧美喷潮久久久XXXXx| 久久本道久久综合伊人| 国产精品女同久久久久电影院| 久久人人青草97香蕉| 国产精品免费久久久久电影网| 色偷偷久久一区二区三区| 波多野结衣久久| 久久久久婷婷| 久久精品一区二区三区中文字幕| 久久ZYZ资源站无码中文动漫| 久久久久免费精品国产| 色婷婷狠狠久久综合五月| 伊人久久综在合线亚洲2019| 国产精品99久久免费观看| 亚洲AV日韩精品久久久久| 香蕉久久夜色精品国产2020| 久久久99精品成人片中文字幕 | 久久夜色撩人精品国产小说| 国产精品久久久久天天影视| 久久婷婷成人综合色综合| 性做久久久久久久| 久久精品中文无码资源站| 国产亚洲精久久久久久无码77777 国产亚洲精品久久久久秋霞 |