• <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采用 知識共享署名-非商業(yè)性使用-禁止演繹 3.0 Unported許可協議 進行許可。 —— Fox <游戲人生>

            游戲人生

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

            調整思路——2008年繼續(xù)努力

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

            Author: Fox

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

            既然是返工,就想盡量把現在的理解完全加進去,讓后面的人看了不要罵。可是想把幾千行的代碼改得面目全非并且更加安全準確也并不是一件容易的事,雖然對于功能和邏輯的認識比以前要清晰的多。

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

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

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

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

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

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

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

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

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

            Feedback

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

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

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



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

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

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

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

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

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

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

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

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

            2008-01-05 17:06 by fallhunter
            從二位的討論中受益,感謝~~
            久久亚洲国产精品成人AV秋霞| 精品久久久久久| 精品熟女少妇aⅴ免费久久| 粉嫩小泬无遮挡久久久久久| 精品人妻伦九区久久AAA片69| 久久综合成人网| 久久夜色撩人精品国产| 精品国产婷婷久久久| 国内精品久久久久久久coent| 狠狠人妻久久久久久综合蜜桃| 99精品久久久久久久婷婷| 久久精品国产亚洲Aⅴ蜜臀色欲 | 大伊人青草狠狠久久| 国内精品人妻无码久久久影院| 99久久这里只有精品| 久久e热在这里只有国产中文精品99| 99久久精品国产一区二区三区| 久久九九免费高清视频| 久久亚洲AV无码精品色午夜| 性高湖久久久久久久久| av无码久久久久不卡免费网站 | 精品蜜臀久久久久99网站| 91精品国产91久久综合| 久久久精品人妻无码专区不卡| 一本久道久久综合狠狠躁AV| 一本色道久久88精品综合| 久久久久久午夜成人影院 | 久久久久久久人妻无码中文字幕爆 | 国产午夜免费高清久久影院 | 色综合久久中文字幕无码| 亚洲狠狠综合久久| 武侠古典久久婷婷狼人伊人| 亚洲αv久久久噜噜噜噜噜| 国产亚州精品女人久久久久久| 欧美久久亚洲精品| 久久99精品国产自在现线小黄鸭| 国产成人精品久久亚洲高清不卡 国产成人精品久久亚洲高清不卡 国产成人精品久久亚洲 | 色综合久久精品中文字幕首页| 久久中文字幕精品| 国产叼嘿久久精品久久| 久久丫精品国产亚洲av不卡|