﻿<?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++博客-小P成长记</title><link>http://www.cppblog.com/enderson/</link><description>透过C++看人生</description><language>zh-cn</language><lastBuildDate>Fri, 03 Apr 2026 23:00:35 GMT</lastBuildDate><pubDate>Fri, 03 Apr 2026 23:00:35 GMT</pubDate><ttl>60</ttl><item><title>第二桶 基于对象的编程 第十碗 赶写初步项目范围 老C讲解项目过程</title><link>http://www.cppblog.com/enderson/archive/2009/10/08/98075.html</link><dc:creator>Anderson</dc:creator><author>Anderson</author><pubDate>Thu, 08 Oct 2009 02:48:00 GMT</pubDate><guid>http://www.cppblog.com/enderson/archive/2009/10/08/98075.html</guid><wfw:comment>http://www.cppblog.com/enderson/comments/98075.html</wfw:comment><comments>http://www.cppblog.com/enderson/archive/2009/10/08/98075.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cppblog.com/enderson/comments/commentRss/98075.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/enderson/services/trackbacks/98075.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: “首先我们需要参考Project charter，因为里面有一些假设会变为项目风险；其次里面有我们业务、商业上的目标；而且里面还会有一些重要的里程碑。其次我们需要参考工作说明书，涉及里面的项目背景、目标和产品范围的说明。然后我们使用项目管理方法论……”&nbsp;&nbsp;<a href='http://www.cppblog.com/enderson/archive/2009/10/08/98075.html'>阅读全文</a><img src ="http://www.cppblog.com/enderson/aggbug/98075.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/enderson/" target="_blank">Anderson</a> 2009-10-08 10:48 <a href="http://www.cppblog.com/enderson/archive/2009/10/08/98075.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>第二桶 基于对象的编程 第九碗 老C撰写项目章程 小P初闻项目管理(三)</title><link>http://www.cppblog.com/enderson/archive/2009/09/16/96396.html</link><dc:creator>Anderson</dc:creator><author>Anderson</author><pubDate>Wed, 16 Sep 2009 03:31:00 GMT</pubDate><guid>http://www.cppblog.com/enderson/archive/2009/09/16/96396.html</guid><wfw:comment>http://www.cppblog.com/enderson/comments/96396.html</wfw:comment><comments>http://www.cppblog.com/enderson/archive/2009/09/16/96396.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/enderson/comments/commentRss/96396.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/enderson/services/trackbacks/96396.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 相当具有后现代解构主义的美感，很有27号的设计风格……”小P对着白板品头论足。<br><br>“呵呵，呵呵……”老C傻笑，“画的好不好另说，这个图说明了9个知识领域相互的关系，质量、范围、费用和时间是根本，沟通、人力资源和采购是支柱，风险悬而未决，需要其他部分的支撑，项目经理做整体和集成管理。而项目管理计划就是如何盖这个房子的蓝图或者说明书，下来我们就需要制定一个项目计划啦——记住，项目计划不仅仅是一些时间上的安排而已。不过在此之前我们需要一个项目初步范围说明书。”<br><br>&nbsp;&nbsp;<a href='http://www.cppblog.com/enderson/archive/2009/09/16/96396.html'>阅读全文</a><img src ="http://www.cppblog.com/enderson/aggbug/96396.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/enderson/" target="_blank">Anderson</a> 2009-09-16 11:31 <a href="http://www.cppblog.com/enderson/archive/2009/09/16/96396.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>第二桶 基于对象的编程 第八碗 老C撰写项目章程 小P初闻项目管理(二).doc</title><link>http://www.cppblog.com/enderson/archive/2009/08/31/94870.html</link><dc:creator>Anderson</dc:creator><author>Anderson</author><pubDate>Mon, 31 Aug 2009 05:48:00 GMT</pubDate><guid>http://www.cppblog.com/enderson/archive/2009/08/31/94870.html</guid><wfw:comment>http://www.cppblog.com/enderson/comments/94870.html</wfw:comment><comments>http://www.cppblog.com/enderson/archive/2009/08/31/94870.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/enderson/comments/commentRss/94870.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/enderson/services/trackbacks/94870.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: “没错，没错，”老C点头，“看看SOW，就是statement of work，工作说明书，我们说明要进行的工作，最好先就工作目标达成一致。同时我们在进行目标说明时，一定要遵从S.M.A.R.T.原则，就是一定要S-specific，M-measurable, A-attainable, R-realistic, T-timely。看，如果我说‘提升编程技能’这个目标，是个好的目标吗？”<br>“唔……看来不是一个好的目标，因为这个东东第一不确定，第二没有办法度量，第三没有时间要求……总之做没做到主观性太大不好评价。”小P想了想，说道。<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/enderson/archive/2009/08/31/94870.html'>阅读全文</a><img src ="http://www.cppblog.com/enderson/aggbug/94870.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/enderson/" target="_blank">Anderson</a> 2009-08-31 13:48 <a href="http://www.cppblog.com/enderson/archive/2009/08/31/94870.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>第二桶 基于对象的编程 第七碗 老C撰写项目章程 小P初闻项目管理(一)</title><link>http://www.cppblog.com/enderson/archive/2009/07/09/89655.html</link><dc:creator>Anderson</dc:creator><author>Anderson</author><pubDate>Thu, 09 Jul 2009 07:21:00 GMT</pubDate><guid>http://www.cppblog.com/enderson/archive/2009/07/09/89655.html</guid><wfw:comment>http://www.cppblog.com/enderson/comments/89655.html</wfw:comment><comments>http://www.cppblog.com/enderson/archive/2009/07/09/89655.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cppblog.com/enderson/comments/commentRss/89655.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/enderson/services/trackbacks/89655.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:     “嘶，叫我想想我是在干什么来着……”由于和小P喷了过长的时间，老C一时想不起来自己要干什么，“对了！”他一拍桌子，吓了小P一跳，“我本来是想直接当项目经理的，但项目经理需要项目章程来任命，所以我们的这个项目需要一个项目章程，我就使用Develop project charter过程来产生这个项目章程，但是这个过程里面有一个输入是工作说明书，所以我不得不先扮演一下sponsor来完成这个工作说明书，这样才可以产生charter来任命我这个项目经理……”老C郁闷道。<br><br>    “哦？这个项目charter是做什么用的？”小P好奇。<br><br>    “呵呵，charter最主要的作用是授权项目的项目经理，并且批准项目的正式开始。”老C回答，“一般charter是由sponsor或者一个外部的组织发出的，在实际中因为sponsors或者组织是出钱的，所以……他们要说了算啊，而且他们也要对他们选择的项目经理负责，并且规定了项目经理在项目中的职责与权利。唔，你先理解这么多吧，我们以后还会再讨论到这些的。”&nbsp;&nbsp;<a href='http://www.cppblog.com/enderson/archive/2009/07/09/89655.html'>阅读全文</a><img src ="http://www.cppblog.com/enderson/aggbug/89655.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/enderson/" target="_blank">Anderson</a> 2009-07-09 15:21 <a href="http://www.cppblog.com/enderson/archive/2009/07/09/89655.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>第二桶 基于对象的编程 第六碗 哥俩又谈递推模型 小P三解通项公式</title><link>http://www.cppblog.com/enderson/archive/2009/04/13/79797.html</link><dc:creator>Anderson</dc:creator><author>Anderson</author><pubDate>Mon, 13 Apr 2009 08:02:00 GMT</pubDate><guid>http://www.cppblog.com/enderson/archive/2009/04/13/79797.html</guid><wfw:comment>http://www.cppblog.com/enderson/comments/79797.html</wfw:comment><comments>http://www.cppblog.com/enderson/archive/2009/04/13/79797.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/enderson/comments/commentRss/79797.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/enderson/services/trackbacks/79797.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:      “但是这组递推公式无法依照我们前面的解法解出来它的通项，因为我们很难将它转换为一个求和的方程。”老C说道，“在不知道更好的解决方法之前，我们只有拼拼人品，使用数学归纳法啦。”<br>     “唔，你是说要猜测出通项公式，然后使用数学归纳法证明吗？”小P问道。<br>     “是啊是啊，”老C回答，“你好歹是本科毕业，这个应当难不倒你吧……”<br>     “切，这个只要高中毕业就会了！”小P不屑。<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/enderson/archive/2009/04/13/79797.html'>阅读全文</a><img src ="http://www.cppblog.com/enderson/aggbug/79797.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/enderson/" target="_blank">Anderson</a> 2009-04-13 16:02 <a href="http://www.cppblog.com/enderson/archive/2009/04/13/79797.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>第二桶 基于对象的编程 第五碗 哥俩再谈递推模型 小P二解通项公式</title><link>http://www.cppblog.com/enderson/archive/2009/03/22/77502.html</link><dc:creator>Anderson</dc:creator><author>Anderson</author><pubDate>Sun, 22 Mar 2009 11:37:00 GMT</pubDate><guid>http://www.cppblog.com/enderson/archive/2009/03/22/77502.html</guid><wfw:comment>http://www.cppblog.com/enderson/comments/77502.html</wfw:comment><comments>http://www.cppblog.com/enderson/archive/2009/03/22/77502.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/enderson/comments/commentRss/77502.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/enderson/services/trackbacks/77502.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:       “ 算了，今天就到这里吧。我们明天再运用递归的思想解决这个小朋友吃苹果的问题，顺便再讨论一些对算法的效率进行评估的方法……这些都是基础，如果不了解这些就去盲目的学习C++语言、面向对象编程和类库什么的，对你有害无益……因为你的思想就会局限在一个比较低的水平上。”<br>      “是吗是吗？”小P不解，“会吗？”<br>      “的确是这样。”老C回答，“我们学习的是编程，而不仅仅学习的是语言。我们希望通过对语言的学习提高的是编程的能力……这样你在以后的工作中，无论使用什么语言，都会飞快的上手，同时分析问题和解决问题的能力也会有显得众不同……要深入进去，这就是为什么说teach yourself programming in ten years的原因……这10年中，你学习的如果仅仅是语言的话，那么等10年后，你会发现，自己原来没有10年的编程经验，有的只是10个1年编程经验……” &nbsp;&nbsp;<a href='http://www.cppblog.com/enderson/archive/2009/03/22/77502.html'>阅读全文</a><img src ="http://www.cppblog.com/enderson/aggbug/77502.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/enderson/" target="_blank">Anderson</a> 2009-03-22 19:37 <a href="http://www.cppblog.com/enderson/archive/2009/03/22/77502.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>第二桶 基于对象的编程 第四碗 哥俩首谈递推模型 小P开求通项公式</title><link>http://www.cppblog.com/enderson/archive/2009/03/16/76783.html</link><dc:creator>Anderson</dc:creator><author>Anderson</author><pubDate>Mon, 16 Mar 2009 14:06:00 GMT</pubDate><guid>http://www.cppblog.com/enderson/archive/2009/03/16/76783.html</guid><wfw:comment>http://www.cppblog.com/enderson/comments/76783.html</wfw:comment><comments>http://www.cppblog.com/enderson/archive/2009/03/16/76783.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/enderson/comments/commentRss/76783.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/enderson/services/trackbacks/76783.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: “其实就是和一般的待定系数法的思想是一样的，给出一个我们已经知道的特解——这个解一般都是比较容易看出来或者推导出来的——将这个特解代入原方程，并化简，可以得到一个关于系数的方程；再猜测一个特解，代入原方程，化简后又得到一个关于系数的方程……如果我们得到待定系数个数的方程——比如我们待定3 个系数——我们可以通过3个特解得到3个关于这3个系数的方程，若这3个方程联立后可解，那么我们就可以通过方程组解得这3个系数。”老C擦擦唾沫。&nbsp;&nbsp;<a href='http://www.cppblog.com/enderson/archive/2009/03/16/76783.html'>阅读全文</a><img src ="http://www.cppblog.com/enderson/aggbug/76783.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/enderson/" target="_blank">Anderson</a> 2009-03-16 22:06 <a href="http://www.cppblog.com/enderson/archive/2009/03/16/76783.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>第二桶 基于对象的编程 第三碗 老C首演迭代模式 小P决定深练内功</title><link>http://www.cppblog.com/enderson/archive/2009/03/11/76169.html</link><dc:creator>Anderson</dc:creator><author>Anderson</author><pubDate>Tue, 10 Mar 2009 18:59:00 GMT</pubDate><guid>http://www.cppblog.com/enderson/archive/2009/03/11/76169.html</guid><wfw:comment>http://www.cppblog.com/enderson/comments/76169.html</wfw:comment><comments>http://www.cppblog.com/enderson/archive/2009/03/11/76169.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/enderson/comments/commentRss/76169.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/enderson/services/trackbacks/76169.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:      “哦，这是一个习惯用法。一般的抽象类的析构函数要么是public virtual的，要么是protected 非virtual的。我在这里将它设计为protected 非virtual是因为我不想让Iterator动态生成，就是说不希望Iterator的继承类的对象是在堆上创建的。”看到小P还是有些莫名其妙，老 C接着说，“关于这个小技巧，我会在后面一段时间……一个月后吧……跟一些其他的小技巧一起总结一下，在这里你就先将就着看吧。”<br>     “也好……”小P槑。<br>     “接下来的代码……很傻很天真……”老C解释道，“因为在这里只是说明问题而已，你可不要学习这种设计啊。”&nbsp;&nbsp;<a href='http://www.cppblog.com/enderson/archive/2009/03/11/76169.html'>阅读全文</a><img src ="http://www.cppblog.com/enderson/aggbug/76169.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/enderson/" target="_blank">Anderson</a> 2009-03-11 02:59 <a href="http://www.cppblog.com/enderson/archive/2009/03/11/76169.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>第二桶 基于对象的编程 第二碗 老C初谈统一建模 小P开练建模语言(之二)</title><link>http://www.cppblog.com/enderson/archive/2009/03/09/76005.html</link><dc:creator>Anderson</dc:creator><author>Anderson</author><pubDate>Mon, 09 Mar 2009 09:41:00 GMT</pubDate><guid>http://www.cppblog.com/enderson/archive/2009/03/09/76005.html</guid><wfw:comment>http://www.cppblog.com/enderson/comments/76005.html</wfw:comment><comments>http://www.cppblog.com/enderson/archive/2009/03/09/76005.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/enderson/comments/commentRss/76005.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/enderson/services/trackbacks/76005.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:      “哦，叫我想想。”小P眨眨眼睛，“好像和遍历这些数据结构花费的时间有关系，如果我遍历一遍这些数据结构的所有元素所花费的时间是元素个数的线性函数，那么这个数据结构就是线性表，哦……时间复杂度就是n啦。”小P又想想，“好像就是这样，我所接触的线性表包括array, linked list, stack, queues，而queues可能有各种奇怪的queue，比如循环的，优先级的什么的……”<br>     “你的记忆力不错啊。”老C称赞道，“嗯，基本上线性表就是这么回事啦。”他点点头，“我再来问一个貌似题外话的问题，你知道在C语言中，有哪4类指针吗？”<br>     “槑……”小P摇头，飞快。<br>     “在C语言中，有4种指针，分别是一般的指针，空指针、0指针和past the last one指针。”老C道。<br>     “槑……”小P道，“一般的指针就是指向数据和函数的指针吧，空指针应当就是void*，0指针应当就是无法dereference的那种指针，那么什么是past the last one指针？”他不解的问。<br>     “很简单，我&nbsp;&nbsp;<a href='http://www.cppblog.com/enderson/archive/2009/03/09/76005.html'>阅读全文</a><img src ="http://www.cppblog.com/enderson/aggbug/76005.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/enderson/" target="_blank">Anderson</a> 2009-03-09 17:41 <a href="http://www.cppblog.com/enderson/archive/2009/03/09/76005.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>第二桶 基于对象的编程 第一碗 老C初谈统一建模 小P开练建模语言(之一)</title><link>http://www.cppblog.com/enderson/archive/2009/02/26/74983.html</link><dc:creator>Anderson</dc:creator><author>Anderson</author><pubDate>Thu, 26 Feb 2009 07:34:00 GMT</pubDate><guid>http://www.cppblog.com/enderson/archive/2009/02/26/74983.html</guid><wfw:comment>http://www.cppblog.com/enderson/comments/74983.html</wfw:comment><comments>http://www.cppblog.com/enderson/archive/2009/02/26/74983.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cppblog.com/enderson/comments/commentRss/74983.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/enderson/services/trackbacks/74983.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:  “是啊，无论怎么样，统一和标准是我们的需求，只有用统一的标准的符号我们才可以更好的交流。一个反面的例子是我们上数字电路里面的与门、非门、与非门和或门等等的逻辑符号，国家标准与业界流行的国际标准就不一样，导致学生在毕业的时候可能看不懂行业内的电路图——就事实而论，我们大部分的电路模块产品和芯片的说明手册还是欧美的居多——这样即加重了企业负担，可能需要再花一部分精力来培训新人，也增加了学生的负担——为了在毕业的时候增加些许竞争力，不得不学习两套符号系统。总之我觉得这个事情还是比较脑残的，让我想到窄轨铁路……”老C借机发泄了一下从毕业就开始累积的郁闷。。。。。。<br>“UML是建模工具，不是编程工具。模型需要对实际的事物进行合理的剪裁和取舍，注意模型的清晰性比信息的完备性更重要，如果不论青红皂白的将所有信息一股脑全部放在模型上，那样图形看起来会很恐怖的。”老C接着解释，“所以不要要求模型完全反应细节信息，只要在大方向上对就可以了。同时你还要了解模型所要描述的问题规模，如果是一个大型的交易系统，按照我绘出的sequence diagram的详细程度，那是根本不可能的。在描述这样的系统时，&nbsp;&nbsp;<a href='http://www.cppblog.com/enderson/archive/2009/02/26/74983.html'>阅读全文</a><img src ="http://www.cppblog.com/enderson/aggbug/74983.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/enderson/" target="_blank">Anderson</a> 2009-02-26 15:34 <a href="http://www.cppblog.com/enderson/archive/2009/02/26/74983.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>