﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-Jiang's C++ Space-随笔分类-Thinking/Other</title><link>http://www.cppblog.com/guogangj/category/10230.html</link><description>创作，也是一种学习的过程。</description><language>zh-cn</language><lastBuildDate>Wed, 13 Apr 2011 10:08:35 GMT</lastBuildDate><pubDate>Wed, 13 Apr 2011 10:08:35 GMT</pubDate><ttl>60</ttl><item><title>微软，你的对手不是iPhone</title><link>http://www.cppblog.com/guogangj/archive/2011/04/11/143986.html</link><dc:creator>Jiang Guogang</dc:creator><author>Jiang Guogang</author><pubDate>Mon, 11 Apr 2011 15:24:00 GMT</pubDate><guid>http://www.cppblog.com/guogangj/archive/2011/04/11/143986.html</guid><wfw:comment>http://www.cppblog.com/guogangj/comments/143986.html</wfw:comment><comments>http://www.cppblog.com/guogangj/archive/2011/04/11/143986.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/guogangj/comments/commentRss/143986.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/guogangj/services/trackbacks/143986.html</trackback:ping><description><![CDATA[IT业界评论方面的博文我写得不多，以前csdn的博客上面有几篇，地址为<a href="http://blog.csdn.net/guogangj/category/378630.aspx">http://blog.csdn.net/guogangj/category/378630.aspx</a>，有兴趣的话可以看看，现打算再简简单单写一篇，关于口水战打得最多，又是众巨头虎视眈眈，形势又最不明朗的，移动平台操作系统的小小评论。<br><br>如今最火热的移动操作平台无疑是iPhone，而发展最为迅猛的是Android，没落者为Symbian和Windows Mobile，微软从某种意义上来看，已经放弃了Windows Mobile，作为一个Windows Mobile的软件开发者，我觉得，比桌面版的Windows，WM差太多太多了，由于本文主题的缘故，就不在这里抱怨了。<br><br>微软的老板鲍尔默多次在不同的场合表示了：对Android不屑一顾，而真正的对手是iPhone的观点，甚至还有个传闻说有次开会的时候鲍尔默看到员工在使用iPhone，还一把夺过作摔坏状，我看鲍尔默并不是简单地玩玩而已，他确实很较真。比同笑容可掬的比尔盖茨，鲍尔默无疑显得十分乖张，我对他的这种个性有些不以为然，假如你是微软的一个合作伙伴，现在和微软在发展方向上有严重分歧，谈判的时候你更希望你面对的是比尔盖茨，还是鲍尔默？如果是我，遇到鲍尔默这种人，没准擦出火了还真的要跟他肉搏一番。论人格魅力和对市场的把握，鲍尔默比盖茨差多了，鲍总以前在公司里和比尔明争暗斗的办公室战争史如果谁有兴趣，可以去找找，虽然鲍尔默优点也不少，比如精力旺盛，说起话来如滔滔江水连绵不绝。微软有钱有技术，但到了这个时候，它还真的陷入了中年危机了。<br><br>鲍尔默很清晰地表述了他的观点，他要把iPhone挤压下去，让自己的Windows坐上移动OS市场的第一把交椅，这是他的目标，新出来的Windows Phone 7也十分的iPhone化，除了硬件外，其余东西都是自己框死的，开发者发觉自己能干的事情少了，做个短信过滤之类的程序都相当困难了。而这么一来，Windows Phone 7的地位就变得有些尴尬，支持者寡，连htc都把主要精力转向了Android平台，齐白石说：&#8220;学我者生，似我者死。&#8221;微软怎么可能能够通过一味模仿已经先入为主的iPhone来抢占市场呢？再说那些厂商哪里愿意忍受这个咄咄逼人的微软老板，前阵子号称Nokia和微软的结盟，现在看起来也是雷声大雨点小，可见一斑。<br><br>微软的对手，其实不是iPhone！原因很简单，苹果一向走的都是封闭的路线，从硬到软再到所谓理念，都是自己的一套，别人无从踏入半步，所以你看看支持苹果的都是谁，是用户和个体开发者，用户喜欢iPhone所提供的绚丽的体验，而个体开发者则指望通过商店来给自己的钱包装点钱，其它厂商，没门，所以我断言苹果绝不可能占据大多数的市场份额，这也是为什么苹果虽然历经风雨而屹立不倒的重要原因——它拥有一大帮铁杆fans。而微软之所以能到今天，完全是因为开放，借助开发的Windows平台，吸引了无数的软硬件厂商，进而绑定了绝大多数的用户，而它的嵌入式Windows产品线其实从来就不缺乏支持的厂商，商用PDA领域，微软还一度罕逢敌手，可见单纯从技术的角度而言，Windows Mobile并不落后。顺便插一句，很多人说Windows Vista是失败的，而Windows7好啊好啊，其实我说：说Windows7好的人都没用过vista，两者到底有什么差别？新瓶装旧酒，重新包装下，宣传下就上市而已。<br><br>微软在走向iPhone化的道路上，必定会迷失方向，一方面喜欢iPhone的用户并不乐意接受Windows Phone 7，另一方面Windows Phone 7的封闭路线必定会遭到其它厂商的反感。<br><br>微软如果再不利用自己的优势，进一步走开放的路线，它还会进一步失去移动OS的市场份额。
<img src ="http://www.cppblog.com/guogangj/aggbug/143986.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/guogangj/" target="_blank">Jiang Guogang</a> 2011-04-11 23:24 <a href="http://www.cppblog.com/guogangj/archive/2011/04/11/143986.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>莫名其妙的MSDN说明（又抓到微软的一条小辫子）</title><link>http://www.cppblog.com/guogangj/archive/2011/01/06/138061.html</link><dc:creator>Jiang Guogang</dc:creator><author>Jiang Guogang</author><pubDate>Thu, 06 Jan 2011 03:31:00 GMT</pubDate><guid>http://www.cppblog.com/guogangj/archive/2011/01/06/138061.html</guid><wfw:comment>http://www.cppblog.com/guogangj/comments/138061.html</wfw:comment><comments>http://www.cppblog.com/guogangj/archive/2011/01/06/138061.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/guogangj/comments/commentRss/138061.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/guogangj/services/trackbacks/138061.html</trackback:ping><description><![CDATA[直接看图，哈~<br><img border=0 alt="" src="http://www.cppblog.com/images/cppblog_com/guogangj/odd_msdn.png" width=567 height=482><br>莫名其妙啊。
<img src ="http://www.cppblog.com/guogangj/aggbug/138061.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/guogangj/" target="_blank">Jiang Guogang</a> 2011-01-06 11:31 <a href="http://www.cppblog.com/guogangj/archive/2011/01/06/138061.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Truth: Tencent is invading our privacy</title><link>http://www.cppblog.com/guogangj/archive/2010/11/08/132960.html</link><dc:creator>Jiang Guogang</dc:creator><author>Jiang Guogang</author><pubDate>Mon, 08 Nov 2010 01:57:00 GMT</pubDate><guid>http://www.cppblog.com/guogangj/archive/2010/11/08/132960.html</guid><wfw:comment>http://www.cppblog.com/guogangj/comments/132960.html</wfw:comment><comments>http://www.cppblog.com/guogangj/archive/2010/11/08/132960.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/guogangj/comments/commentRss/132960.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/guogangj/services/trackbacks/132960.html</trackback:ping><description><![CDATA[I won't talk too much. Just reference the following figures. (PS. TM.exe is Tencent Messenger, an alternative Tencent product of QQ)<br><img border=0 alt="" src="http://www.cppblog.com/images/cppblog_com/guogangj/privacy_invader_1.png" width=959 height=420><br>I don't think there is a legal reson to scan my IE browsing history.<br><img border=0 alt="" src="http://www.cppblog.com/images/cppblog_com/guogangj/privacy_invader_2.png" width=917 height=289><br>The Start Menu and Desktop? What do you want to know from me?<br><img border=0 alt="" src="http://www.cppblog.com/images/cppblog_com/guogangj/privacy_invader_3.png" width=971 height=742><br>And this is about&nbsp;IE's context menu.<br><br>All these above is just a tip of the iceberg. We should treat our privacy more important now.
<img src ="http://www.cppblog.com/guogangj/aggbug/132960.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/guogangj/" target="_blank">Jiang Guogang</a> 2010-11-08 09:57 <a href="http://www.cppblog.com/guogangj/archive/2010/11/08/132960.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>最终解决了Thinkpad离奇的故障</title><link>http://www.cppblog.com/guogangj/archive/2010/08/13/123323.html</link><dc:creator>Jiang Guogang</dc:creator><author>Jiang Guogang</author><pubDate>Fri, 13 Aug 2010 06:47:00 GMT</pubDate><guid>http://www.cppblog.com/guogangj/archive/2010/08/13/123323.html</guid><wfw:comment>http://www.cppblog.com/guogangj/comments/123323.html</wfw:comment><comments>http://www.cppblog.com/guogangj/archive/2010/08/13/123323.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/guogangj/comments/commentRss/123323.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/guogangj/services/trackbacks/123323.html</trackback:ping><description><![CDATA[我有一台Thinkpad T60，T7200的CPU，高分屏，独显，2G内存，320G硬盘&#8230;&#8230;算是T60中较好的机型了，买回来时候没发觉什么大问题，但用了大半年后终于出问题了。<br><br>有一天晚上突然死机，彻底死机，键盘鼠标都不能动，按开机键也无用，只好按开机键4秒，关机，然后再开机，没反应，反复几次依旧如此。于是卸电池，卸光驱，卸硬盘，卸鼠标&#8230;&#8230;逐一排除故障，最后机器开起来了，会不会是光驱的问题呢？我还没想明白，机器又死了，再开机，有时有用，有时无用，即便能开起来，再死机的概率也很高，而且一死就是很彻底的那种死。<br><br>散热问题吗？不会啊，当时正是冬天，室内都冷得我发抖，再说了，买这个机器的时候天气可热了，都没出现这种问题。还是里面出现了接触不良的情况？于是上网找攻略，拆机！花了九牛二虎之力把机器的风扇，散热翅片，内存槽等等，能清理的都清理了一遍，确定没有接触不良的问题了，机器开起来，可以，但没多久又再次出现这种故障了。<br><br>难道是Windows XP的问题？换Windows7，没用，你想啊，电脑有时候甚至亮不起来，这不会是操作系统的问题。<br><br>难道是电源的问题？公司同事有台Thinkpad T500，我把他的电源借来试试看是不是电源的问题，结果故障依旧。到这里，我想我已经没招了。<br><br>这个怪毛病还怪在不一定出现，有时候隔了很长时间都不出现，很长时间有多长？说了你都不信，一两个月！用着用着貌似又自动好了，隔了一两个月都不再出现问题，但一旦出现这种死机的问题，好像又很频繁&#8230;&#8230;这到底什么问题。<br><br>你想啊，非电源，非电池，非配件，非散热问题，非接触不良的故障，而且间隙性出现，又能长期潜伏的故障&#8230;&#8230;猜猜看，还有什么可能性？<br><br>很难，对吧，但不管怎么说，最近我终于找到了一个听起来比较合理的答案：静电！<br><br>主机板上可能会积蓄一些静电，影响电子元器件的工作，导致机器莫名其妙死机。这样就能解释为什么冬天也会出现这种情况了；当然，也能解释为什么有时候一直不会出现了，因为空气湿度偏大的时候，是不会让静电逗留的；而机器闲置了一段时间后开机，静电已经慢慢释放了许多，所以可以开机，这个也能这么解释。<br><br>那如何释放静电？我的方法是用手碰一下机器外露的金属部分，比如USB口，或者VGA输出口，机器开着开着我就碰它一下，这种彻底死机的现象还真没再出现过。<br><br>但还有一个问题，那就是为什么就我的机器会积累静电？难道别人的机器没有这种现象吗？难道笔记本电脑的设计者没考虑到吗？
<img src ="http://www.cppblog.com/guogangj/aggbug/123323.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/guogangj/" target="_blank">Jiang Guogang</a> 2010-08-13 14:47 <a href="http://www.cppblog.com/guogangj/archive/2010/08/13/123323.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【CSDN】软件开发中遇到的一些问题</title><link>http://www.cppblog.com/guogangj/archive/2009/09/29/97545.html</link><dc:creator>Jiang Guogang</dc:creator><author>Jiang Guogang</author><pubDate>Tue, 29 Sep 2009 06:19:00 GMT</pubDate><guid>http://www.cppblog.com/guogangj/archive/2009/09/29/97545.html</guid><wfw:comment>http://www.cppblog.com/guogangj/comments/97545.html</wfw:comment><comments>http://www.cppblog.com/guogangj/archive/2009/09/29/97545.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/guogangj/comments/commentRss/97545.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/guogangj/services/trackbacks/97545.html</trackback:ping><description><![CDATA[<p style="FONT-FAMILY: 宋体"><span style="COLOR: #ff0000">[20060427发表于blog.csdn.net，20090929重新编辑]</span><br><span style="COLOR: #0000ff"><br>重新编辑注释：这是我上上家公司的离职总结，一些技术，几年没碰，现在都忘了，我感觉当时我的水平跟现在已经差不多了，难道说这几年都没什么进步？特别是这一年多时间，我怎么感觉自己心态变老很明显。文章中描述的一些问题到现在已经得到了比较好的解决，有些却依然存在，如果各位道友有什么见解，不妨拿出来分享一下。（BTW：当时公司主要是做一些小型网络游戏，棋牌类的，从文中能看得出来。）</span><br><br>对近日来一些问题进行思考，希望能有个解决方案。<br>&nbsp;<br><strong style="FONT-SIZE: 18pt">1、数据库方面</strong></p>
<p style="FONT-FAMILY: 宋体">每个项目都离不开数据库，而数据库的建立过程是个问题，如何将我们的开发成果移动到运营环境中是个问题，如何维护以后的更新更加是个问题，所有的东西都看起来是那么简单而缺乏技术含量，但真的尝试把它做好却是非常不容易，人工手动来维护这些文档是可以的，但恐怕这是一个专门的工作，如果干这个的人还同时做别的事情，总会无法避免地出现疏漏，我想一定需要借助工具了，而与这些工具的磨合，也是个不小的成本。</p>
<p style="FONT-FAMILY: 宋体"><strong>1）往往忘记写修改履历，不知道哪个是新的，哪个是旧的</strong><br>通病了，希望修改履历都别忘了写，包括修改日期、作者和内容，这样就不至于到出了问题找人负责的时候手忙脚乱，至于用CVS来管理怎样，我没经验。</p>
<p style="FONT-FAMILY: 宋体"><strong>2）多个人同时直接修改数据库，管理这个的人很痛苦<br></strong>没有好的解决方案。用CVS来维护如何？</p>
<p style="FONT-FAMILY: 宋体"><strong>3）Oracle 9i开发出的程序不一定能在Oracle 8i上使用</strong><br>千万别使用高版本的开发环境和低版本的运营环境，理想情况是一样的环境，不行的话反过来用低版本的开发环境和高版本的运营环境也可以。切记，产品的成功不在于开发它的工具是高级还是低级。<br><img border=0 alt="" src="http://www.cppblog.com/images/cppblog_com/guogangj/soft_problem_1.jpg" width=321 height=90><br><span style="FONT-SIZE: 10pt">由于版本不一致，原先设计好的注释到新的环境就变成了问号，不堪忍受</span></p>
<p style="FONT-FAMILY: 宋体"><strong>4）外键约束使用不当导致很多问题</strong><br>外键约束很大程度上保证了数据的完整性，但世界上所有的事情都是一分为二的，在我们开发过程中，外键约束往往约束的是我们而不是数据，当我们需要添加一行测试数据的时候，当我们需要修改一个字段属性的时候，当我们需要更新一个单元格的时候&#8230;&#8230;到最后，我发现我们的项目去处了很多外键约束，最后的成果和设计相去甚远了。对于小型项目，很多时候没必要使用外键约束，当你确定真的需要使用的时候，仔细思考，它真的合理吗？</p>
<p style="FONT-FAMILY: 宋体"><strong>5）冗余与效率问题</strong><br>总结过程中我发现了一些数据冗余，这是很正常的，比如一个用户表中包括了用户性别、出生日期和身份证号码，其实这就是冗余，因为我们完全可以通过身份证号码来确定用户性别和出生日期，但这种冗余是必要的。一定的冗余能提高我们的效率，我们往往需要在冗余与效率之间选择一个平衡点。参考数据库三范式。</p>
<p style="FONT-FAMILY: 宋体"><strong>6）命名问题</strong><br>表面上看又是一个没有技术含量的小问题，其实是最令我头疼的问题之一，一张user表中，出现了多个&#8220;state&#8221;，state表示一种状态，每个用户有若干种状态，很正常，我稍微列一下我能看到的：super_assistant_state、login_state、multi_user_state、forbidden_state、lock_state、score_lock_state&#8230;&#8230;如果和别的表关联起来，恐怕还有更多的state，这些state如果命名得不好，往往容易引起误会，比如lock_state和forbidden_state，两个都表示对用户的限制，如果注释中没有进一步详细的说明，谁又会知道那么多呢？</p>
<p style="FONT-FAMILY: 宋体"><strong>7）类型混乱的问题</strong><br>字段的类型有时候看起来确实混乱，比如什么时候用integer，什么时候用number，我想这绝对不是随意的，至于number究竟有多长，最长可以指定多长？谁研究过呢？integer和C++中32位的int类型有什么异同吗？而long类型和C++的long是一样的吗？字符串到底用char、varchar还是varchar2？我想需要进一步研究。</p>
<p style="FONT-FAMILY: 宋体"><strong>8）过于复杂的单句SQL语句</strong><br>Oracle的功能是很强大的，几乎支持所有的SQL风格，当然包括了复杂的联合查询和子查询，但过于庞大的select语句使后来的维护者感觉非常费劲，一个语句往往需要阅读很长时间，而且根据我的经验，调试时候出问题多的存储过程就是包含了这些复杂SQL语句的存储过程，我们有办法将它简化吗？如果不能简化，务必谨慎，测试测试再测试，确保其正确性，然后添加清晰的注释。</p>
<p style="FONT-FAMILY: 宋体"><span style="FONT-SIZE: 18pt"><strong>2、应用程序方面</strong></span></p>
<p style="FONT-FAMILY: 宋体">应用程序的问题主要还是集中在版本的控制上，包括消息头文件的版本，运营与维护的不同版本程序，测试与发行的不同版本。当然还有别的问题，不一定是技术上的原因了，使得后来做出来的成品和原先设计的相差很大，很多设计文档实际上已经废弃，加大了以后维护的难度。</p>
<p style="FONT-FAMILY: 宋体"><strong>1）common_lib的放置</strong><br>common_lib是我们使用的一套公共类库（与之类似的还有aeslib），主要的功能是网络通信、写log、hash表和队列等。几乎所有的程序都用到了这些功能，不考虑common_lib本身版本上的差距，我们有不同的使用方法，以Linux环境开发为例，一种是把common_lib与项目分离，放置在$(HOME)目录下，而在make文件中也指定了&#8220;$(HOME)/common_lib&#8221;的搜索路径；另一种是把common_lib放置在项目目录中，make文件指定的路径可能是&#8220;../common_lib&#8221;。前一种方法有可能把项目从一台机器移动到另一台机器（或从一个账号移动到另一个帐号）的时候发现common_lib找不到的情况，因为&#8220;$(HOME)/common_lib&#8221;不一定有嘛；后一种方法有可能会将common_lib所作的一些额外更改忽略掉，它用的还是自己的库。但考虑到common_lib趋于稳定，因此我们尽量使用后一种方法，程序能正确，稳定地运行就是我们的追求了，最新的代码并不是必须的。另外，使用common_lib的同时，我们也通常会用到aeslib，我觉得是不是将它们合并起来更好呢？</p>
<p style="FONT-FAMILY: 宋体"><strong>2）程序中的错别字</strong><br>这是个不重要又重要的问题，也许大家都默认之后不会觉得有什么不妥，但站在用户的角度，会不会觉得开发人员水平很差呢？我列举一下常见错误（括号内是正确用法）：登陆（登录）、Acount（Account）、超连接（超链接）、Sucess（Success）。</p>
<p style="FONT-FAMILY: 宋体"><strong>3）数据库？配置文件？写死？</strong><br>我们可能需要修改一些程序运行的参数，比如开分最大金额、心跳时间、最大连接客户端数目&#8230;&#8230;等等。这些参数的改变究竟如何实现？我观察了下程序，普遍有三种情况，一是将参数存放在数据库中（可以在运行中生效），二是写配置文件（重新启动程序生效），三是写死在程序中（需要重新编译程序，再运行方生效）。这个除了看需要外，我还想提些建议：<br>1、如果需要网页方面控制，只能使用数据库了；<br>2、只要以后有可能需要修改就不要写死在程序中，要知道，编译的环境不是哪里都有，就算有也不是什么人都会，况且代码是保密的；<br>3、对于较多的批量配置数据，尽量使用数据库；<br>4、程序初始化的配置数据使用配置文件通常更为恰当，因为初始化好之前往往无法访问数据库嘛。<br>最后，贪方便把东西都写死是不负责任的表现，结果往往带来很多不方便。</p>
<p style="FONT-FAMILY: 宋体"><strong>4）版本依然混乱</strong><br>我经常说的一句话是：&#8220;XXX，请把YYY的最新版本代码，给我一份。&#8221;或者说：&#8220;XXX，你这个是最新版本吗？最近一次改了什么内容？&#8221;其实老说这句话我都觉得丢脸，做了这么久开发，版本控制问题还是搞不好，不排除制度和开发模式上也有些问题，但考虑到自己有时候都不能很好执行，就不用怪别人了。通常表现为：<br>1、修改随意，常常忽略修改标识，无日期，无内容，改错了回头再寻找困难；<br>2、经常忘记CVS检入前先同步一次，导致内容混乱；<br>3、责任不明确，程序到底谁在负责啊？比如有人离开了公司，他的代码究竟谁来管？<br>4、旧版本经常不留备份，修改过程无踪迹可寻（CVS可能经历很多修改才检入一次）。</p>
<p style="FONT-FAMILY: 宋体"><strong>5）目录结构安排</strong><br>一个工程，安排怎样的目录结构？单个目录？或者许多？我想这应该不是随意的，我认为通常可以这样：将公共模块放置一个目录，将类库（比如数据库操作的类库，图形类库，加密狗类库）放置各自的目录，剩下自己编写的代码放一个目录即可，但如果自己写的代码模块独立性强，也可以考虑把他们分开，以便以后的复用。还有就是bin目录的建立，现在想想还是有必要的，将生成的可执行文件放置bin目录下（VC++自己有debug目录和release目录就另外讲了），配置文件也放置bin目录下，发布时候只需要发布bin目录嘛，我们通常写log，log目录呢？我认为放置在bin目录下，这样发布的时候也没忘记带上log目录，当然啦，要先将里面的log文件清空。</p>
<p style="FONT-FAMILY: 宋体"><strong>6）系统设计的问题</strong><br>在做概要设计的时候，我们往往有很多不错的想法，比如构建一个比较完美的游戏平台，以后只需要在平台上添加各种不同的游戏即可，这样就产生了对应的不同数据库，平台自身一个数据库，每个游戏都有自己的数据库，理论上没问题，实际操作起来问题就大了。先是web方面根本没考虑过这种情况，只设计了一个数据库连接，之后重新添加了新的数据库连接，但可扩充性恐怕就不好了，远没达到我们期预的效果，再就是控制管理部分程序权力过大，或者说设计不合理，往往逾越了平台和具体游戏之间的鸿沟，进一步加强了偶合，使平台和游戏越发不可分离，扩展性更差，最后做出来的产品已经很难把平台和游戏区别开来了，一个平台就是一个游戏，一个游戏包括一个平台。</p>
<p style="FONT-FAMILY: 宋体"><strong>7）考虑上的疏漏</strong><br>举个例子吧，我们在实际操作中需要创建新的服务器，但发现不成功，查原因，发现是因为数据库里需要添加新的服务器的条目才可以，添加条目是web的功能，结果发现web没做好，等web补上了，条目添加了，发现还是不行，因为服务器的运行需要数据库的很多信息参数，而这些参数目前都没有在添加条目的时候被添加，由于这次web的工作量较大，一时改不好，只能手动在数据库里添加，一张表添加的条目可能有数十条，相当繁琐，稍微不留神就可能出错。考虑上的疏漏可能会伴随我们一生，但每一点一滴都是宝贵的经验，起码我们不能再犯同样的错误。</p>
<p style="FONT-FAMILY: 宋体"><strong>8）log文件处理</strong><br>程序离不开log，按照我们的做法，每天产生一个log文件，时间一长，log文件就越来越多，占用空间越来越大，我想我们应该改进一下，比如每天自动删除3个月以前的log。<br><img border=0 alt="" src="http://www.cppblog.com/images/cppblog_com/guogangj/soft_problem_2.jpg" width=270 height=283><br><span style="FONT-SIZE: 10pt">一天加一天，log泛滥成灾:)</span></p>
<p style="FONT-FAMILY: 宋体"><strong>9）exit的使用</strong><br>程序碰到异常情况我们通常喜欢用exit()来结束程序的运行，在单线程中这样做是没问题的，但到了多线程则未必，根据我的经验，滥用exit()很容易导致程序结束的时候出现&#8220;非法操作&#8221;，甚至数据库写入不完整。下面是我认为的以后的做法（不一定很正确）：只有主线程能调用exit()，其它线程运行遇到致命错误后返回错误值，一层层往上返回，直至主线程，（或者将致命错误消息发至主线程）由主线程调用exit()。当然主线程也可以完全不用exit()，我更偏向于能不用就不用，因为exit()会不分黑红皂白强制结束程序，它不能让对象正常释构，另外它有类似goto语句，破坏程序的结构化，使程序条理变得不清晰。</p>
<p style="FONT-FAMILY: 宋体"><strong>10）多线程中MsgBox的问题</strong><br>测试/维护过程中发现过一些很奇怪的现象，程序莫名其妙地到了其它电脑就出现&#8220;非法操作&#8221;，后究其原因发现是使用MsgBox（这里通指消息框）的问题，该调用会弹出对话框请求用户确定取消等，或者仅仅将一些消息反映给用户。在多线程中使用MsgBox我认为存在隐患，一方面是开发工具的问题，MsgBox在C++ Builder中的实现和WINAPI的MessageBox是不一样的；另一方面MsgBox并不能每时每刻都能工作得很好，我就发现过多线程程序中C++ Builder的MsgBox不起作用的情况；再一方面MsgBox会对线程造成堵塞，如果让逻辑处理线程直接调用MsgBox则可能导致一些没有预料到的情况发生。我认为，MsgBox和用户界面相关，尽量只在主线程中调用。<br><img border=0 alt="" src="http://www.cppblog.com/images/cppblog_com/guogangj/soft_problem_3.jpg" width=419 height=205><br><span style="FONT-SIZE: 10pt">这种MsgBox恐怕难以令人接受</span></p>
<p style="FONT-FAMILY: 宋体"><span style="FONT-SIZE: 18pt"><strong>3、文档方面</strong></span></p>
<p style="FONT-FAMILY: 宋体">这里指的文档包括了各种设计文档、配置文件、说明书及程序注释，是程序可维护性的重要依据，但往往容易被忽略，它不能影响程序的性能，但我觉得从现在的角度来说，一个程序的可维护性往往比性能更重要。</p>
<p style="FONT-FAMILY: 宋体"><strong>1）配置文件的问题</strong><br>到底把配置文件放入CVS呢还是不放呢？都各有道理，放的话检出中有这个文件，用户知道去修改，但如果一个用户修改了配置文件并检入，然后另一个用户更新，那另一个用户的配置文件也跟着被改动了，可能导致错误；如果不放，那用户第一次检出时候没有这个配置文件，无法运行程序，但获得这个文件后不会因为之后的更新而导致文件被修改。我看还是不放的好，不经意地被改动配置文件是件很郁闷的事情，宁愿找不到配置文件自己另外去找一个。但有没有其它更完美的办法？</p>
<p style="FONT-FAMILY: 宋体"><strong>2）安装配置说明的问题</strong><br>我第一次把我认为不错的安装说明交给测试部让他们去执行的时候，我说：&#8220;尽量参照说明，不要问我，看看是否能按部就班完成。&#8221;结果是很令人沮丧的，一天跑来问我许多次，因为实在不知道下一步怎么弄，或是出了些意外。当然不排除是因为Linux易用性差的缘故，但无论怎么说，我的说明文档也十分糟糕，我一直在想怎么才能写出合格的说明文档呢？我想应该写好之后，把自己当成一个用户，尝试按说明去操作一遍，这是最起码的了。当然要写得好，真不亚于程序设计的难度，你考虑过意外出错吗？还有各种你看起来平常的术语用户是否就清楚？仔细仔细再仔细，难道说明真的很完美，没有任何错误了吗？我没有进一步的解决，只有苦功，在此提一下这其实并不简单，仅此而已。</p>
<p style="FONT-FAMILY: 宋体"><strong>3）说明书的问题</strong><br>先参考一下上面所说的安装配置说明的问题，是否存在，还有就是以下的一些问题了：1、格式不统一，章节不对齐；2、图片过大，调整后模糊，影响阅读；3、内容混乱，针对性不强，到底是一个针对网络管理员的说明书，还是针对一个普通用户的说明书？我想内容肯定相差很大。</p>
<img src ="http://www.cppblog.com/guogangj/aggbug/97545.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/guogangj/" target="_blank">Jiang Guogang</a> 2009-09-29 14:19 <a href="http://www.cppblog.com/guogangj/archive/2009/09/29/97545.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>五年多一线开发经历告诉我：软件开发——几乎不可能cooperate的工作</title><link>http://www.cppblog.com/guogangj/archive/2009/05/14/82909.html</link><dc:creator>Jiang Guogang</dc:creator><author>Jiang Guogang</author><pubDate>Thu, 14 May 2009 01:16:00 GMT</pubDate><guid>http://www.cppblog.com/guogangj/archive/2009/05/14/82909.html</guid><wfw:comment>http://www.cppblog.com/guogangj/comments/82909.html</wfw:comment><comments>http://www.cppblog.com/guogangj/archive/2009/05/14/82909.html#Feedback</comments><slash:comments>13</slash:comments><wfw:commentRss>http://www.cppblog.com/guogangj/comments/commentRss/82909.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/guogangj/services/trackbacks/82909.html</trackback:ping><description><![CDATA[写下这个标题，说实在我心里有些沉重，在当今这个团队精神一次一次地被提到重中之重的时代，我却感觉高度依赖脑力活动的软件开发工作其实几乎不可能真正的有团队合作。这是我从事了五年多一线开发（快六年了）之后的高度总结，也是要从事所谓&#8220;管理&#8221;工作最需要关注的一句话，请忘记&#8220;合作&#8221;！<br><br>为什么？俗话讲，一山不容二虎，如果这是一份高度依赖脑力运动（我用运动，不用劳动）的工作，这两个聪明人你说谁会听谁的呢？他们能否强强联合，1+1=2那样创造出更好的东西？110%，1+1不会等于2，120%，1+2不会大于2，那就只有小于2啰？一点没错！而我的经验告诉我，90%的情况，1+1&lt;1。如果你有幸作为握大权的管理者，请把这两个聪明人分开，让他们干不同的事情，根据他们的兴趣，爱好，去干不同的事情，如果实在找不到不同的事情，就让他们干一样的事情，但不是合作，而是各自单干，然后从他们各自生成的最终软件产品中，择优录取，这也总比让他们合作好。<br><br>在热力学中，有个概念叫&#8220;熵&#8221;，它是个能量概念，但却不表示&#8220;能&#8221;，而表示&#8220;不能&#8221;，假想一个孤立系统有两个物体，一个物体的温度很高，一个很低，它们的总的热量是100，然后你把这两个物体合在一起，高温物体的温度降低了，而低温物体的温度升高了，它们的总体热量是多少？孤立系统，注意，没有任何对外热传递，所以热量还是100，但由于这么一合，无论是高温物体，还是低温物体都没了温差，没了温差就不能利用这个热量做功，而做功能力的损失，就是熵。也许你感觉这段文字比较晦涩，没关系，通俗说，两个聪明人的聪明才智由于&#8220;合作&#8221;，都用于内耗上了，完了之后两个人一样是聪明人，但没有&#8220;工作&#8221;的能力了，或效率低下。<br><br>这种事情了屡见不鲜了，例子我想我无须多举，大家身边比比皆是，只要你是做软件开发的。也许你要问了，没有合作，如何开发大型软件？好问题，我也从事过大型软件的开发，但我现在回头看看，那根本不是什么合作，而我当时也不是一个真正意义上的&#8220;开发者&#8221;，我仅仅是个编码者和单元测试者，我有设计这个软件吗？我有在软件中体现出我的思想了吗？甚至，问得残酷点，我有知道我在实现什么业务逻辑吗？——答案全是No，这就是软件外包的典范，别人把软件设计好，详细到伪码级别了，我只是来做最低级的实现而已。也或许，这是一种&#8220;合作&#8221;的途径，铁打的营盘流水的兵，那些在底下干活的人永远不要问&#8220;为什么&#8221;，机械式的工作，流水线式的工作，这还需要有个前提，他们不能有太多的想法，比如我，实在是想法太多，那种地方自然就不欢迎我了，不久后卷铺盖走人。<br><br>我以前有个朋友无意中说了句话，他说：&#8220;公司本来就不需要那么多聪明人。&#8221;这话还真的如此，一带多的&#8220;合作&#8221;模式是有的，就是一个牛人，带着几个小弟，完成某个项目，但我想真正的开发者，是那个牛人，几个小弟可以做做外围，周边，比如机械式的测试，对，测试是保证软件质量的重要手段，需要大量，反复。如果不幸的是这几个小弟也是很聪明的人，那就比较难办些，这个牛人就得很牛，以绝对的技术和人格魅力优势&#8220;压倒&#8221;这几个小弟，&#8220;折服&#8221;他们，这就是德能兼备，试问这种牛人多么？再说了，真有这种牛人的话，让他独自完成一个大的项目，我想更为可靠，而不是外加几个捣蛋的聪明人。<br><br>熵，产生于艰难的内部交流，产生于公司庞大而迟缓的官僚系统，产生于自我独大的个人思想，与其打破这些障碍，不如设法让这些&#8220;合作&#8221;尽量减少？<br><br>当我们还没有适应Visual Studio 2005的时候，Visual Studio 2008就出来了，版本众多，让我们有点无所适从，Visual Studio 2008还没装好的时候，Visual Studio 2010蓄势待发，一个比一个强，利用个Wizard，圈圈点点几下，一个外观花哨的应用程序就生成了，而且还貌似Outlook，抑或IE，随便你，你一行代码不用写，这叫&#8220;先进工具&#8221;，但提高了生产力了吗？我想没有，你能圈圈点点几下生成的花哨程序，别人也行，程序虽然花哨，但换种角度说，其实你什么都没干，软件的灵魂在于设计者的思想，理解这个得费点心思，或者这样说吧，利用现在的技术，你也可以轻松拥有一幅达芬奇的《蒙娜丽莎》的油画，但这仅仅是个复制品，你能这样，别人也行，你拥有的这幅画没有什么价值，而达芬奇的《蒙娜丽莎》的价值在于这位大师在这幅画中融入的他的思想以及他的劳动，这是任何技术，或&#8220;先进工具&#8221;都无法替代的，永远无法替代。这段算是我讲的一点题外话，和《人月神话》中&#8220;没有银弹&#8221;的观点接近。<br><br>软件开发是一项高度依赖脑力的劳动，开发者的思想融汇其中，是真正类似艺术创作的工作。考虑&#8220;合作&#8221;，不是不可以，但无非是这两种情况：一是我技压群雄，以德服人，号令群英；二是把前一句的&#8220;我&#8221;换成别人，让我心服口服当他小兵。<br>
<img src ="http://www.cppblog.com/guogangj/aggbug/82909.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/guogangj/" target="_blank">Jiang Guogang</a> 2009-05-14 09:16 <a href="http://www.cppblog.com/guogangj/archive/2009/05/14/82909.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【CSDN】blog接龙</title><link>http://www.cppblog.com/guogangj/archive/2009/04/23/80810.html</link><dc:creator>Jiang Guogang</dc:creator><author>Jiang Guogang</author><pubDate>Thu, 23 Apr 2009 02:41:00 GMT</pubDate><guid>http://www.cppblog.com/guogangj/archive/2009/04/23/80810.html</guid><wfw:comment>http://www.cppblog.com/guogangj/comments/80810.html</wfw:comment><comments>http://www.cppblog.com/guogangj/archive/2009/04/23/80810.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/guogangj/comments/commentRss/80810.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/guogangj/services/trackbacks/80810.html</trackback:ping><description><![CDATA[<span style="FONT-FAMILY: 宋体"><span style="COLOR: red">【20060330发表于blog.csdn.net，20090423重撰写/编辑】</span><br><br>这是一个几年前和朋友玩过的小游戏，3年后的今天，再来玩一次。蓝色文字表示差别不大，红色文字表示有了新的变化。<br><br>响应球球号召，BLOG接龙游戏继续中。。。 <br>&nbsp;<br>游戏规则： 1.由某个blog发起，出一个题目。 2.在自己的blog中完成题目，然后点名另外几个blog完成同样的题目。 3.另外的几个blog完成题目以后再分别点名，依次类推。 4.被点名的blog在完成题目时要注明被哪个blog点名。 5.不可回传，加一条自己出的题。<br>&nbsp;<br>最近在看的电视：没电视看<br><span style="COLOR: #0000ff">我还是不喜欢电视哎。</span><br><br>最近在做的事情：浏览网页改程序<br><span style="COLOR: #0000ff">差不多还是这些事。</span><br><br>最近在听的音乐：经典流行音乐<br><span style="COLOR: #0000ff">差不多。</span><br><br>最近在吃的东西：盖浇饭<br><span style="COLOR: #0000ff">还是差不多。<br></span><br>最近在看的报刊：前程无忧<br><span style="COLOR: #0000ff">没怎么看报刊。</span><br><br>最近关心的话题：跳槽与改行<br><span style="COLOR: #0000ff">也差不多，只不过恐怕该行很难的了。</span><br><br>最近常去的地方：公司<br><span style="COLOR: #0000ff">SAME。</span><br><br>最近最想做的事：外出旅游，什么山什么洞我没去过的都很感兴趣<br><span style="COLOR: #0000ff">有点想外出旅游，也想学学东西。</span><br><br>最近常想的人：&nbsp; 我自己啊（最近是比较狼狈）<br><span style="COLOR: #ff0000">啊，这恐怕是最大不同，我有了自己牵挂的人。</span><br><br>最近身体情况：&nbsp; 身心俱疲<br><span style="COLOR: #0000ff">一样。</span><br><br>最近理财状况：&nbsp; 别提了，无财可理<br><span style="COLOR: #ff0000">攒点钱，准备还贷。</span><br><br>对朋友最想说的话：有什么项目，最近，适时让我分杯羹<br><span style="COLOR: #0000ff">也没什么特别的嘛。</span><br><br>对自己最想说的话：&#8220;造人要有信心D正得嘎嘛！&#8221;(Cantonese)<br><span style="COLOR: #ff0000">稳住，你最需要淡定。</span><br><br>想一个减肥的良方：别用电梯<br><span style="COLOR: #0000ff">还是运动最好。</span><br><br>记忆中做过最疯狂的事情之一：接受了600元月薪的工作，在上海——汗！<br><span style="COLOR: #0000ff">呵呵，蛮疯狂的。</span><br><br>喜欢K歌的程度1~10依次递增：5，再努力些就是K歌之王了，麦克风都让我征服<br><span style="COLOR: #0000ff">我觉得我还是很喜欢K歌的。</span><br><br>最喜欢吃的食物：家乡大排档<br><span style="COLOR: #0000ff">清炒西兰花。</span><br><br>不吃的几样食物：肥，油，辣，醋，酒精，味道重的&#8230;&#8230;本人皆忌，唉，没口福<br><span style="COLOR: #0000ff">还是如此，一点没变。</span><br><br>最想去的地方：黄山（没去过）<br><span style="COLOR: #0000ff">现在恐怕更喜欢丽江一些。</span><br><br>看到马路上谁觉得最恶心：不懂<br><span style="COLOR: #ff0000">对着手机大声怒吼的人。</span><br><br>最想要的礼物：一本有用的书<br><span style="COLOR: #0000ff">差不多也就那样。</span><br><br>心目中的伴侣是怎样的一个人：聪明贤惠的中国传统女性<br><span style="COLOR: #0000ff">嘻嘻，还真是那样啊。</span><br><br>你现在还单身吗？如果是，准备什么时候找一个？如果不是，WHO IS YOURS：是，厄&#8230;&#8230;不确定啊，当然我不喜欢现状<br><span style="COLOR: #ff0000">未婚，不过有个很不错的女友哦。</span><br><br>如果养宠物会养什么，起名字叫做什么：养只猫，叫&#8220;波斯&#8221;，如何？<br><span style="COLOR: #0000ff">差不多，不过养鱼可能更简单些。</span><br><br>如果只剩下一天的时间，你会做什么：往胸口猛打一拳，赶紧醒来！&#8230;&#8230;险些上班迟到，最讨厌做梦了。<br><span style="COLOR: #0000ff">不知道唉。</span><br><br>最多的时候，你能一心几用地做事情：我几乎不能分神<br><span style="COLOR: #0000ff">我还是那样，一分神事情就做不好了。</span><br><br>列举2，3个你觉得好玩的网站：我只知道几个有用的网站:(<br><span style="COLOR: #0000ff">看来我没啥长进，这方面。</span><br><br>推荐几首不太被注意的好听的歌：《一切为何》《无言感激》《孤单背影》，歌其实很有名，只是年代比较早了<br><span style="COLOR: #0000ff">后来发现《一切为何》这首歌曲子来自英文歌曲《Santa Fe》。</span><br><br>对你而言,什么事情最容易?什么事情最难? 写个HelloWorld最容易，开发个WindowsXP最难<br><span style="COLOR: #0000ff">哈哈，3年前我的话还是那么经典。<br></span><br>一句你认为最经典的话：&#8220;其实通过率是你们来定的。&#8221;考程序员之前，我们对以往过低的通过率表示担心，问老师，老师如此回答<br><span style="COLOR: #0000ff">经典。</span><br><br>印象最深刻的一部电影或书：《星球大战》<br><span style="COLOR: #0000ff">现在觉得《刺杀肯尼迪》这部电影似乎更震撼些。</span><br><br>喜欢现在的生活状态吗？不喜欢<br><span style="COLOR: #0000ff">不喜欢。</span><br><br>愿不愿意和网友见面？为什么？要看怎样的网友了，大概4个月前，我见过一个，他还比我大几岁呢，不见得见网友就是小孩子的表现<br><span style="COLOR: #0000ff">一般一般。</span><br><br>介绍下你最怀念的日子：计算机实习的日子，我算出尽了风头<br><span style="COLOR: #ff0000">其实，回头想想，就算是落魄的日子也是值得怀念的，人生就是一种过程，这几年的感悟啊。</span><br><br>对于被点名这件事，你有什么想法？MM布置的作业，写吧<br><span style="COLOR: #0000ff">这次我自己找事干的。</span><br><br>假如找不到你认为合适的那个人，你会一直独身,直到他(她)出现为止么? 可能不会。（好难回答，谁出的题？）<br><span style="COLOR: #ff0000">*^_^*</span><br><br>如果你已经洞悉了自己一生所会经历的一切，你还会继续努力吗？努力吧，要这么说的话，其实每个人结局都一样的<br><span style="COLOR: #0000ff">哇！我3年前的回答够经典。</span><br><br>有些在做的事情你会不会觉得曾经经历过？你觉得是为什么？有时会，但我无法回答为什么，可能目前对人脑的研究也没深入到这一步<br><span style="COLOR: #0000ff">是的。而且我还找到了外文对应的词：Deja vu。</span><br><br>在任何时候你都会勇敢的表达自己吗？不能在任何时候<br><span style="COLOR: #0000ff">差不多。</span><br><br>你喜欢现在的工作伐？要跳槽伐?一般喜欢，但我会跳的<br><span style="COLOR: #0000ff">哇，这个回答跟现在惊人一致啊。</span><br><br>目前你有几个最知心的朋友？算上你，5个，呵呵<br><span style="COLOR: #0000ff">差不多。</span><br><br>我的问题是：假如你工作快3年了，你还敢改行么？这个问题我自己回答：最后一次了。<br><span style="COLOR: #ff0000">现在的回答：看着办！</span><br><br>3年后的我再问个问题，嗯&#8230;&#8230;朋友们，觉得我好不？<br>——哈哈，我想答案是肯定的啦。<br></span>
<img src ="http://www.cppblog.com/guogangj/aggbug/80810.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/guogangj/" target="_blank">Jiang Guogang</a> 2009-04-23 10:41 <a href="http://www.cppblog.com/guogangj/archive/2009/04/23/80810.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>自行“修复”液晶显示器上的亮点</title><link>http://www.cppblog.com/guogangj/archive/2009/04/14/79875.html</link><dc:creator>Jiang Guogang</dc:creator><author>Jiang Guogang</author><pubDate>Tue, 14 Apr 2009 04:38:00 GMT</pubDate><guid>http://www.cppblog.com/guogangj/archive/2009/04/14/79875.html</guid><wfw:comment>http://www.cppblog.com/guogangj/comments/79875.html</wfw:comment><comments>http://www.cppblog.com/guogangj/archive/2009/04/14/79875.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cppblog.com/guogangj/comments/commentRss/79875.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/guogangj/services/trackbacks/79875.html</trackback:ping><description><![CDATA[<p>我在想我应不应该给&#8220;修复&#8221;两个字加上引号，加了嘛，别人都知道这是假的，趣味索然，不加嘛，又有标题党的嫌疑，我到底还是加了，做个诚实的孩子。</p>
<p>大概两个月前，我买了一台液晶显示器，24寸的，回来后发现有两个亮点（或者说色点，oh，对这些概念不熟的请baidu或google一下），一个在左边，红色，一个在右下，蓝色，在屏幕全黑的时候，这两个点还是亮的，蓝色这个不怎么显眼，没什么大碍，红色这个就要命了，感觉十分刺眼，而屏幕全黑的时候还是比较多的，比如在load一个游戏的时候，或者一场电影序幕的时候，总是能看到这个红点，而且，总是这个小红点特别吸引我的眼球。但液晶屏的坏点，别人也说了，是没法修复的，我在网上找了些时间，得出了这样的答案&#8230;&#8230;</p>
<p>果真无法修复？一切都难不住我这个高手！不相信我是高手的请收藏本博客，并关注我别的文章，哼！更重要的是，我的修复方法没有任何风险！</p>
<p>经过大量研究，我发现寻找一个暗点比寻找一个亮点要难得多。呵呵，我就知道你没有实验的条件，也没有实验的心思，那好，我告诉你一个思想实验，假设你在一个全黑的屋子里，屋子里有一个发光LED，你寻找它的难度如何，再假设你在一个墙壁窗户全白的极其明亮的屋子里，寻找屋子里的一只黑色的甲虫，难度如何？没错，我是让你比较这两种寻找的难度，明显寻找黑甲虫要困难得多，这就是我解决问题的思路——通过某些手段，我可以把这个亮点变为暗点！</p>
<p>你大吼：这怎么可能？这是物理故障，你不可能用软件解决！</p>
<p>不过我可没说我准备用软件方法解决哦，拿一直自来水笔，点一点碳素墨水，一点点就OK，把屏幕变为全黑，然后用笔尖碰一下这个红点，这样红点就永远不会看到了，但由于你笨手笨脚，这个点点得太大，变成了一坨，那就稍等，把屏幕调成全白，用指甲轻轻刮掉一些边缘，让它变成一个真正的暗点，起码算是接近暗点&#8230;&#8230;也许你又失败了，别灰心，多尝试几次，前面我说了，这没有风险。</p>
<p>所以，其实我的修复办法就是把这个亮点变为&#8220;暗点&#8221;，这样在屏幕全黑的情况下就不会刺眼了，那屏幕全白的情况呢？当然看到这个&#8220;暗点&#8221;了，但屏幕全白的时候并不是特别多，而且黑点并不是很&#8220;抢眼&#8221;，试试看就知道了。</p>
<p>最后，用软件的办法来避免黑点的显示，比如换一张墙纸，正好能掩盖住这个黑点，使用IE等背景是白色的软件的时候，把它拖到屏幕右边，反正显示器是宽屏，分辨率这么高，也用不完所有显示空间的。这样，这个问题就得到了解决，我看电影时候，不再感觉到这个亮点了&#8230;&#8230;</p>
<p>你大笑：你这也叫解决啊？还敢自称高手？</p>
<p>可你想得出来么？看看哥伦布发现美洲新大陆的故事吧，1492年，哥伦布发现了新大陆。从海上回来，他成了西班牙人民心目中的英雄。国王和王后也把他当作上宾，封他做海军上将。可是有些贵族瞧不起他，他们用鼻子一哼，说：&#8220;哼，这有什么希罕？只要坐船出海，谁都会到那块陆地的。&#8221; 在一次宴会上，哥伦布又听见有人在讥笑他了。&#8220;上帝创造世界的时候，不是就创造了海西边的那块陆地了吗？发现，哼，又算得了什么！&#8221;哥伦布听了，沉默了好一会儿，忽然从盘子里拿个鸡蛋，站了起来，提出一个古怪的问题：&#8220;女士们，先生们，谁能把这个鸡蛋竖起来？&#8221;鸡蛋从这个人手上传到那个人手上，大家都把鸡蛋扶直了，可是一放手，鸡蛋立刻倒了。最后，鸡蛋回到哥伦布手上，满屋子鸦雀无声，大家都要看他怎样把鸡蛋竖起来。哥伦布不慌不忙，把鸡蛋的一头在桌上轻轻一敲，敲破了一点儿壳，鸡蛋就稳稳地直立在桌子上了。&#8220;这有什么希罕？&#8221;宾客们又讥笑起哥伦布来了。&#8220;本来就没有什么可希罕的，&#8221;哥伦布说，&#8220;可是你们为什么做不到呢？&#8221;宾客们一个个强词夺理：&#8220;鸡蛋都破了，那算什么呢？&#8221;哥伦布却继续保持不以为然的态度：&#8220;我在刚开始定条件时，曾有说过不允许把鸡蛋敲破？&#8221;宾客们一时哑口无言。</p>
<p>当然了，我在刚开始定定条件的时候可没说过不允许产生新的&#8220;暗点&#8221;，更重要的是这种做法从事实上改善了我的液晶屏的视觉效果。</p>
<p>我一向认为，思维很重要，That's what I mean thinking。</p>
<img src ="http://www.cppblog.com/guogangj/aggbug/79875.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/guogangj/" target="_blank">Jiang Guogang</a> 2009-04-14 12:38 <a href="http://www.cppblog.com/guogangj/archive/2009/04/14/79875.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>