﻿<?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++博客-只有有耐心圆满完成简单工作的人，才能够轻而易举地完成困难的事。-随笔分类-XP敏捷</title><link>http://www.cppblog.com/leetaolion/category/4355.html</link><description>Only those who have the patience to do simple things perfectly ever acquire the skill to do difficult things easily. </description><language>zh-cn</language><lastBuildDate>Wed, 20 May 2009 06:27:10 GMT</lastBuildDate><pubDate>Wed, 20 May 2009 06:27:10 GMT</pubDate><ttl>60</ttl><item><title>[初探Xerces系列]xerces-c-3.0.1在CB07下编译不过的解决办法</title><link>http://www.cppblog.com/leetaolion/archive/2009/05/19/83381.html</link><dc:creator>创建更好的解决方案</dc:creator><author>创建更好的解决方案</author><pubDate>Tue, 19 May 2009 07:37:00 GMT</pubDate><guid>http://www.cppblog.com/leetaolion/archive/2009/05/19/83381.html</guid><wfw:comment>http://www.cppblog.com/leetaolion/comments/83381.html</wfw:comment><comments>http://www.cppblog.com/leetaolion/archive/2009/05/19/83381.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/leetaolion/comments/commentRss/83381.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/leetaolion/services/trackbacks/83381.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 最近对XML解析器进行评估，除了正在用的MyXML之外，打算找多几个DOM, SAX的解析器对比一下。<br>先后也看了TinyXML和XercesC，本来打算看看Intel的，时间不允许，算了。<br>Xerces比较全面的了，有DOM也有SAX，就评估他好了，最近项目里面的xml文件越来越大了，My有点吃不消。<br>Apache.org下载下来的工程是CB6.0的，CB07升级工程，编译报错。&nbsp;&nbsp;<a href='http://www.cppblog.com/leetaolion/archive/2009/05/19/83381.html'>阅读全文</a><img src ="http://www.cppblog.com/leetaolion/aggbug/83381.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/leetaolion/" target="_blank">创建更好的解决方案</a> 2009-05-19 15:37 <a href="http://www.cppblog.com/leetaolion/archive/2009/05/19/83381.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>重构故事——Chapter03</title><link>http://www.cppblog.com/leetaolion/archive/2008/08/25/59921.html</link><dc:creator>创建更好的解决方案</dc:creator><author>创建更好的解决方案</author><pubDate>Mon, 25 Aug 2008 08:14:00 GMT</pubDate><guid>http://www.cppblog.com/leetaolion/archive/2008/08/25/59921.html</guid><wfw:comment>http://www.cppblog.com/leetaolion/comments/59921.html</wfw:comment><comments>http://www.cppblog.com/leetaolion/archive/2008/08/25/59921.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/leetaolion/comments/commentRss/59921.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/leetaolion/services/trackbacks/59921.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: A计划1：平台版本在v2.1版本基础上进行迁移，逐个模块改造，平台1.0版本，在业务分支3.0版本之前发布，在3.x版本与其他业务版本结合；  <br>B计划1：平台版本不再单独演进，将现在的平台技术应用到即将发布的3.0版本中。包括插件结构、动态加载、动态激活，3.0版本中的业务模块一律按照插件规范开发。<br>// ---------------------------------------------------------------<br>A计划2：CCB管理配置文件，规范插件对主界面的配置。<br>B计划2：必须为界面配置文件准备替代方案，防止因为配置文件损坏造成的程序加载失败。&nbsp;&nbsp;<a href='http://www.cppblog.com/leetaolion/archive/2008/08/25/59921.html'>阅读全文</a><img src ="http://www.cppblog.com/leetaolion/aggbug/59921.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/leetaolion/" target="_blank">创建更好的解决方案</a> 2008-08-25 16:14 <a href="http://www.cppblog.com/leetaolion/archive/2008/08/25/59921.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>重构故事——Chapter01</title><link>http://www.cppblog.com/leetaolion/archive/2008/08/07/58278.html</link><dc:creator>创建更好的解决方案</dc:creator><author>创建更好的解决方案</author><pubDate>Thu, 07 Aug 2008 12:17:00 GMT</pubDate><guid>http://www.cppblog.com/leetaolion/archive/2008/08/07/58278.html</guid><wfw:comment>http://www.cppblog.com/leetaolion/comments/58278.html</wfw:comment><comments>http://www.cppblog.com/leetaolion/archive/2008/08/07/58278.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/leetaolion/comments/commentRss/58278.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/leetaolion/services/trackbacks/58278.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 比较头痛的是：原来在工程管理器中一系列的通知机制的修改，神秘的GIS模块，还有混乱不堪的数据库抽象层。按照Eclipse中对插件式的描述，这些插件不但作为插头插在别的插口上，还对外提供插口。&nbsp;&nbsp;<a href='http://www.cppblog.com/leetaolion/archive/2008/08/07/58278.html'>阅读全文</a><img src ="http://www.cppblog.com/leetaolion/aggbug/58278.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/leetaolion/" target="_blank">创建更好的解决方案</a> 2008-08-07 20:17 <a href="http://www.cppblog.com/leetaolion/archive/2008/08/07/58278.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>温度计的寓言</title><link>http://www.cppblog.com/leetaolion/archive/2008/03/14/44525.html</link><dc:creator>创建更好的解决方案</dc:creator><author>创建更好的解决方案</author><pubDate>Fri, 14 Mar 2008 12:49:00 GMT</pubDate><guid>http://www.cppblog.com/leetaolion/archive/2008/03/14/44525.html</guid><wfw:comment>http://www.cppblog.com/leetaolion/comments/44525.html</wfw:comment><comments>http://www.cppblog.com/leetaolion/archive/2008/03/14/44525.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/leetaolion/comments/commentRss/44525.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/leetaolion/services/trackbacks/44525.html</trackback:ping><description><![CDATA[故事是这样的：有一个由5个年轻人合伙建立的小软件公司YoungSoft co. ltd，成立不久，业务不多，刚刚实现收支平衡。<br>一场突发的流行性感冒，使得市面上体温计奇缺，价格也是水涨船高。一个农民企业家投资50w创建的温度计公司Good Metor，一直惨淡经营，这么好的机会，自然不会放过。市场上价格最高的是一种能记录一段时间内人体温度变化曲线，并判断使用者是否患上这种可怕的流感的智能体温计Smart Thermometer。其实现很简单，无非是在传统的体温计上加一块单片机，体温计和单片机满大街都是，而单片机内程序的掌握在AnyMetor几家大型温度计厂商手中，从不外泄。于是Good Metor决定赌一把，找人开发这种软件，希望借此咸鱼翻身。<br>一个偶然的机会，GoodMetor来到了YoungSoft，双方一拍即合。由YongSoft承担Smart Thermometer软件的开发工作，价钱谈定100kRMB，定金30k，双方约定3个月之内交货，按期交货另有奖金10kRMB。<br>这种工作对YongSoft简直是手到擒来，哥5个齐上阵，不肖两个月的时间，GoodSmartMetro v1.0版本就Release了。剩下一个月的时间，5位年轻人有足够的时间喝喝茶，聊聊天，做些零碎的活，等着GoodMetor来验收。<br>在两个半月的时候，GoodMetor就坐不住了，匆匆忙忙来到YoungSoft，当得知软件已经正式发布的时候，自然喜不自禁，当日即付清货款和奖金，回厂批量生产。<br>可怕的流感又持续了两个月，终于的到了有效的控制。GoodMetor公司的超低价只能体温计在这次抗击流感中在为国家和社会作出卓越贡献的同时，更为公司赚了个盆满钵满，500w的纯利润啊，GoodMetor的老大做梦都没想到过。<br>CPI高企，钱存银行不明智，GoodMetor老大决定：扩大生产。生产啥呢？现在人都讲究健康饮食，饮用水上更是严格把关，科学研究表明，烧开水时如果水温上升曲线和推荐曲线吻合，人喝了之后会更健康。于是一种监测水温控制火候的新型灶具HealthOven应运而生。老大拍板，就搞它了。<br>于是又找到了YoungSoft。<br>半年过去了，YoungSoft的几个年轻人做了几个小项目，人员结构也发生了改变，大家有了更明确的分工。一个联系业务，分析需求，少量编码的HuManager，三个编码的WenProgramers，一个负责测试，少量编码的WuTester。<br>HuManager分析认为，HealthOven和SmartThermometer之间，除测量范围从人的体温上升到水的沸点之外，温度计中的液体也从水银换成了酒精。GoodSmartMetro v1.0中采用了一个免费的液体体积温差换算库MercuryLib，所以做的时候省去了大把的工作。酒精和水银的物理属性相差太大，这次换算的功能怕是要自己开发了，暂定名为LiquidLib，支持水银和酒精的体积温差换算。但是以前直接调用MercuryLib的模块必须进行解耦和测试，多数不能要了。<br>最终，双发约定5个月内软件交付使用，总价50wRMB，定金20wRMB，及时交付奖金5wRMB。<br>在GoodSmartMetro v2.0开发进行到第3个月的时候，WenProgramer了解到，产业升级过程中，温控炉GreenIron炼钢能大幅降低能耗，并在一次项目组CCB会议上提了出来，大家一致认为YoungSoft要加速发展，必须着眼未来。GoodSmartMetro v2.0版本可以为将来打开GreenIron市场早做准备。不能再吃MercuryLib那样的亏了。LiquidLib模块需要良好的通用性，将来可以作为平台的基础模块，支持各种不同液体做成温度计的温控软件开发。<br>GreenIron设备商采用不同的液体做成的温度计，在这个问题上，业界还没有统一的标准。<br>（未完待续...）<br>
<img src ="http://www.cppblog.com/leetaolion/aggbug/44525.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/leetaolion/" target="_blank">创建更好的解决方案</a> 2008-03-14 20:49 <a href="http://www.cppblog.com/leetaolion/archive/2008/03/14/44525.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>我和充斥臭味代码的战争</title><link>http://www.cppblog.com/leetaolion/archive/2008/01/12/41020.html</link><dc:creator>创建更好的解决方案</dc:creator><author>创建更好的解决方案</author><pubDate>Sat, 12 Jan 2008 05:00:00 GMT</pubDate><guid>http://www.cppblog.com/leetaolion/archive/2008/01/12/41020.html</guid><wfw:comment>http://www.cppblog.com/leetaolion/comments/41020.html</wfw:comment><comments>http://www.cppblog.com/leetaolion/archive/2008/01/12/41020.html#Feedback</comments><slash:comments>23</slash:comments><wfw:commentRss>http://www.cppblog.com/leetaolion/comments/commentRss/41020.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/leetaolion/services/trackbacks/41020.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 从去年8月份到现在，我一直在从事一个261k行代码的项目（不含空行和注释）。<br>其中由我本人编写的代码10.9k行（不含空行和注释，我本人所写的注释大约1/8有效代码行，属于比较少的）。<br>TDD的老爹Kent说如果已经有可以运行的代码，这时候是不适合引入TDD的。对已经可以运行的261k行代码重新写测试用例，怕是要出人命的。我想Kent老爹说的是老代码从新TDD，言之有理，对于一个成年人你来T他的小DD，当然就要踢出大事情来。但是对于一些新模块，或者说是老模块需要彻底修改（几乎全部抛弃）的时候，年轻人吗，从小开始T他的小DD，慢慢培养，说不定能T出一个会铁裆功的模块来，到时候岂不是天下无敌了。&nbsp;&nbsp;<a href='http://www.cppblog.com/leetaolion/archive/2008/01/12/41020.html'>阅读全文</a><img src ="http://www.cppblog.com/leetaolion/aggbug/41020.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/leetaolion/" target="_blank">创建更好的解决方案</a> 2008-01-12 13:00 <a href="http://www.cppblog.com/leetaolion/archive/2008/01/12/41020.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>