??xml version="1.0" encoding="utf-8" standalone="yes"?>
如今最火热的移动操作^台无疑是iPhoneQ而发展最猛的是AndroidQ没落者ؓ(f)Symbian和W(xu)indows MobileQ微软从某种意义上来看,已经攑ּ?jin)Windows MobileQ作Z个Windows Mobile的Y件开发者,我觉得,比桌面版的WindowsQW(xu)M差太多太多了(jin)Q由于本文主题的~故Q就不在q里抱怨了(jin)?br>
微Y的老板鲍尔默多ơ在不同的场合表CZ(jin)Q对Android不屑一,而真正的Ҏ(gu)是iPhone的观点,甚至q有个传闻说有次开?x)的时候鲍?dng)默看到员工在用iPhoneQ还一把夺q作摔坏Ӟ我看鲍尔默ƈ不是单地玩玩而已Q他实很较真。比同笑容可掬的比尔盖茨Q鲍?dng)默无疑昑־十分乖张Q我对他的这U个性有些不以ؓ(f)?dng)假如你是微Y的一个合作伙_(d)现在和微软在发展方向上有严重分歧Q谈判的时候你更希望你面对的是比尔盖茨Q还是鲍?dng)默Q如果是我,遇到鲍尔默这UhQ没准擦出火?jin)还真的要跟他肉搏一番。论人格力和对?jng)场的把握,鲍尔默比盖茨差多了(jin),鲍M前在公司里和比尔明争暗斗的办公室战争史如果谁有兴,可以L找,虽然鲍尔默优点也不少Q比如精力旺盛,说v话来如滔滔江水连l不l。微软有钱有技术,但到?jin)这个时候,它还真的陷入?jin)中q危Z(jin)?br>
鲍尔默很清晰地表qC(jin)他的观点Q他要把iPhone挤压下去Q让自己的Windows坐上UdOS?jng)场的第一把交椅,q是他的目标Q新出来的Windows Phone 7也十分的iPhone化,除了(jin)g外,其余东西都是自己框死的,开发者发觉自pq的事情了(jin)Q做个短信过滤之cȝE序都相当困难了(jin)。而这么一来,W(xu)indows Phone 7的地位就变得有些尬Q支持者寡Q连htc都把主要_֊转向?jin)Androidq_Q齐白石_(d)(x)“学我者生Q似我者死?#8221;微Y怎么可能能够通过一x仿已l先入ؓ(f)ȝiPhone来抢占市(jng)场呢Q再说那些厂商哪里愿意忍受这个咄咄gh的微软老板Q前阵子L(fng)Nokia和微软的l盟Q现在看h也是雷声大雨点小Q可见一斑?br>
微Y的对手,其实不是iPhoneQ原因很单,Ҏ(gu)一向走的都是封闭的路线Q从到软再到所谓理念,都是自己的一套,别h无从t入半步Q所以你看看支持Ҏ(gu)的都是谁Q是用户和个体开发者,用户喜欢iPhone所提供的绚丽的体验Q而个体开发者则指望通过商店来给自己的钱包装炚wQ其它厂商,没门Q所以我断言Ҏ(gu)l不可能占据大多数的?jng)场份额Q这也是Z么苹果虽然历l风雨而v立不倒的重要原因——它拥有一大帮铁杆fans。而微软之所以能C天,完全是因为开放,借助开发的Windowsq_Q吸引了(jin)无数的Yg厂商Q进而绑定了(jin)l大多数的用P而它的嵌入式Windows产品U其实从来就不缺乏支持的厂商Q商用PDA领域Q微软还一度罕逢敌手,可见单纯从技术的角度而言QW(xu)indows Mobileq不落后。顺便插一句,很多Windows Vista是失败的Q而W(xu)indows7好啊好啊Q其实我_(d)(x)说Windows7好的人都没用qvistaQ两者到底有什么差别?新瓶装旧酒,重新包装下,宣传下就上市(jng)而已?br>
微Y在走向iPhone化的道\上,必定?x)迷失方向,一斚w喜欢iPhone的用户ƈ不乐意接受Windows Phone 7Q另一斚wWindows Phone 7的封闭\U必定会(x)遭到其它厂商的反感?br>
微Y如果再不利用自己的优势,q一步走开攄路线Q它q会(x)q一步失ȝ动OS的市(jng)Z额?
莫名其妙啊?
I don't think there is a legal reson to scan my IE browsing history.
The Start Menu and Desktop? What do you want to know from me?
And this is about IE's context menu.
All these above is just a tip of the iceberg. We should treat our privacy more important now.
有一天晚上突然死机,dLQ键盘鼠标都不能动,按开机键也无用,只好按开机键4U,xQ然后再开机,没反应,反复几次依旧如此。于是卸甉|Q卸光驱Q卸盘Q卸鼠标……逐一排除故障Q最后机器开h?jin),会(x)不会(x)是光驱的问题呢Q我q没x白,机器又死?jin),再开机,有时有用Q有时无用,即便能开hQ再L的概率也很高Q而且一d是很d的那U死?br>
散热问题吗?不会(x)啊,当时正是冬天Q室内都冷得我发抖,再说?jin),买这个机器的时候天气可热了(jin)Q都没出现这U问题。还是里面出C(jin)接触不良的情况?于是上网找攻略,拆机Q花?jin)?ji)牛二虎之力把机器的风扇,散热片Q内存槽{等Q能清理的都清理?jin)一遍,定没有接触不良的问题了(jin)Q机器开hQ可以,但没多久又再ơ出现这U故障了(jin)?br>
N是Windows XP的问题?换Windows7Q没用,你想啊,?sh)脑有时候甚至亮不v来,q不?x)是操作pȝ的问题?br>
N是电(sh)源的问题Q公司同事有台Thinkpad T500Q我把他的电(sh)源借来试试看是不是甉|的问题,l果故障依旧。到q里Q我x已经没招?jin)?br>
q个怪毛病还怪在不一定出玎ͼ有时候隔?jin)很长时间都不出玎ͼ很长旉有多长?说?jin)你都不信Q一两个月!用着用着貌似又自动好?jin),隔?jin)一两个月都不再出现问题Q但一旦出现这U死机的问题Q好像又很频J?#8230;…q到底什么问题?br>
你想啊,非电(sh)源,非电(sh)池,非配Ӟ非散热问题,非接触不良的故障Q而且间隙性出玎ͼ又能长期潜伏的故?#8230;…猜猜看,q有什么可能性?
很难Q对吧,但不怎么_(d)最q我l于扑ֈ?jin)一个听h比较合理的答案:(x)?rn)?sh)Q?br>
L板上可能?x)积蓄一些静(rn)?sh),影响电(sh)子元器件的工作Q导致机器莫名其妙死机。这样就能解释ؓ(f)什么冬天也?x)出现这U情况了(jin)Q当?dng)也能解释Z么有时候一直不?x)出C(jin)Q因为空气湿度偏大的时候,是不?x)让静(rn)?sh)逗留的;而机器闲|了(jin)一D|间后开机,?rn)?sh)已经慢慢释放?jin)许多,所以可以开机,q个也能q么解释?br>
那如何释N(rn)?sh)?我的?gu)是用手碰一下机器外露的金属部分Q比如USB口,或者VGA输出口,机器开着开着我就它一下,q种dL的现象还真没再出现过?br>
但还有一个问题,那就是ؓ(f)什么就我的机器?x)积累?rn)?sh)?N别h的机器没有这U现象吗Q难道笔记本?sh)脑的设计者没考虑到吗Q?
重新~辑注释Q这是我上上家公司的职ȝQ一些技术,几年没碰Q现在都忘了(jin)Q我感觉当时我的水^跟现在已l差不多?jin),N说这几年都没什么进步?特别是这一q多旉Q我怎么感觉自己?j)态变老很明显。文章中描述的一些问题到现在已经得到?jin)比较好的解冻I有些却依然存在,如果各位道友有什么见解,不妨拿出来分享一下。(BTWQ当时公怸要是做一些小型网l游戏,牌cȝQ从文中能看得出来。)(j)
对近日来一些问题进行思考,希望能有个解x案?br>
1、数据库斚w
每个目都离不开数据库,而数据库的徏立过E是个问题,如何我们的开发成果移动到q营环境中是个问题,如何l护以后的更新更加是个问题,所有的东西都看h是那么简单而缺乏技术含量,但真的尝试把它做好却是非怸Ҏ(gu)Qh工手动来l护q些文档是可以的Q但恐怕这是一个专门的工作Q如果干q个的hq同时做别的事情QM(x)无法避免地出现疏漏,我想一定需要借助工具?jin),而与q些工具的磨合,也是个不的成本?/p>
1Q往往忘记写修改历,不知道哪个是新的Q哪个是旧的
通病?jin),希望修改履历都别忘?jin)写,包括修改日期、作者和内容Q这样就不至于到Z(jin)问题找h负责的时候手忙脚乱,至于用CVS来管理怎样Q我没经验?/p>
2Q多个h同时直接修改数据库,理q个的h很痛?br>没有好的解决Ҏ(gu)。用CVS来维护如何?
3QOracle 9i开发出的程序不一定能在Oracle 8i上?/strong>
千万别用高版本的开发环境和低版本的q营环境Q理x冉|一L(fng)环境Q不行的话反q来用低版本的开发环境和高版本的q营环境也可以。切讎ͼ产品的成功不在于开发它的工h高q是低?br>
׃版本不一_(d)原先设计好的注释到新的环境就变成?jin)问P不堪忍受
4Q外键约束用不当导致很多问?/strong> 5Q冗余与效率问题 6Q命名问?/strong> 7Q类型q问题 8Q过于复杂的单句SQL语句 2、应用程序方?/strong> 应用E序的问题主要还是集中在版本的控制上Q包括消息头文g的版本,q营与维护的不同版本E序Q测试与发行的不同版本。当然还有别的问题,不一定是技术上的原因了(jin)Q得后来做出来的成品和原先设计的相差很大,很多设计文档实际上已l废弃,加大?jin)以后维护的隑ֺ?/p>
1Qcommon_lib的放|?/strong> 2Q程序中的错别字 3Q数据库Q配|文Ӟ写死Q?/strong> 4Q版本依然?/strong> 5Q目录结构安?/strong> 6Q系l设计的问题 7Q考虑上的疏漏 8Qlog文g处理 9Qexit的?/strong> 10Q多U程中MsgBox的问?/strong> 3、文档方?/strong> q里指的文档包括?jin)各U设计文档、配|文件、说明书?qing)程序注释,是程序可l护性的重要依据Q但往往Ҏ(gu)被忽略,它不能媄(jing)响程序的性能Q但我觉得从现在的角度来_(d)一个程序的可维护性往往比性能更重要?/p>
1Q配|文件的问题 2Q安装配|说明的问题 3Q说明书的问?/strong> 大概两个月前Q我C(jin)一台液晶显C器Q?4寸的Q回来后发现有两个亮点(或者说色点QohQ对q些概念不熟的请baidu或google一下)(j)Q一个在左边Q红Ԍ一个在右下Q蓝Ԍ在屏q全黑的时候,q两个点q是亮的Q蓝色这个不怎么昄Q没什么大,U色q个p命了(jin)Q感觉十分刺|而屏q全黑的时候还是比较多的,比如在load一个游戏的时候,或者一场电(sh)影序q的时候,L能看到这个红点,而且QLq个红点特别吸引我的眼球。但液晶屏的坏点Q别Z说了(jin)Q是没法修复的,我在|上找了(jin)些时_(d)得出?jin)这L(fng){案…… 果真无法修复Q一切都难不住我q个高手Q不怿我是高手的请收藏本博客,q关注我别的文章Q哼Q更重要的是Q我的修复方法没有Q何风险! l过大量研究Q我发现L一个暗Ҏ(gu)L一个亮点要隑־多。呵呵,我就知道你没有实验的条gQ也没有实验的心(j)思,那好Q我告诉你一个思想实验Q假设你在一个全黑的屋子里,屋子里有一个发光LEDQ你L它的隑ֺ如何Q再假设你在一个墙壁窗户全白的极其明亮的屋子里Q寻扑ֱ子里的一只黑色的甲虫Q难度如何?没错Q我是让你比较这两种L的难度,明显L黑甲虫要困难得多Q这是我解决问题的思\——通过某些手段Q我可以把这个亮点变为暗点! 你大|(x)q怎么可能Q这是物理故障,你不可能用Y件解冻I 不过我可没说我准备用软gҎ(gu)解决哦,拿一直自来水W,点一点碳素墨_(d)一点点O(jin)KQ把屏幕变ؓ(f)全黑Q然后用W尖?l)C下这个红点,q样U点永q不?x)看C(jin)Q但׃你笨手笨脚,q个点点得太大,变成?jin)一坨,那就E等Q把屏幕调成全白Q用指甲轻轻刮掉一些边~,让它变成一个真正的暗点Qv码算是接q暗?#8230;…也许你又p|?jin),别灰心(j),多尝试几ơ,前面我说了(jin),q没有风险?/p>
所以,其实我的修复办法是把这个亮点变?#8220;暗点”Q这样在屏幕全黑的情况下׃?x)刺g(jin)Q那屏幕全白的情况呢Q当然看到这?#8220;暗点”?jin),但屏q全白的时候ƈ不是特别多,而且黑点q不是很“抢眼”Q试试看q道了(jin)?/p>
最后,用Y件的办法来避免黑点的昄Q比如换一张墙U,正好能掩盖住q个黑点Q用IE{背景是白色的Y件的时候,把它拖到屏幕双Q反正显C器是宽屏,分L率这么高Q也用不完所有显C空间的。这Pq个问题得C(jin)解决Q我看电(sh)影时候,不再感觉到这个亮点了(jin)…… 你大W:(x)你这也叫解决啊?q敢自称高手Q?/p>
可你惛_出来么?看看哥u布发现美z新大陆的故事吧Q?492q_(d)哥u布发C(jin)新大陆。从上回来Q他成了(jin)西班牙h民心(j)目中的英雄。国王和王后也把他当作上宾,他做v军上。可是有些贵族瞧不v他,他们用E子一|_(d)(x)“|q有什么希|?只要坐船出vQ谁都会(x)到那块陆地的?#8221; 在一ơ宴?x)上Q哥伦布又听见有人在讥笑他了(jin)?#8220;上帝创造世界的时候,不是创造了(jin)边的那块陆地?jin)吗Q发玎ͼ|又算得了(jin)什么!”哥u布听?jin),沉默了(jin)好一?x)儿Q忽然从盘子里拿个鸡蛋,站了(jin)hQ提Z个古怪的问题Q?#8220;奛_们,先生们,谁能把这个鸡蛋竖hQ?#8221;鸡蛋从这个h手上传到那个人手上,大家都把鸡蛋扶直?jin),可是一放手Q鸡蛋立d了(jin)。最后,鸡蛋回到哥u布手上,满屋子鸦雀无声Q大安要看他怎样把鸡蛋竖h。哥伦布不慌不忙Q把鸡蛋的一头在桌上轻轻一Ԍ敲破?jin)一点儿壻I鸡蛋qE_直立在桌子上?jin)?#8220;q有什么希|?”宑֮们又讥笑起哥伦布来了(jin)?#8220;本来没有什么可希罕的,”哥u布说Q?#8220;可是你们Z么做不到呢?”宑֮们一个个夺理Q?#8220;鸡蛋都破?jin),那算什么呢Q?#8221;哥u布却l箋保持不以为然的态度Q?#8220;我在刚开始定条gӞ曾有说过不允许把鸡蛋敲破Q?#8221;宑֮们一时哑口无a?/p>
当然?jin),我在刚开始定定条件的时候可没说q不允许产生新的“暗点”Q更重要的是q种做法从事实上改善?jin)我的液晶屏的视觉效果?/p>
我一向认为,思维很重要,That's what I mean thinking?/p>
外键U束很大E度上保证了(jin)数据的完整性,但世界上所有的事情都是一分ؓ(f)二的Q在我们开发过E中Q外键约束往往U束的是我们而不是数据,当我们需要添加一行测试数据的时候,当我们需要修改一个字D属性的时候,当我们需要更C个单元格的时?#8230;…到最后,我发现我们的目d?jin)很多外键约束,最后的成果和设计相ȝq了(jin)。对于小型项目,很多时候没必要使用外键U束Q当你确定真的需要用的时候,仔细思考,它真的合理吗Q?/p>
ȝq程中我发现?jin)一些数据冗余,q是很正常的Q比如一个用戯中包括了(jin)用户性别、出生日期和w䆾证号码,其实q就是冗余,因ؓ(f)我们完全可以通过w䆾证号码来定用户性别和出生日期,但这U冗余是必要的。一定的冗余能提高我们的效率Q我们往往需要在冗余与效率之间选择一个^衡点。参考数据库三范式?/p>
表面上看又是一个没有技术含量的问题,其实是最令我头疼的问题之一Q一张user表中Q出C(jin)多个“state”Qstate表示一U状态,每个用户有若q种状态,很正常,我稍微列一下我能看到的Qsuper_assistant_state、login_state、multi_user_state、forbidden_state、lock_state、score_lock_state……如果和别的表兌hQ恐怕还有更多的stateQ这些state如果命名得不好,往往Ҏ(gu)引v误会(x)Q比如lock_state和forbidden_stateQ两个都表示对用L(fng)限制Q如果注释中没有q一步详l的说明Q谁又会(x)知道那么多呢Q?/p>
字段的类型有时候看h实混ؕQ比如什么时候用integerQ什么时候用numberQ我惌l对不是随意的,至于numberI竟有多长,最长可以指定多长?谁研I过呢?integer和C++?2位的intcd有什么异同吗Q而longcd和C++的long是一L(fng)吗?字符串到底用char、varcharq是varchar2Q我想需要进一步研I?/p>
Oracle的功能是很强大的Q几乎支持所有的SQL风格Q当然包括了(jin)复杂的联合查询和子查询,但过于庞大的select语句使后来的l护者感觉非常费Ԍ一个语句往往需要阅d长时_(d)而且Ҏ(gu)我的l验Q调试时候出问题多的存储q程是包含?jin)这些复杂SQL语句的存储过E,我们有办法将它简化吗Q如果不能简化,务必谨慎Q测试测试再试Q确保其正确性,然后d清晰的注释?/p>
common_lib是我们用的一套公q库(与之cM的还有aeslibQ,主要的功能是|络通信、写log、hash表和队列{。几乎所有的E序都用C(jin)q些功能Q不考虑common_lib本n版本上的差距Q我们有不同的用方法,以Linux环境开发ؓ(f)例,一U是把common_lib与项目分,攄?(HOME)目录下,而在make文g中也指定?#8220;$(HOME)/common_lib”的搜索\径;另一U是把common_lib攄在项目目录中Qmake文g指定的\径可能是“../common_lib”。前一U方法有可能把项目从一台机器移动到另一台机器(或从一个̎L(fng)动到另一个帐P(j)的时候发现common_lib找不到的情况Q因?#8220;$(HOME)/common_lib”不一定有嘛;后一U方法有可能?x)将common_lib所作的一些额外更改忽略掉Q它用的q是自己的库。但考虑到common_lib于E_Q因此我们尽量用后一U方法,E序能正,E_地运行就是我们的q求?jin),最新的代码q不是必ȝ。另外,使用common_lib的同Ӟ我们也通常?x)用到aeslibQ我觉得是不是将它们合ƈh更好呢?
q是个不重要又重要的问题Q也许大安默认之后不会(x)觉得有什么不妥,但站在用L(fng)角度Q会(x)不会(x)觉得开发h员水q_差呢Q我列D一下常见错误(括号内是正确用法Q:(x)登陆Q登录)(j)、AcountQAccountQ、超q接Q超链接Q、SucessQSuccessQ?/p>
我们可能需要修改一些程序运行的参数Q比如开分最大金额、心(j)x间、最大连接客L(fng)数目……{等。这些参数的改变I竟如何实现Q我观察?jin)下E序Q普遍有三种情况Q一是将参数存放在数据库中(可以在运行中生效Q,二是写配|文Ӟ重新启动E序生效Q,三是写死在程序中Q需要重新编译程序,再运行方生效Q。这个除?jin)看需要外Q我q想提些Q?br>1、如果需要网|面控Ӟ只能使用数据库了(jin)Q?br>2、只要以后有可能需要修改就不要写死在程序中Q要知道Q编译的环境不是哪里都有Q就有也不是什么h都会(x)Q况且代码是保密的;
3、对于较多的扚w配置数据Q尽量用数据库Q?br>4、程序初始化的配|数据用配|文仉常更ؓ(f)恰当Q因为初始化好之前往往无法讉K数据库嘛?br>最后,贪方便把东西都写L不负责Q的表玎ͼl果往往带来很多不方ѝ?/p>
我经常说的一句话是:(x)“XXXQ请把YYY的最新版本代码,l我一份?#8221;或者说Q?#8220;XXXQ你q个是最新版本吗Q最q一ơ改?jin)什么内容?”其实老说q句话我都觉得丢脸,做了(jin)q么久开发,版本控制问题q是搞不好,不排除制度和开发模式上也有些问题,但考虑到自己有时候都不能很好执行Q就不用怪别Z(jin)。通常表现为:(x)
1、修攚w意,常常忽略修改标识Q无日期Q无内容Q改错了(jin)回头再寻扑֛难;
2、经常忘记CVS(g)入前先同步一ơ,D内容混ؕQ?br>3、责M明确Q程序到底谁在负责啊Q比如有人离开?jin)公司,他的代码I竟谁来?
4、旧版本l常不留备䆾Q修改过E无t迹可寻QCVS可能l历很多修改才检入一ơ)(j)?/p>
一个工E,安排怎样的目录结构?单个目录Q或者许多?我想q应该不是随意的Q我认ؓ(f)通常可以q样Q将公共模块攄一个目录,类库(比如数据库操作的cdQ图形类库,加密狗类库)(j)攄各自的目录,剩下自己~写的代码放一个目录即可,但如果自己写的代码模块独立性强Q也可以考虑把他们分开Q以便以后的复用。还有就是bin目录的徏立,现在xq是有必要的Q将生成的可执行文g攄bin目录下(VC++自己有debug目录和release目录另外讲?jin)?j)Q配|文件也攄bin目录下,发布时候只需要发布bin目录嘛,我们通常写logQlog目录呢?我认为放|在bin目录下,q样发布的时候也没忘记带上log目录Q当然啦Q要先将里面的log文g清空?/p>
在做概要设计的时候,我们往往有很多不错的xQ比如构Z个比较完的游戏q_Q以后只需要在q_上添加各U不同的游戏卛_Q这样就产生?jin)对应的不同数据库,q_自n一个数据库Q每个游戏都有自q数据库,理论上没问题Q实际操作v来问题就大了(jin)。先是web斚wҎ(gu)没考虑q这U情况,只设计了(jin)一个数据库q接Q之后重新添加了(jin)新的数据库连接,但可扩充性恐怕就不好?jin),q没辑ֈ我们期预的效果,再就是控制管理部分程序权力过大,或者说设计不合理,往往逾越?jin)^台和具体游戏之间的`沟,q一步加Z(jin)偶合Qq_和游戏越发不可分,扩展性更差,最后做出来的品已l很难把q_和游戏区别开来了(jin)Q一个^台就是一个游戏,一个游戏包括一个^台?/p>
举个例子吧,我们在实际操作中需要创建新的服务器Q但发现不成功,查原因,发现是因为数据库里需要添加新的服务器的条目才可以Q添加条目是web的功能,l果发现web没做好,{web补上?jin),条目d?jin),发现q是不行Q因为服务器的运行需要数据库的很多信息参敎ͼ而这些参数目前都没有在添加条目的时候被dQ由于这ơweb的工作量较大Q一时改不好Q只能手动在数据库里dQ一张表d的条目可能有数十条,相当J琐Q稍微不留神可能出错。考虑上的疏漏可能?x)伴随我们一生,但每一点一滴都是宝늚l验Qv码我们不能再犯同L(fng)错误?/p>
E序M开logQ按照我们的做法Q每天生一个log文gQ时间一长,log文gp来越多,占用I间来大Q我x们应该改q一下,比如每天自动删除3个月以前的log?br>
一天加一天,log泛滥成灾:)
E序到异常情况我们通常喜欢用exit()来结束程序的q行Q在单线E中q样做是没问题的Q但C(jin)多线E则未必Q根据我的经验,滥用exit()很容易导致程序结束的时候出?#8220;非法操作”Q甚x据库写入不完整。下面是我认为的以后的做法(不一定很正确Q:(x)只有ȝE能调用exit()Q其它线E运行遇到致命错误后q回错误|一层层往上返回,直至ȝE,Q或者将致命错误消息发至ȝE)(j)׃U程调用exit()。当然主U程也可以完全不用exit()Q我更偏向于能不用就不用Q因为exit()?x)不分黑U皂白强制结束程序,它不能让对象正常释构Q另外它有类似goto语句Q破坏程序的l构化,使程序条理变得不清晰?/p>
试/l护q程中发现过一些很奇怪的现象Q程序莫名其妙地C(jin)其它?sh)脑出?#8220;非法操作”Q后I其原因发现是用MsgBoxQ这里通指消息框)(j)的问题,该调用会(x)弹出对话框请求用L(fng)定取消等Q或者仅仅将一些消息反映给用户。在多线E中使用MsgBox我认为存在隐(zhn),一斚w是开发工L(fng)问题QMsgBox在C++ Builder中的实现和W(xu)INAPI的MessageBox是不一L(fng)Q另一斚wMsgBoxq不能每时每刻都能工作得很好Q我发现过多线E程序中C++ Builder的MsgBox不v作用的情况;再一斚wMsgBox?x)对U程造成堵塞Q如果让逻辑处理U程直接调用MsgBox则可能导致一些没有预料到的情况发生。我认ؓ(f)QMsgBox和用L(fng)面相养I量只在ȝE中调用?br>
q种MsgBox恐怕难以o(h)人接?/span>
到底把配|文件放入CVS呢还是不攑֑Q都各有道理Q放的话(g)Z有这个文Ӟ用户知道M改,但如果一个用户修改了(jin)配置文gq检入,然后另一个用h斎ͼ那另一个用L(fng)配置文g也跟着被改动了(jin)Q可能导致错误;如果不放Q那用户W一ơ检出时候没有这个配|文Ӟ无法q行E序Q但获得q个文g后不?x)因Z后的更新而导致文件被修改。我看还是不攄好,不经意地被改动配|文件是件很郁闷的事情,宁愿找不到配|文件自己另外去找一个。但有没有其它更完美的办法?
我第一ơ把我认Z错的安装说明交给试部让他们L行的时候,我说Q?#8220;量参照说明Q不要问我,看看是否能按部就班完成?#8221;l果是很令h沮的,一天跑来问我许多次Q因为实在不知道下一步怎么弄,或是Z(jin)些意外。当然不排除是因为Linux易用性差的缘故,但无论怎么_(d)我的说明文档也十分糟p,我一直在x么才能写出合格的说明文档呢Q我惛_该写好之后,把自己当成一个用P试按说明去操作一遍,q是最L(fng)的了(jin)。当然要写得好,真不亚于E序设计的难度,你考虑q意外出错吗Q还有各U你看v来^常的术语用户是否清楚?仔细仔细再仔l,N说明真的很完,没有M错误?jin)吗Q我没有q一步的解决Q只有苦功,在此提一下这其实q不单,仅此而已?/p>
先参考一下上面所说的安装配置说明的问题,是否存在Q还有就是以下的一些问题了(jin)Q?、格式不l一Q章节不寚wQ?、图片过大,调整后模p,影响阅读Q?、内Ҏ(gu)乱,针对性不强,到底是一个针对网l管理员的说明书Q还是针对一个普通用L(fng)说明书?我想内容肯定相差很大?/p>
Z么?俗话Ԍ一׃容二虎,如果q是一份高度依赖脑力运动(我用q动Q不用劳动)(j)的工作,q两个聪明h你说谁会(x)听谁的呢Q他们能否强合,1+1=2那样创造出更好的东西?110%Q?+1不会(x){于2Q?20%Q?+2不会(x)大于2Q那只有小?啎ͼ一Ҏ(gu)错!而我的经验告诉我Q?0%的情况,1+1<1。如果你有幸作ؓ(f)握大权的理者,hq两个聪明h分开Q让他们q不同的事情Q根据他们的兴趣Q爱好,d不同的事情,如果实在找不C同的事情Q就让他们干一L(fng)事情Q但不是合作Q而是各自单干Q然后从他们各自生成的最lY件品中Q择优录取,q也L让他们合作好?br>
在热力学中,有个概念?#8220;?#8221;Q它是个能量概念Q但却不表示“?#8221;Q而表C?#8220;不能”Q假想一个孤立系l有两个物体Q一个物体的温度很高Q一个很低,它们的ȝ热量?00Q然后你把这两个物体合在一P高温物体的温度降低了(jin)Q而低温物体的温度升高?jin),它们的M热量是多?孤立pȝQ注意,没有M对外热传递,所以热量还?00Q但׃q么一合,无论是高温物体,q是低温物体都没?jin)温差,没?jin)温差׃能利用这个热量做功,而做功能力的损失Q就是熵。也怽感觉q段文字比较晦ӆQ没关系Q通俗_(d)两个聪明人的聪明才智׃“合作”Q都用于内耗上?jin),完?jin)之后两个Zh聪明人,但没?#8220;工作”的能力了(jin)Q或效率低下?br>
q种事情?jin)屡见不鲜?jin)Q例子我x无须多DQ大家nҎ(gu)比皆是,只要你是做Y件开发的。也怽要问?jin),没有合作Q如何开发大型YӞ好问题,我也从事q大型Y件的开发,但我现在回头看看Q那Ҏ(gu)不是什么合作,而我当时也不是一个真正意义上?#8220;开发?#8221;Q我仅仅是个~码者和单元试者,我有设计q个软g吗?我有在Y件中体现出我的思想?jin)吗Q甚臻I问得D酷点,我有知道我在实现什么业务逻辑吗?——答案全是NoQ这是软g外包的典范,别h把Y件设计好Q详l到伪码U别?jin),我只是来做最低的实现而已。也或许Q这是一U?#8220;合作”的途径Q铁打的营盘?gu)水的兵Q那些在底下q活的h永远不要?#8220;Z?#8221;Q机械式的工作,水U式的工作,q还需要有个前提,他们不能有太多的xQ比如我Q实在是x太多Q那U地方自然就不欢q我?jin),不久后卷铺盖Ch?br>
我以前有个朋友无意中说了(jin)句话Q他_(d)(x)“公司本来׃需要那么多聪明人?#8221;q话q真的如此,一带多?#8220;合作”模式是有的,是一个牛人,带着几个弟Q完成某个项目,但我想真正的开发者,是那个牛人,几个弟可以做做外围Q周边,比如机械式的试Q对Q测试是保证软g质量的重要手D,需要大量,反复。如果不q的是这几个弟也是很聪明的人,那就比较隑֊些,q个牛h得很牛Q以l对的技术和人格力优势“压?#8221;q几个小弟,“折服”他们Q这是徯兼备Q试问这U牛人多么?再说?jin),真有q种牛h的话Q让他独自完成一个大的项目,我想更ؓ(f)可靠Q而不是外加几个捣蛋的聪明人?br>
熵,产生于艰隄内部交流Q生于公司庞大而迟~的官僚pȝQ生于自我独大的个人思想Q与其打破这些障,不如设法让这?#8220;合作”量减少Q?br>
当我们还没有适应Visual Studio 2005的时候,Visual Studio 2008出来了(jin)Q版本众多,让我们有Ҏ(gu)所适从QVisual Studio 2008q没装好的时候,Visual Studio 2010蓄势待发Q一个比一个强Q利用个WizardQ圈圈点点几下,一个外观花哨的应用E序q成了(jin)Q而且q貌似OutlookQ抑或IEQ随便你Q你一行代码不用写Q这?#8220;先进工具”Q但提高?jin)生产力了(jin)吗Q我x有,你能圈圈点点几下生成的花哨程序,别h也行Q程序虽然花哨,但换U角度说Q其实你什么都没干QY件的灵魂在于设计者的思想Q理解这个得费点?j)思,或者这栯吧,利用现在的技术,你也可以L拥有一q达芬奇的《蒙娜丽莎》的油画Q但q仅仅是个复制品Q你能这P别h也行Q你拥有的这q画没有什么h(hun)|而达芬奇的《蒙娜丽莎》的价值在于这位大师在q幅M融入的他的思想以及(qing)他的力_Q这是Q何技术,?#8220;先进工具”都无法替代的Q永q无法替代。这D늮是我讲的一炚w外话Q和《h月神话》中“没有银弹”的观Ҏ(gu)q?br>
软g开发是一w度依赖脑力的力_Q开发者的思想融汇其中Q是真正cM艺术创作的工作。考虑“合作”Q不是不可以Q但无非是这两种情况Q一是我技压群雄,以d服hQ号令群英;二是把前一句的“?#8221;换成别hQ让我心(j)服口服当他小c(din)?br>
q是一个几q前和朋友玩q的游戏,3q后的今天,再来玩一ơ。蓝色文字表C差别不大,U色文字表示有了(jin)新的变化?br>
响应球球号召QBLOG接龙游戏l箋中。。?
游戏规则Q?1.由某个blog发vQ出一个题目?2.在自qblog中完成题目,然后点名另外几个blog完成同样的题目?3.另外的几个blog完成题目以后再分别点名,依次cL?4.被点名的blog在完成题目时要注明被哪个blog点名?5.不可回传Q加一条自己出的题?br>
最q在看的?sh)视Q没?sh)视?br>我还是不喜欢?sh)视哎?/span>
最q在做的事情Q浏览网|E序
差不多还是这些事?/span>
最q在听的音乐Q经典流行音?br>差不多?/span>
最q在吃的东西Q盖饭
q是差不多?br>
最q在看的报刊Q前E无?br>没怎么看报刊?/span>
最q关?j)的话题Q蟩槽与改行
也差不多Q只不过恐怕该行很隄?jin)?/span>
最q常ȝ地方Q公?br>SAME?/span>
最q最惛_的事Q外出旅游,什么山什么洞我没去过的都很感兴趣
有点惛_出旅游,也想学学东西?/span>
最q常想的人:(x) 我自己啊Q最q是比较狼狈Q?br>啊,q恐怕是最大不同,我有?jin)自q挂的人?/span>
最qn体情况:(x) w心(j)q
一栗?/span>
最q理财状况:(x) 别提?jin),无?ch)可理
攒点钱,准备q贷?/span>
Ҏ(gu)友最惌的话Q有什么项目,最q,适时让我分杯?br>也没什么特别的嘛?/span>
对自己最惌的话Q?#8220;造h要有信心(j)D正得嘎嘛Q?#8221;(Cantonese)
E住Q你最需要E定?/span>
想一个减肥的良方Q别用电(sh)?br>q是q动最好?/span>
记忆中做q最疯狂的事情之一Q接受了(jin)600元月薪的工作Q在上v——汗Q?br>呵呵Q蛮疯狂的?/span>
喜欢K歌的E度1~10依次递增Q?Q再努力些就是K歌之王了(jin)Q麦克风都让我征?br>我觉得我q是很喜ƢK歌的?/span>
最喜欢吃的食物Q家乡大排档
清炒西兰花?/span>
不吃的几样食物:(x)肥,油,辣,醋,酒精Q味道重?#8230;…本h皆忌Q唉Q没口福
q是如此Q一Ҏ(gu)变?/span>
最惛_的地方:(x)黄山Q没去过Q?br>现在恐怕更喜欢丽江一些?/span>
看到马\上谁觉得最恶心(j)Q不?br>对着手机大声怒吼的h?/span>
最惌的礼物:(x)一本有用的?br>差不多也那栗?/span>
?j)目中的伴G是怎样的一个hQ聪明贤惠的中国传统x?br>dQ还真是那样啊?/span>
你现在还单n吗?如果是,准备什么时候找一个?如果不是QW(xu)HO IS YOURSQ是Q厄……不确定啊Q当然我不喜Ƣ现?br>未婚Q不q有个很不错的女友哦?/span>
如果d物会(x)M么,起名字叫做什么:(x)d猫,?#8220;波斯”Q如何?
差不多,不过养鱼可能更简单些?/span>
如果只剩下一天的旉Q你?x)做什么:(x)往胸口猛打一拻I赶紧醒来Q?#8230;…险些上班q到Q最讨厌做梦?jin)?br>不知道唉?/span>
最多的时候,你能一?j)几用地做事情?x)我几乎不能分?br>我还是那P一分神事情做不好?jin)?/span>
列D2Q?个你觉得好玩的网站:(x)我只知道几个有用的网?(
看来我没啥长q,q方面?/span>
推荐几首不太被注意的好听的歌Q《一切ؓ(f)何》《无a感激》《孤单背影》,歌其实很有名Q只是年代比较早?br>后来发现《一切ؓ(f)何》这首歌曲子来自英文歌曲《Santa Fe》?/span>
对你而言,什么事情最Ҏ(gu)?什么事情最? 写个HelloWorld最Ҏ(gu)Q开发个WindowsXP最?br>哈哈Q?q前我的话还是那么经典?br>
一句你认ؓ(f)最l典的话Q?#8220;其实通过率是你们来定的?#8221;考程序员之前Q我们对以往q低的通过率表C担?j),问老师Q老师如此回答
l典?/span>
印象最深刻的一部电(sh)影或书:(x)《星球大战?br>现在觉得《刺杀肯尼q》这部电(sh)׃乎更震撼些?/span>
喜欢现在的生zȝ态吗Q不喜欢
不喜Ƣ?/span>
愿不愿意和网友见面?Z么?要看怎样的网友了(jin)Q大?个月前,我见q一个,他还比我大几岁呢Q不见得见网友就是小孩子的表?br>一般一般?/span>
介绍下你最怀늚日子Q计机实习(fn)的日子,我算出尽?jin)风?br>其实Q回头想惻Iq是落的日子也是值得怀늚Qh生就是一U过E,q几q的感?zhn)啊?/span>
对于被点名这件事Q你有什么想法?MM布置的作业,写吧
q次我自己找事干的?/span>
假如找不C认ؓ(f)合适的那个人,你会(x)一直独w?直到??出现为止? 可能不会(x)。(好难回答Q谁出的题?Q?br>*^_^*
如果你已l洞(zhn)了(jin)自己一生所?x)经历的一切,你还?x)l努力吗Q努力吧Q要q么说的话,其实每个人结局都一L(fng)
哇!?q前的回{够l典?/span>
有些在做的事情你?x)不会(x)觉得曾l经历过Q你觉得是ؓ(f)什么?有时?x),但我无法回答Z么,可能目前对h脑的研究也没深入到这一?br>是的。而且我还扑ֈ?jin)外文对应的词?x)Deja vu?/span>
在Q何时候你都会(x)勇敢的表达自己吗Q不能在M时?br>差不多?/span>
你喜Ƣ现在的工作伐?要蟩槽伐?一般喜Ƣ,但我?x)蟩?br>哇,q个回答跟现在惊Z致啊?/span>
目前你有几个最知心(j)的朋友?上你,5个,呵呵
差不多?/span>
我的问题是:(x)假如你工作快3q了(jin)Q你q敢改行么?q个问题我自己回{:(x)最后一ơ了(jin)?br>现在的回{:(x)看着办!
3q后的我再问个问题,?#8230;…朋友们,觉得我好不?
——哈哈,我想{案是肯定的啦?br>