• <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>

            什么是BETA,RC,ALPHA版

            1. 軟件版本階段說明
            * Alpha版: 此版本表示該軟件在此階段主要是以實(shí)現(xiàn)軟件功能為主,通常只在軟件開發(fā)者內(nèi)部交流,一般而言,該版本軟件的Bug較多,需要繼續(xù)修改。
            * Beta版: 該版本相對于α版已有了很大的改進(jìn),消除了嚴(yán)重的錯(cuò)誤,但還是存在著一些缺陷,需要經(jīng)過多次測試來進(jìn)一步消除,此版本主要的修改對像是軟件的UI。
            * RC版: 該版本已經(jīng)相當(dāng)成熟了,基本上不存在導(dǎo)致錯(cuò)誤的BUG,與即將發(fā)行的正式版相差無幾。
            * Release版: 該版本意味“最終版本”,在前面版本的一系列測試版之后,終歸會有一個(gè)正式版本,是最終交付用戶使用的一個(gè)版本。該版本有時(shí)也稱為標(biāo)準(zhǔn)版。一般情況下,Release不會以單詞形式出現(xiàn)在軟件封面上,取而代之的是符號(R)。

            2. 版本命名規(guī)范
            軟件版本號由四部分組成,
            第一個(gè)1為主版本號,第二個(gè)1為子版本號,第三個(gè)1為階段版本號,第四部分為日期版本號加希臘字母版本號,
            希臘字母版本號共有5種,分別為:base、alpha、beta、RC、release。
            例如:1.1.1.051021_beta。

            3. 版本號定修改規(guī)則
            * 主版本號(1):當(dāng)功能模塊有較大的變動,比如增加多個(gè)模塊或者整體架構(gòu)發(fā)生變化。此版本號由項(xiàng)目決定是否修改。
            * 子版本號(1):當(dāng)功能有一定的增加或變化,比如增加了對權(quán)限控制、增加自定義視圖等功能。此版本號由項(xiàng)目決定是否修改。
            * 階段版本號(1):一般是 Bug 修復(fù)或是一些小的變動,要經(jīng)常發(fā)布修訂版,時(shí)間間隔不限,修復(fù)一個(gè)嚴(yán)重的bug即可發(fā)布一個(gè)修訂版。此版本號由項(xiàng)目經(jīng)理決定是否修改。
            * 日期版本號(051021):用于記錄修改項(xiàng)目的當(dāng)前日期,每天對項(xiàng)目的修改都需要更改日期版本號。此版本號由開發(fā)人員決定是否修改。
            * 希臘字母版本號(beta):此版本號用于標(biāo)注當(dāng)前版本的軟件處于哪個(gè)開發(fā)階段,當(dāng)軟件進(jìn)入到另一個(gè)階段時(shí)需要修改此版本號。此版本號由項(xiàng)目決定是否修改。

            4. 文件命名規(guī)范
            文件名稱由四部分組成:
            第一部分為項(xiàng)目名稱,第二部分為文件的描述,第三部分為當(dāng)前軟件的版本號,第四部分為文件階段標(biāo)識加文件后綴,
            例如:項(xiàng)目外包平臺測試報(bào)告1.1.1.051021_beta_b.xls,此文件為項(xiàng)目外包平臺的測試報(bào)告文檔,版本號為:1.1.1.051021_beta。
            如果是同一版本同一階段的文件修改過兩次以上,則在階段標(biāo)識后面加以數(shù)字標(biāo)識,每次修改數(shù)字加1,
            項(xiàng)目外包平臺測試報(bào)告1.1.1.051021_beta_b1.xls。
            當(dāng)有多人同時(shí)提交同一份文件時(shí),可以在階段標(biāo)識的后面加入人名或縮寫來區(qū)別,
            例如:項(xiàng)目外包平臺測試報(bào)告 1.1.1.051021_beta_b_LiuQi.xls。
            當(dāng)此文件再次提交時(shí)也可以在人名或人名縮寫的后面加入序號來區(qū)別,
            例如:項(xiàng)目外包平臺測試報(bào)告1.1.1.051021_beta_b_LiuQi2.xls。

            5. 版本號的階段標(biāo)識
            軟件的每個(gè)版本中包括11個(gè)階段,詳細(xì)階段描述如下:
            階段名稱 階段標(biāo)識
            需求控制          a
            設(shè)計(jì)階段          b
            編碼階段          c
            單元測試          d
            單元測試修改 e
            集成測試          f
            集成測試修改 g
            系統(tǒng)測試          h
            系統(tǒng)測試修改 i
            驗(yàn)收測試          j
            驗(yàn)收測試修改 k

            posted @ 2008-11-03 19:10 Randy 閱讀(297) | 評論 (0)編輯 收藏

            人生最大的敵人

            狹隘的偏見,狂妄的驕傲,無謂的羞恥

            posted @ 2008-10-23 09:21 Randy 閱讀(98) | 評論 (0)編輯 收藏

            僅通過崩潰地址找出源代碼的出錯(cuò)行

            VC2005中 首先打開 C/C++-輸出文件-匯編輸出-Assembly,Machine code, and source 然后打開 鏈接器-調(diào)試-生成映射文件 “非法操作”對話框出現(xiàn)時(shí),記錄下產(chǎn)生崩潰的地址 在Map文件 Rva+Base 中找到與崩潰地址最接近但是小于它的地址 那個(gè)地址的所對應(yīng)的函數(shù),基本就是崩潰代碼的入口函數(shù) 記錄下崩潰代碼入口函數(shù)的名稱和地址 在COD文件中,查找入口函數(shù)起始位置, 實(shí)際代碼偏移地址 = 崩潰代碼地址 - 入口函數(shù)地址 在入口函數(shù)地址開始位置,偏移實(shí)際代碼偏移地址后。就可以定位到出錯(cuò)的代碼行了 經(jīng)驗(yàn)證。此方法有效。哈哈。又學(xué)會了一招

            posted @ 2008-10-21 20:17 Randy 閱讀(173) | 評論 (0)編輯 收藏

            volatile

            盡管C和C++標(biāo)準(zhǔn)對于線程都明顯的“保持沉默”,但它們以volatile關(guān)鍵字的形式,確實(shí)為多線程保留了一點(diǎn)特權(quán)。
             就象大家更熟悉的const一樣,volatile是一個(gè)類型修飾符(type modifier)。
            它是被設(shè)計(jì)用來修飾被不同線程訪問和修改的變量。
            如果沒有volatile,基本上會導(dǎo)致這樣的結(jié)果:要么無法編寫多線程程序,要么編譯器失去大量優(yōu)化的機(jī)會。
            class Gadget
             

            publicvoid Wait() 

            while (!flag_) 

            Sleep(
            1000); 
            // sleeps for 1000 milliseconds 
            }
             
            }
             
            void Wakeup() 

            flag_ 
            = true
            }

              
            private:
             
            bool flag_; 
            }

            上面代碼中Gadget::Wait的目的是每過一秒鐘去檢查一下flag_成員變量,當(dāng)flag_被另一個(gè)線程設(shè)為true時(shí),該函數(shù)才會返回。
            然而,這個(gè)Wait函數(shù)是錯(cuò)誤的。
            假設(shè)編譯器發(fā)現(xiàn)Sleep(1000)是調(diào)用一個(gè)外部的庫函數(shù),它不會改變成員變量flag_,那么編譯器就可以斷定它可以把flag_緩存在寄存器中,以后可以訪問該寄存器來代替訪問較慢的主板上的內(nèi)存。
            這對于單線程代碼來說是一個(gè)很好的優(yōu)化,但是在現(xiàn)在這種情況下,
            它破壞了程序的正確性:當(dāng)你調(diào)用了某個(gè)Gadget的Wait函數(shù)后,即使另一個(gè)線程調(diào)用了Wakeup,Wait還是會一直循環(huán)下去。
            這是因?yàn)閒lag_的改變沒有反映到緩存它的寄存器中去。編譯器的優(yōu)化未免有點(diǎn)太……樂觀了。

            在大多數(shù)情況下,把變量緩存在寄存器中是一個(gè)非常有價(jià)值的優(yōu)化方法,如果不用的話很可惜。
            C和C++給你提供了顯式禁用這種緩存優(yōu)化的機(jī)會。如果你聲明變量是使用了volatile修飾符,
            編譯器就不會把這個(gè)變量緩存在寄存器里——每次訪問都將去存取變量在內(nèi)存中的實(shí)際位置。

            這樣你要對Gadget的Wait/Wakeup做的修改就是給flag_加上正確的修飾:

            class Gadget 

            public
            private
            volatile bool flag_;
             }

            posted @ 2008-10-13 17:27 Randy 閱讀(199) | 評論 (0)編輯 收藏

            ios_base::binary

            文本文件有一個(gè)并非必須使用的文件結(jié)束符0x26,但行結(jié)束符是必須遵守的\t\n或者\(yùn)0x0d\0x0a,否則就不為文本文件.

            posted @ 2008-10-12 18:09 Randy 閱讀(692) | 評論 (0)編輯 收藏

            破窗效應(yīng)

            一個(gè)碎了一塊玻璃的房子,如果沒有及時(shí)修補(bǔ),很快其他的玻璃也會被打碎。 一段使用了全局變量和硬編碼的代碼,很快會充斥大量的全局變量和硬編碼。

            posted @ 2008-09-23 21:34 Randy 閱讀(185) | 評論 (0)編輯 收藏

            腳本

            終于把UI的事件處理完全的使用了腳本來處理了,現(xiàn)在變成了UI屬性信息由XML文件控制,UI邏輯由腳本來控制
            終于不關(guān)程序的事了,程序只需要注冊些UI所需要的API,就完全搞定,爽啊。
            體系是在組件庫中設(shè)定Script模型,然后在UIBase中實(shí)例一個(gè)腳本模型,并設(shè)置三種事件處理模型
            第一種綁定靜態(tài)函數(shù)回調(diào)
            第二種接口腳本回調(diào)
            第三種事件腳本回調(diào)

            外部在啟動前,注冊相應(yīng)腳本所需API進(jìn)入程序,當(dāng)某個(gè)UI事件被觸發(fā)時(shí),分派器根據(jù)當(dāng)前腳本模型決定尋找接口腳本還是尋找事件腳本
            如果找不到相關(guān)處理方法,再尋找靜態(tài)回調(diào)。

            同一程序中支持多個(gè)腳本模型實(shí)例.

            腳本模型提供下列接口
            設(shè)置腳本內(nèi)變量值
            得到腳本內(nèi)變量值
            執(zhí)行腳本內(nèi)某函數(shù)
            注冊程序某函數(shù)到腳本中
                 ---靜態(tài)函數(shù)
                      ---成員函數(shù)

            測試以完全通過,以后再發(fā)現(xiàn)問題就繼續(xù)寫咯


            posted @ 2008-07-11 19:52 Randy 閱讀(193) | 評論 (1)編輯 收藏

            學(xué)子

            04年~08年高校錄取計(jì)劃一覽:
            2004年:錄取420萬人 
            2005年:錄取504萬人
            2006年:錄取530萬人
            2007年,錄取567萬人
            2008年,計(jì)劃錄取599萬人,考生1050萬。

            現(xiàn)狀:
            2007年尚有70萬-80萬大學(xué)生未能就業(yè)(04年錄取生)
            今中國高校畢業(yè)生將達(dá)到創(chuàng)紀(jì)錄的559萬人(05年錄取生)
            因此2008年實(shí)際需要就業(yè)的大學(xué)生將超過600萬人(04~05級大學(xué)錄取生)

            這么多年的教育改革,確實(shí)使我們的教育普及率達(dá)到了一個(gè)前所未有的高度.
            但教育體制的落后使學(xué)生們在學(xué)校根本無法接受到與社會合拍的培育.
            為廣大苦讀的欣欣學(xué)子們嘆息,未來之路看來并不平坦啊!


            posted @ 2008-07-10 19:54 Randy 閱讀(157) | 評論 (0)編輯 收藏

            構(gòu)思腳本體系

            隨著項(xiàng)目在VC2005下的逐步穩(wěn)定,現(xiàn)在也徹底的更換到了VC2005
            之前在寫UI管理器時(shí),,由于時(shí)間不夠,只得將事件回調(diào)暫時(shí)以直接注冊函數(shù)地址的形式注冊進(jìn)
            UI管理器,看起來極度不爽,所以最近又回到了原來的問題,框架是否需要加入腳本支持,如
            需要,是哪一部份需要,以現(xiàn)在的情況來看,UI體系是唯一需要腳本支持的,但是也曾徘徊過
            究竟是將操作類注冊進(jìn)腳本,還是在程序內(nèi)部封裝API,再注冊API進(jìn)入腳本,現(xiàn)在也是決定了
            實(shí)際的邏輯信息是不應(yīng)該由腳本來進(jìn)行控制的,而腳本確可以控制邏輯與邏輯之間的持續(xù)和關(guān)系
            所以決定今天寫出一個(gè)腳本體系用來真正完善UI體系。腳本的話,,,暫定也使用Lua吧,主要是
            它比較小。。。一切。也都要等于寫完才知道

            posted @ 2008-07-10 09:47 Randy 閱讀(137) | 評論 (0)編輯 收藏

            更換VC2005

            今天花了半天時(shí)間,將開發(fā)環(huán)境更換為了VC2005,不容易啊。。終于可以看迭代器了
            記下一些移植中解決的問題
            Log4cplus1.0.2 要在vs2005上編譯需要將include中的stringhelper.h的118行左右添加如下代碼:

            typedef std::output_iterator_tag iterator_category;

            并且將128行左右的__value改名,例如改成__rvalue


            hash_map
            從std 換到了 stdext

            VC++ 2005中fstream對象無法訪問中午路徑下的文件

            在用ifstream和ofstream打開文件前設(shè)置全局locale為本地環(huán)境,打開文件后再設(shè)置回去。                          

                ofstream writefile;
                string filename=("d:\我的文檔\測試.txt");
                locale loc = locale::global(locale("")); //要打開的文件路徑包含中文,設(shè)置全局locale為本地環(huán)境
                writefile.open(filename.c_str(),ios::out); //打開文件
                locale::global(loc);//恢復(fù)全局locale

            用locale對象的name方法可以看到,通過locale("")構(gòu)造出的locale對象的 name為"Chinese_People's Republic of China.936",而原始的locale對象的name為"C",也就是缺省的ANSI_C公約。

            注意:如果使用locale loc = locale::global(locale(""))設(shè)置全局locale后沒有用 locale::global(loc)恢復(fù)的話,那么在程序后面的cout語句就不能輸出中午了,雖然這時(shí)候操作中文文件沒有問題,但是這也是很容易讓 人掉入陷阱的地方,應(yīng)該值得注意。

            posted @ 2008-06-28 00:56 Randy 閱讀(261) | 評論 (0)編輯 收藏

            僅列出標(biāo)題
            共4頁: 1 2 3 4 
            <2009年6月>
            31123456
            78910111213
            14151617181920
            21222324252627
            2829301234
            567891011

            導(dǎo)航

            統(tǒng)計(jì)

            常用鏈接

            留言簿(3)

            隨筆檔案

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            97视频久久久| 7国产欧美日韩综合天堂中文久久久久 | 欧美综合天天夜夜久久| 久久久精品人妻一区二区三区蜜桃| 久久精品国产精品青草app| 久久亚洲中文字幕精品有坂深雪| 2021国内久久精品| 国产精品99久久久精品无码| 亚洲国产一成久久精品国产成人综合 | 久久精品成人| 欧美激情精品久久久久久久九九九 | 97精品国产91久久久久久| 久久久久久久亚洲Av无码| 97久久精品午夜一区二区| 99热精品久久只有精品| 亚洲国产成人久久精品99| 久久人人爽人人爽人人片AV高清 | 久久久国产打桩机| 久久久久久亚洲Av无码精品专口| 久久99国产精品久久99| 无码人妻久久一区二区三区蜜桃| 久久无码一区二区三区少妇 | 99热都是精品久久久久久| 香蕉99久久国产综合精品宅男自 | 精品久久久久久亚洲| 精品欧美一区二区三区久久久 | 久久天天日天天操综合伊人av| 日日狠狠久久偷偷色综合96蜜桃| 99蜜桃臀久久久欧美精品网站| 国产亚洲欧美精品久久久| 色8激情欧美成人久久综合电| 亚洲国产精品久久电影欧美| 久久亚洲高清观看| 久久天天躁狠狠躁夜夜躁2014| 国产精品久久久久9999| 久久国产亚洲精品| 国产福利电影一区二区三区,免费久久久久久久精 | 久久亚洲AV成人无码| 国产成人精品久久综合 | 四虎国产精品成人免费久久| 久久中文娱乐网|