⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 三本絕佳小書.htm

📁 讲述了一个编成人员怎样由一个学生走向程序开发人员又由一个开发人员从新回到了测试人员的失败经历和他对想要致力于从事开发工作的学习者的一些见解
💻 HTM
📖 第 1 页 / 共 2 页
字号:
      cast down(向下转型)的动作<BR>条款40:透过 layering(分层技术)来模塑 has-a 或 
      is-implemented-in-terms-of 的关系<BR>条款41:区分 inheritance 和 
      templates<BR>条款42:明智地运用 private 
      inheritance(私有继承)<BR>条款43:明智地运用多重继承(multiple 
      inheritance,MI)<BR>条款44:说出你的意思并了解你所说的每一句话<BR><BR>第七章:杂项讨论(Miscellany)<BR>条款45:知道 
      C++(编译器)默默为我们完成和呼叫哪些函式<BR>条款46:宁愿编译和联结时出错,也不要执行时才错<BR>条款47:使用 non-local 
      static objects 之前先确定它已有初值<BR>条款48:不要对编译器的警告讯息视如不见<BR>条款49:尽量让自己熟悉 C++ 
      标准程式库<BR>条款50:加强自己对 C++ 的了解<BR><BR></P><!--msthemeseparator-->
      <P align=left><IMG src="三本絕佳小書.files/urbhorsa.gif"></P>
      <P><IMG height=270 alt="more-effective-cpp.jpg (30509 bytes)" 
      src="三本絕佳小書.files/more-effective-cpp.jpg" width=213 
      border=1><BR><BR>【基本资料】<BR>书名:More Effective C++ : 35 New Ways to Improve 
      Your Programs and Designs<BR>作者:Scott Meyers<BR>出版:Addison Wesley, 
      0-201-63371-X, 1996<BR>定价:未标示<BR>页数:318<BR><BR>继 Effective C++ 之後,Scott 
      Meyers 於 1996 推出这本「续集」。条款变得比较少,页数倒是多了一些,原因是这次选材比「第一集」更高阶,尤其是第五章。Meyers 
      将此章命名为技术(Techniques),并明白告诉你,其中都是一些 patterns,例如 virtual ctors、smart 
      pointers、reference counting、proxy classes,double 
      dispatching┅等等。这一章的每个条款篇幅都在 15~30 
      页之谱,实在让人有「山穷水尽疑无路,柳暗花明又一村」之叹。<BR><BR>虽然出版年代稍嫌久远,本书并没有第二版,原因是当其出版之时(1996),C++ 
      Standard 已经几乎定案,本书即依当时的标准草案而写。其间与现今之 C++ 标准规格几乎相同。可能变化的几个弹性之处,Meyers 
      也都有所说明与提示。读者可以连结作者提供的网址,看看上下两集的勘误与讨论(数量之多,令人惊恐。幸好多是技术讨论或文字斟酌,并没有什麽重大误失)。<BR><BR>本书第一页列有它所获得的赞誉。对於读者,这是一份值得叁考的资料,我试着把它们译为中文,条列於下:<BR><BR><FONT 
      color=#408080>※这是一本多方面发人深省的 C++ 书籍:不论在你偶尔用到的语言特性上,或是在你自以为十分熟悉的语言特性上。只有深刻了解 
      C++ 编译器如何解释你的码,你才有可能以 C++ 
      语言写出稳健强固的软体。本书是协助你获得此等层级之了解过程中,一份极具价值的资源。读过本书之後,我感觉像是浏览了 C++ 
      程式大师所检阅过的码,并获得许多极具价值的洞见。<BR>- Fred Wild, Vce President of 
      Technology,<BR>Advantage Software 
      echnologies<BR><BR>※本书内含大量重要的技术,这些技术是撰写优良 C++ 
      程式所不可或缺的。本书解释如何设计和实作这些观念,以及潜伏在其他某些替代方案中的陷阱。本书亦含晚近加入之 C++ 
      特性的详细说明。任何人如果想要好好地运用这些新特性,最好买一本并且放在随手可得之处,以备查阅。<BR>- Chrisopher J. Van 
      Wyk, Professor<BR>Mahematics and Computer Science, Drew 
      University<BR><BR>※这是一本具备工业强度的最佳书籍。对於已经阅读过 Effetive C++ 的人,这是完美的续集。<BR>- 
      Eric Nagler, ++ Instructor and Author,<BR>Univesity of California Santa 
      Cruz Extension<BR><BR>※More Effective C++ 是一本无微不至而且价值不扉的书籍,是 Scott 第一本书 
      Effective C++ 的续集。我相信每一位专业的 C++ 软体开发人员都应该读过并记忆 Effective C++ 和 More 
      Effective C++ 
      两本书内的各种招式,以及其中重要(并且有时候不可思议)的语言面向。我强烈推荐这两本书给软体开发人员、测试人员、管理人员┅,每个人都可以从 Scott 
      专家级的知识与卓越的表达能力中获益。<BR>- Steve Burkett, Software 
      Consutant</FONT><BR><BR>以下列出 More Effective C++ 
      的各个条款(我试着译为中文),一方面让这篇书评的实用性更高一些,一方面就让这些条款标题直接彰显它们的价值吧。<BR><BR>第一章:基础议题(Basics)<BR>条款1:仔细区别 
      pointers 和 references<BR>条款2:最好使用 C++ 转型运算子<BR>条款3:绝对不要以 
      polymorphically(多型)方式来处理阵列<BR>条款4:非必要不使用 default 
      constructor<BR><BR>第二章:运算子(Operators)<BR>条款5:对自定的型别转换函式保持警觉<BR>条款6:区别 
      increment/decrement 运算子的前序(prefix)和後序(postfix)型式<BR>条款7:千万不要多载化 
      &amp;&amp;, ||, 和 , 运算子<BR>条款8:了解各种不同意义的 new 和 
      delete<BR><BR>第三章:异常情况(Exceptions)<BR>条款9:利用 destructors 避免遗失资源<BR>条款10:在 
      constructors 内阻止资源的遗失(resource leaks)<BR>条款11:禁止异常讯息(exceptions)流出 
      destructors 之外<BR>条款12:了解「丢出一个 
      exception」与「传递一个叁数」或「呼叫一个虚拟函式」之间的差异<BR>条款13:以 by reference 方式捕捉 
      exceptions<BR>条款14:明智运用 exception specifications<BR>条款15:了解异常处理(exception 
      handling)的成本<BR><BR>第四章:效率(Efficiency)<BR>条款16:谨记 80-20 法则<BR>条款17:考虑使用 
      lazy 
      evaluation<BR>条款18:分期摊还预期的计算成本<BR>条款19:了解暂时性物件的来源<BR>条款20:协助完成「传回值最佳化(RVO)」<BR>条款21:利用多载化技术(overload)避免隐式型别转换<BR>条款22:考虑以运算子的复合型式(op=)取代其独身型式(op)<BR>条款23:考虑使用其他程式库<BR>条款24:了解 
      virtual functions、multiple inheritance、virtual base classes、runtime type 
      identification 所需的成本<BR><BR>第五章:技术(Techniques,又称 Idioms 或 
      Pattern)<BR>条款25:将 constructor 和 non-member functions 虚拟化<BR>条款26:限制某个 
      class 所能产生的物件数量<BR>条款27:要求(或禁止)物件产生於 heap 之中<BR>条款28:Smart 
      Pointers(精灵指标)<BR>条款29:Reference counting(叁用计数)<BR>条款30:Proxy 
      classes(替身类别、代理人类别)<BR>条款31:让函式根据一个以上的物件型别来决定如何虚拟化<BR><BR>第六章:杂项讨论(Miscellany)<BR>条款32:在未来时态下发展程式<BR>条款33:将非尾端类别(non-leaf 
      classes)设计为抽象类别(abstract classes)<BR>条款34:如何在同一个程式中结合 C++ 和 
      C<BR>条款35:让自己习惯使用标准的 C++ 语言</P>
      <P><BR></P><!--msthemeseparator-->
      <P align=left><IMG src="三本絕佳小書.files/urbhorsa.gif"></P>
      <P><IMG height=281 alt="exceptional-Cpp.jpg (33071 bytes)" 
      src="三本絕佳小書.files/exceptional-Cpp.jpg" 
      width=223><BR><BR>【基本资料】<BR>书名:Exceptional C++ : 47 Engineering Puzzles, 
      Programming Problems, and Solutions<BR>作者:Herb Sutter<BR>出版:Addison 
      Wesley, 0-201-61562-2, 1999<BR>定价:US$ 
      33.95<BR>页数:206<BR><BR>相较於前两本威名远播的老大哥,这本小书不但资历浅,作者也似乎不是那麽有名。真的不那麽有名吗?未必,这要看你熟悉哪个领域,在哪个领域活动而定。本书内容源自极受欢迎的 
      C++ 网际网路节目 Guru of the Week,作者Herb Sutter 正是这个网路节目的创办者,同时也是C++ Report 
      的专栏作家,以及网际网路讨论群 comp.lang.c++.moderated 
      的创始主持人。<BR><BR>本书的一个最大特色是,以实例进行的方式,告诉你如何以标准 C++ 进行软体工程。书中所列的实例,有些是棘手的 
      C++/OOP 疑难杂症,有些展示稳健强固且具扩充性的程式码。只需数分钟时间,你便可以拿书中一些 C++ 
      设计问题和实作问题来挑战自己并且获得乐趣(是的,每个问题都有一个难度评分)。<BR><BR>每一个实例,都可以测验你的观念正确与否。书中许多主题与Effective 
      C++ 和 More Effective C++ 的条款相互辉映,一个实例之中可能隐含了 Meyers 
      两本书的数个条款的运用。顺带一提,这本书有老大哥 Scott Meyers 写序推荐。<BR><BR>以下列出 Exceptional C++ 
      的各个条款(我试着译为中文),Sutter 下标题的方式不像 Meyers 
      那麽具有实用性。不过,这些标题大略呈现了本书的方向,所以,还是让它们自我说明吧。<BR><BR>第一章:泛型程式设计与 C++ 
      标准程式库<BR>条款1:Iterators(泛型指标)<BR>条款2:无分大小写的字串 之一<BR>条款3:无分大小写的字串 
      之二<BR>条款4:将泛型容器(Generic Containers)的重用性扩张至最大 之一<BR>条款5:将泛型容器(Generic 
      Containers)的重用性扩张至最大 
      之二<BR>条款6:暂时物件<BR>条款7:使用标准程式库(再谈暂时物件)<BR><BR>第二章:Exception-Safety(异常情况下仍然安全)的主题与相关技术<BR>条款8: 
      撰写 Exception-Safe 程式码 之一<BR>条款9: 撰写 Exception-Safe 程式码 之二<BR>条款10:撰写 
      Exception-Safe 程式码 之三<BR>条款11:撰写 Exception-Safe 程式码 之四<BR>条款12:撰写 
      Exception-Safe 程式码 之五<BR>条款13:撰写 Exception-Safe 程式码 之六<BR>条款14:撰写 
      Exception-Safe 程式码 之七<BR>条款15:撰写 Exception-Safe 程式码 之八<BR>条款16:撰写 
      Exception-Safe 程式码 之九<BR>条款17:撰写 Exception-Safe 程式码 之十<BR>条款18:程式码复杂度 
      之一<BR>条款19:程式码复杂度 之二<BR><BR>第三章:Class 的设计与继承<BR>条款20:Class 
      技术<BR>条款21:改写(Overriding)虚拟函式<BR>条款22:Classes 之间的关系 之一<BR>条款23:Classes 
      之间的关系 之二<BR>条款24:使用/禁用 
      继承(Inheritance)<BR>条款25:物件导向程式设计<BR><BR>第四章:编译器防火墙(Firewalls)及 Pimpl 
      Idiom<BR>条款26:将编译时期的依存性最小化 之一<BR>条款27:将编译时期的依存性最小化 之二<BR>条款28:将编译时期的依存性最小化 
      之三<BR>条款29:编译防火墙(Compilation Firewalls)<BR>条款30:The "Fast Pimpl" 
      Idiom<BR><BR>第五章:名称查询(Name Lookup)、命名空间(Namespaes)、介面准则(Interface 
      Principle)<BR>条款31:名称查询与介面准则 之一<BR>条款32:名称查询与介面准则 之二<BR>条款33:名称查询与介面准则 
      之三<BR>条款34:名称查询与介面准则 之四<BR><BR>第六章:记忆体管理<BR>条款 35:记忆体管理 之一<BR>条款 36:记忆体管理 
      之二<BR>条款 37:auto_ptr<BR><BR>第七章:陷阱、易犯错误与反常作法<BR>条款 38:物件识别(Object 
      Identity)<BR>条款 39:自动转换(Automatic Conversions)<BR>条款 40:物件寿命(Object 
      Lifetimes)之一<BR>条款 41:物件寿命(Object Lifetimes)之二<BR><BR>第八章:杂项主题<BR>条款 
      42:变数的初始化<BR>条款 43:常数性的正确性(Const-Correctness)<BR>条款 44:转型(Casts)<BR>条款 
      45:真假值(bool)<BR>条款 46:转呼叫(Forwarding)函式<BR>条款 47:控制流程(Control 
Flow)<BR></P>
      <P><BR>●结语<BR><BR><FONT 
      color=#0000ff>理论与实务的结合,是每一位资讯从业人员希望达到的目标。过多的照本宣科,过少的实务经验(真正有价值的实务经验),却是目前资讯相关书籍的普遍写照。</FONT><BR><BR><FONT 
      color=#0000ff>Effective C++,More Effective C++, 和 Exceptional 
      C++</FONT>,这三本书不仅在实务面上提出极为宝贵的准则,并以丰富而扎实的理论基础,深入解释每一条准则背後的来龙去脉。可以相当程度地提升你的 
      C++ 程式技术与 OO 设计思维。<BR><BR>着名的语言专家 Benjamin Whorf 曾说:『<FONT 
      color=#0000ff>语言可以塑造人类思考的方式,并决定人类思考的内容</FONT>』。使用 C++ 语言,绝不仅只於使用 C++ 
      编译器(很多人确是如此 ─ 虽然他们不自觉);重要的是运用隐含於语意之中的物件导向(Object 
      Oriented)观念与泛型(Genericity)观念,在软体设计阶段便创造出一个有弹性、易修改、适用未来时态的架构。<BR><BR>对於物件导向领域的生手,这三本书可以给你一个震憾教育,让你知道过去的写作是多麽地不严谨、观念是多麽地不成熟。或许这套书会促使很多自以为是的读者谦卑地认知自我的不足,并谦卑地终於知道什麽是井蛙、河鱼和燕雀。<BR><BR>至於物件导向个中老手,是的,这三本书为你整理出多年打滚所获的宝贵心得,佐以深度的学理探讨,必然让你有相见恨晚之叹。<BR><BR>-- 
      the end<BR><BR><!--mstheme--></FONT></P></TD>
    <TD vAlign=top width=46>
      <P align=center><BR><!--mstheme--></FONT></P></TD></TR></TBODY></TABLE>
<P></P><!--mstheme--></FONT></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -