• <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>
            隨筆-60  評(píng)論-98  文章-0  trackbacks-0
            re: Visual Studio VS C++Builder07 不同的公司,同樣的Bug 創(chuàng)建更好的解決方案 2010-02-03 14:38
            @試試其他的
            int和unsigned int表達(dá)范圍一樣嗎?
            re: Visual Studio VS C++Builder07 不同的公司,同樣的Bug 創(chuàng)建更好的解決方案 2010-02-03 12:06
            @clear
            2*1024*1024*1024,距離32位溢出,還有50步呢
            re: Visual Studio VS C++Builder07 不同的公司,同樣的Bug 創(chuàng)建更好的解決方案 2010-02-02 20:21
            // 更為離譜的事情發(fā)生了,同為10*1024*1024的兩個(gè)數(shù)值,由于一個(gè)是成員變量,一個(gè)是臨時(shí)變量,右移之后結(jié)果居然不同

            DWORD64 dw64Tmp = m_dw64FileSize;
            UINT dwTmp2 = (m_dw64FileSize>>32); // 還是10*1024*1024
            UINT dwTmp1 = (dw64Tmp>>32); // 0
            re: hello,everyone 創(chuàng)建更好的解決方案 2009-06-19 09:22
            處女地,哦耶~~
            re: 一年過(guò)去了... 創(chuàng)建更好的解決方案 2009-05-25 10:10
            都是這么過(guò)來(lái)的

            很快你就會(huì)發(fā)現(xiàn)更好玩的東西,enjoy~~
            re: 獲取版本信息Version的完整代碼(從msdn擴(kuò)展而來(lái)) 創(chuàng)建更好的解決方案 2009-02-05 19:42
            // 這段代碼可以讀出多數(shù)exe文件的版本信息,無(wú)法讀取dll版本信息
            String GetVersionFromPath(String IDEPath)
            {
            DWORD dwLen = 0;
            char* lpData = NULL;

            dwLen = GetFileVersionInfoSize(IDEPath.c_str(), 0);
            if (0 == dwLen)
            return String("");

            lpData =new char [dwLen+1];

            if(!GetFileVersionInfo(IDEPath.c_str(), 0, dwLen, lpData))
            {
            delete lpData;
            return String("");
            }

            LPVOID lpBuffer = NULL;
            UINT uLen = 0;

            BOOL bSuccess = VerQueryValue(lpData,
            TEXT("\\StringFileInfo\\040904b0\\FileVersion"), //0409英文,0804中文
            //04b0即1252,ANSI
            //可以從ResourceView中的Version中BlockHeader中看到
            //可以測(cè)試的屬性
            /*
            CompanyName
            FileDescription
            FileVersion
            InternalName
            LegalCopyright
            OriginalFilename
            ProductName
            ProductVersion
            Comments
            LegalTrademarks
            PrivateBuild
            SpecialBuild
            */
            &lpBuffer,
            &uLen);
            if (!bSuccess)
            {
            delete lpData;
            return String("");
            }
            String Ret = (char*)lpBuffer;
            // Ret.Replace(',', '.');
            // Ret.Replace(' ', '0');

            delete [] lpData;
            return Ret;
            }
            re: 初始化const, static, const static, static const成員變量 創(chuàng)建更好的解決方案 2009-01-12 08:02
            const + static 即使static成員函數(shù)也無(wú)法改變其值@到底
            re: 數(shù)值轉(zhuǎn)換的想當(dāng)然 創(chuàng)建更好的解決方案 2008-08-18 11:08
            文中有誤:0.9999999999999996才會(huì)強(qiáng)轉(zhuǎn)出1來(lái)
            通過(guò)添加DLL/源碼測(cè)試開(kāi)關(guān),開(kāi)發(fā)人員和測(cè)試人員共用一套測(cè)試代碼,開(kāi)始走上靠譜的道路。@創(chuàng)建更好的解決方案
            我的想法是由開(kāi)發(fā)組提供模塊代碼的.obj文件和測(cè)試用例的源文件,這樣測(cè)試人員可以隨時(shí)構(gòu)建出自己需要運(yùn)行的版本,感覺(jué)上就像手里有模塊的源代碼一樣,只是不能進(jìn)去debug。

            這種設(shè)想有點(diǎn)問(wèn)題。

            首先obj文件沒(méi)用,因?yàn)闇y(cè)試用例的源文件包含了接口文件和實(shí)現(xiàn)文件的頭文件,hoho,更改之后的compile會(huì)把大家都牽扯進(jìn)來(lái)。

            修改一下:通過(guò)dunit框架load dll并導(dǎo)出對(duì)象,供測(cè)試組調(diào)試測(cè)試用例之用。這樣的測(cè)試用例不僅可以用來(lái)測(cè)試dll,也可以用來(lái)做單元測(cè)試。
            是啊,通過(guò)半個(gè)月的溝通,在測(cè)試組碼了兩個(gè)人,負(fù)責(zé)完善測(cè)試用例的,我先趟趟水,隨時(shí)交流進(jìn)展。@LOGOS
            大家處境都差不多,探索出一條好的工作流程,可以添加測(cè)試用例不再那樣痛苦,才是解決的辦法。靠一己之力,過(guò)于綿薄了吧。@LOGOS
            @火夜風(fēng)舞
            本文是讀書筆記,心得,非譯文。
            多交流,多讀書,測(cè)試+重構(gòu),此為程序員修煉之道,呵呵。
            @土仔
            這位兄臺(tái)誤會(huì)了,cnpack的是IDE專家,接口的命名,IDE專家?guī)筒簧厦Α?/div>
            re: 讀《修改代碼的藝術(shù)》 創(chuàng)建更好的解決方案 2008-02-26 08:29
            @turingbook
            原來(lái)是劉主編,久仰久仰。
            從卓越抓了一本,果然質(zhì)地優(yōu)良。
            小弟讀書時(shí)也曾為電子工業(yè)出版社譯過(guò)一本大部頭的國(guó)外教材。
            re: 我和充斥臭味代碼的戰(zhàn)爭(zhēng) 創(chuàng)建更好的解決方案 2008-01-22 17:33
            @abettor
            割了吧,都燒焦了。
            re: 我和充斥臭味代碼的戰(zhàn)爭(zhēng) 創(chuàng)建更好的解決方案 2008-01-22 17:29
            @歲月流冰
            呵呵,8k行是不是太重量了些。
            我看到2k行以上的代碼都會(huì)心有戚戚焉。
            所以都控制在2k以內(nèi)吧(或許我們的項(xiàng)目規(guī)模就不夠大吧)。
            re: 我和充斥臭味代碼的戰(zhàn)爭(zhēng) 創(chuàng)建更好的解決方案 2008-01-15 22:01
            @菌子
            那要看你對(duì)代碼的要求了。
            代碼能工作,沒(méi)錯(cuò)。
            但是這是基本的要求,可擴(kuò)展性、可移植性、可測(cè)試性也要考慮啊。
            這些指標(biāo)在團(tuán)隊(duì)中尤為重要。
            re: 我和充斥臭味代碼的戰(zhàn)爭(zhēng) 創(chuàng)建更好的解決方案 2008-01-15 08:01
            @菌子
            好的模塊你動(dòng)它干嘛?
            有臭味的模塊,不動(dòng),留它干嘛?
            re: 我和充斥臭味代碼的戰(zhàn)爭(zhēng) 創(chuàng)建更好的解決方案 2008-01-14 12:17
            @&lt;a href=http://minidx.com&gt;minidxer&lt;/a&gt;
            你可是我見(jiàn)過(guò)的最細(xì)心的管理員啊,呵呵
            re: 我和充斥臭味代碼的戰(zhàn)爭(zhēng) 創(chuàng)建更好的解決方案 2008-01-14 08:33
            @小笨象
            我剛工作半年多點(diǎn),代碼寫的少了一些。到了10萬(wàn)行的時(shí)候,或許會(huì)提高一下層次。
            re: 我和充斥臭味代碼的戰(zhàn)爭(zhēng) 創(chuàng)建更好的解決方案 2008-01-14 08:31
            @LOGOS
            書中講的大都是以有測(cè)試的系統(tǒng)為前提,但是以前老前輩們寫的程序,連注釋都少的可憐,基本上不考慮封裝,改起來(lái)真是痛苦啊!

            re: 舊語(yǔ) 創(chuàng)建更好的解決方案 2007-12-22 16:44
            歐陽(yáng):你幸福是因?yàn)槟阌廾痢?/div>
            re: sony筆試題-3 費(fèi)波那其數(shù)列 創(chuàng)建更好的解決方案 2007-10-31 13:15
            @張旋
            呵呵,現(xiàn)在改用vector了,比指針安全,清理起來(lái)還方便,你說(shuō)呢,呵呵
            re: GOOGLE筆試題之找零錢 創(chuàng)建更好的解決方案 2007-10-12 16:20
            http://blog.csdn.net/paradise80/archive/2004/12/05/205519.aspx
            田東專欄修改后的C#代碼

            using System;
            using System.Collections.Generic;
            using System.Linq;
            using System.Text;

            namespace Implememtations
            {
            /// <summary>
            /// Calculates the minimum count of change.
            /// </summary>
            public class MoneyChanger
            {
            /// <summary>
            /// Initializes an instance of <c>MoneyChange</c> with par values.
            /// </summary>
            /// <param name="parValues">Par values(e.g 10, 5, 2, 1 for RMB).</param>
            public MoneyChanger(int[] parValues)
            {
            if (parValues == null)
            {
            throw new ArgumentNullException("parValues");
            }

            this.parValues = this.FilterParValues(parValues);

            if (this.parValues.Count == 0)
            {
            throw new ArgumentException("Invalid par values");
            }
            }

            /// <summary>
            /// Gets change with minimum count of par values.
            /// </summary>
            /// <param name="amount">Total amount to be changed.</param>
            /// <returns>(parValue, count) pairs.</returns>
            public virtual Dictionary<int, int> Change(int amount)
            {
            Dictionary<int, int> result = new Dictionary<int, int>(this.parValues.Count);

            foreach (int par in this.parValues)
            {
            result.Add(par, amount / par);
            amount %= par;
            }

            return result;
            }

            #region Fields

            /// <summary>
            /// Stores par values.
            /// </summary>
            private List<int> parValues;

            #endregion Fields

            #region Supports Methods

            /// <summary>
            /// Filters par values with following rules:
            /// 1. All values are greater then zero.
            /// 2. All have different value.
            /// 3. Sorted in descending order.
            /// </summary>
            /// <param name="parValues">Array of par values.</param>
            /// <returns>Filtered par values.</returns>
            private List<int> FilterParValues(int[] parValues)
            {
            List<int> temp = new List<int>(parValues.Length);
            List<int> list = new List<int>(parValues.Length);

            // Filters positive integers.
            foreach (int par in parValues)
            {
            if (par > 0)
            {
            temp.Add(par);
            }
            }

            // Sorts values.
            temp.Sort();

            // Adds to list in descending order.
            for (int i = temp.Count - 1; i >= 0; i--)
            {
            if (list.Count > 0)
            {
            // Ingores the duplicate value.
            if (temp[i] == list[list.Count - 1])
            {
            continue;
            }
            }

            list.Add(temp[i]);
            }

            return list;
            }

            #endregion Supports Methods
            }
            }
            re: UI美學(xué) 創(chuàng)建更好的解決方案 2007-10-12 16:05
            我們常常挖空心思編寫代碼,期待給用戶驚喜

            對(duì)的,常常的,用戶也能從其中收獲驚喜

            更常見(jiàn)的情況是,用戶很難fall in love with software at first glance

            難以上手的軟件,功能再?gòu)?qiáng)大,也是Unfriendly的

            是不符合UI美學(xué)的
            欧美激情一区二区久久久| 日本福利片国产午夜久久| 久久精品国产91久久综合麻豆自制 | 狠狠色婷婷久久一区二区 | 亚洲国产成人乱码精品女人久久久不卡| 久久精品中文字幕无码绿巨人| 伊人久久精品影院| 久久久www免费人成精品| 97香蕉久久夜色精品国产| 要久久爱在线免费观看| 久久久久青草线蕉综合超碰| 久久免费看黄a级毛片| 亚洲精品tv久久久久久久久| 精品久久久无码21p发布 | 久久精品人人做人人妻人人玩| 青草国产精品久久久久久| 日产精品久久久一区二区| 久久99国产乱子伦精品免费| 久久国产精品久久国产精品| 国产69精品久久久久9999| 午夜精品久久久久久| 狠狠色丁香久久婷婷综合| 99热成人精品热久久669| 一本色道久久88加勒比—综合| 精品视频久久久久| 亚洲国产精品成人久久| 久久天堂电影网| 久久精品国产2020| 久久精品国产亚洲一区二区| 青草久久久国产线免观| 国产精品国色综合久久| 久久有码中文字幕| 久久人人爽人人爽人人AV| 久久精品成人免费观看97| 国内精品九九久久精品| 精品久久久久久久久久久久久久久| 精品伊人久久久| 99久久伊人精品综合观看| 久久久久久毛片免费播放| 午夜精品久久久内射近拍高清 | 日韩一区二区久久久久久|