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

📄 kingofark详解他的50个观点(中).txt

📁 Kingofark关于学习C++的50个观点:有助于提高编程思想
💻 TXT
字号:
条款17. C++不仅仅是支持面向对象的程序设计语言; [解说]: 向大家强力推荐C++的设计者Bjarne Stroustrup的一篇文章《Why C++ is not just an  Object-Oriented Programming Language》(为什么C++不仅仅是一门面向对象程序设 计语言)。这篇文章在他的个人网页上能够找到。 [kingofark的收获]: 其实很多基本但重要的观点都是出自领域内大师们的所文所言,我只是在不遗余力的复 述这些观点罢了。     条款18. 学习编程最好的方法之一就是阅读源代码; [解说]: 这是世界公认的,著名的权威专家,已逝的Richard Stevens博士平生一贯坚持的观点。 我们从他所著的经典书籍中可以看到这一点。一本《TCP/IP Illustrated Volume II》 (TCP/IP详解 卷二),就原汁原味的包含了BSDLite4.4中的1,5000行代码,很现实的将 此书的读者带入了一个真正的编程世界。当然这本书中的程序都是C代码,学习C++者并 非一定要看,这里只是举个例子来说明问题。 学习的条件提供给你了,现在就看你自己的了。 [kingofark的收获]: 选择题:要在天空中翱翔,最好的办法是: A.自己做一个翅膀,从悬崖上一跳; B.自己做一架滑翔机,找一块平坦的荒地借着风起飞; C.驾驶一架性能良好的飞机,在修建好的跑道上起飞; D.乘坐飞机到高空,然后背上降落伞(或许还带一个滑板),跳出飞机。 我选择D。 [关于本条款的解说]: 详解<K’s 50 PV>预览版推出时,我得到了一些来自高手大侠的宝贵意见和建议,在此 我要特别感谢孟岩先生(myan),他指出了我原来解说中的不当之处并给出了很好的建 议。 有鉴于此,我愿将改进的过程呈现给大家: 我原来的解说是: “这是世界公认的,著名的权威专家,已逝的Richard Stevens博士平生一贯坚持的观点 。我们从他所著的经典书籍中可以看到这一点。一本《TCP/IP Illustrated Volume II 》(TCP/IP详解 卷二),就原汁原味的包含了BSDLite4.4中的1,5000行代码,很现实的 将此书的读者带入了一个真正的编程世界。 Linux蓬勃发展起来了;OpenSource运动越来越壮大;《莱昂氏UNIX源代码分析》、《L inux内核源代码分析》、《Linux IP栈源代码分析》以及《Apache服务器源代码分析》 相继出版了。 学习的条件提供给你了,现在就看你自己的了。” 孟岩先生(myan)对这个解说给出了如下看法: “关于条款18,你举的几个源代码例子实在有误导之嫌:全是OS/TCP/IP源码,全是C源 码,而且就我所读过的Linux源码来讲,为了追求速度,使用了大量黑客技巧。初学者在 还没有形成正确观念之前,如果迷恋上这些技巧,就会迷失大方向,失去真正C++风格。 ” 然后,他又作了如下的建议: “关于C++源代码,从编程风格上,GP方面的我比较推崇STL和Boost库。但是毕竟是库代 码,对于大部分人还是有误导性。 ACE/TAO据说是非常好的源码范本,可惜我的网络编程知识很欠缺,无法根据自己的体验 给出建议。对于普通应用,还真难找到风格和组织俱佳的源码范本。比如像wzWindows,  Mozilla,一上来就把template,多继承等特性给禁止掉,不足以为道。微软的ATL和W TL围绕COM展开,需要很多的基础知识,C++的运用方面还是比较出色,就是代码里还是 夹杂了大量的宏。总之,C++ 98风格的优秀源码,现在还很难找到。如果实在要读,我 还是推荐STL/Boost。尤其是Boost里面有一些层次较高的库,比较接近用户代码,可以 很好的借鉴。” 的确,要找“风格和组织俱佳”的源代码拿来学习并不是太容易,所以我以为,“如果 实在要读”,则完全可以到国内外(尤其是国外)相关C++的网站上去找。极品稀少,我 们暂时也只好转而求其次,但是,像我在条款8中推荐的那种比较优秀的C/C++资源网站 还是很多的,比如www.programmersheaven.com,比如www.codeproject.com。我觉得我 们求的这个“次”也并非不够我们学的。 这里我再次感谢孟岩先生(myan)以及其他帮助过我的人!       条款19. 在任何时刻都不要认为自己手中的书已经足够了; [解说]: (1)      计算机技术正以飞快的速度发展和翻新。新技术取代旧技术时发出的兴奋呻 吟声此起彼伏,被我们听到。哦,其实那并非呻吟声,而只是有人在用另一种语言说“ 活到老,学到老”这句话的声音。 (2)      C到标准C,C++到标准C++。很多固有的东西也在长肉补血,发展进化。我们 要认识到这种改变,跟随发展的脚步。毕竟“发展才是硬道理”。 有很多东西把这一切的一切跟你紧密的联系起来。其中之一是书籍。 [kingofark的收获]: 把“噢,我的上帝!”改为“噎,我的书!”       条款20. 请阅读《The Standard C++ Bible》(中文版:标准C++宝典),掌握C++标准;   [解说]: 这里强调的,还是要紧跟C++发展方向,把C++学准,学精。 关于《The Standard C++ Bible》(中文版:标准C++宝典)的讨论,我放在我的系列拙 文《kingofark的“五评计划”》中进行。 [kingofark的收获]: 标准就是标准,不服不行,不学不行,不用不行,不改进不发展不行。     条款21. 看得懂的书,请仔细看;看不懂的书,请硬着头皮看; [解说]: 小孩子刚生下来,是不会说哪门语言的,当然更是听不懂的,只能“硬着头皮”听爷爷 奶奶爸爸妈妈哥哥姐姐叔叔阿姨伯伯婶婶说话,听得久了,就会了。 学习本身就是一个从不会到会,从不熟悉到熟悉,从不懂到懂的过程。看不懂就不看, 等于什么都不看。 除此之外,这一点也没什么理由好说的了。如果非要说的话,一来连鲁迅先生笔下的阿 Q都懂得“凡事总须研究才能明白”的道理;二来嘛,总是看些自己轻车熟路的东西,你 不觉的太没有挑战性了吗? [kingofark的收获]: 其实阿Q也不是没有优点的啦! [参考]: <K's 50 PV>条款3;<K's 35 MPV>条款26。       条款22. 别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍; [解说]: 说实话,写到这个条款的时候,我都不想再写下去了——因为道理太简单,大凡正常的 、读过书的人都知晓。连一些情节简单的电视连续剧都有人要一本正经的看了又看仔细 回味(kingofark就不止一遍的看日本连续剧《GTO》和《続?星の金貨》),作为智慧集 合的书就更是如此。 [kingofark的收获]: 爱吃回锅肉的人也许更容易体会这个道理。 [参考]: <K’s 50 PV>的后记。       条款23.请看《Effective C++》和《More Effective C++》以及《Exceptional C++》;   [解说]: 这里建议大家看看侯捷先生的一篇文章《拳拳到肉 掷地铿锵的三本 OOP 绝佳小书》。 文章可以在侯捷先生的网站上面找到。大家在这里就先窥其一角吧: “拿破仑虽然是个矮个子,一生叱吒却俨然历史的巨人。今天我要介绍的三本书,虽然 轻薄短小有如拿破仑的身材,在 C++/OOP 领域里,其份量与影响却也有着拿破仑般的辉   灿烂。 说它们轻薄短小,是的,让数字说话:三本书合起来才256+318+208=782 页,只比 C++  语言知名教本 C++ Primer 3/e一半篇幅再多一些而已,比起 C++ 语言权威着作 The C++ Programming Language 3/e 也才达到三分之二的页数份量。逛书店时一个不留神, 只怕你便遗漏了这些小书的存在。但如果你真遗漏了它们的存在,实在是你的莫大损失 。 就我个人的编程经验,以及我的教学经验(对象为业界工程师或大学生),只要是 C++ /OOP 设计思维与语言运用本身的问题,非关 problem domain,百分之九十以上皆可在 这三本书籍中找到直接或间接的答案。” “以上三本小书的功用不仅在提纲契领地点出重点,也在於对每个主题有深刻的讨论。 在这些书籍中,你会发现一些忠告,告诉你应该做些什麽,为什麽如此;也告诉你不应 该做些什麽,又为什麽如此。基本而言当然 whys 比 whats 更重要,这便是这些书籍最 有价值的地方。至於从速食的角度来看,检阅一系列准则,也比强记一或二本庞杂的教 科书更轻松方便得多。” [kingofark的收获]: 领会了这三本书的内涵,你一开始就可以用比圣斗士星矢更高的嗓门儿厉声嘶道:“爆 发吧,我的小宇宙!!!!!!”——而且百分之百可以爆发——大可不必像星矢那样 每次先被打个稀烂才后发制人。 [参考]: 侯捷先生的书评。       条款24.不要停留在集成开发环境的摇篮上,要学会控制集成开发环境,还要学会用命令 行方式处理程序; [解说]: 有些不爱钻研的初学者(比如kingofark)甚至连一个集成开发环境十分之一的功能都没 有用到。这是一种非常不好的学习状况,应该改变。其实再复杂的集成开发环境也不过 就是个工具软件。连软件本身都用不好,那还怎么去做软件?拜托! 高级语言还没有发展到可以完全摆脱命令行操作的阶段。在真正的底层,命令行还是不 可或缺的。如果你不这么认为,那就说明你的思想够先进——如果你是站在未来人的角 度思考的,我承认我争不过你(因为你不可理喻)。 [kingofark的收获]: 只摸一下饭碗,是填不饱肚子的;只与情人接吻,情人也是生不了孩子的;光会撒尿不 会拉屎,人也是不畅通的。这些道理你都懂,怎么一学编程都晕了?       条款25. 和别人一起讨论有意义的C++知识点,而不是争吵XX行不行或者YY与ZZ哪个好;   [解说]: 特别把这句话从“浮躁”的种种表现里挑出来,是因为想向大家强烈推荐侯捷先生的文 章《漫谈程序员与编程》。该文刊登在《程序员》杂志2001年第5,6期上;在侯捷先生 的网站上也能找到。 文中专门以小标题“口舌之战有何益”讨论了这方面的问题,希望大家好好消化。 [kingofark的收获]: 好羡慕哑巴。 [参考]: <K's 50 PV>条款10-15,49;<K's 35 MPV>条款23。       条款26. 请看《程序设计实践》,并严格的按照其要求去做; [解说]: 机械工业出版社的《程序设计实践》,愿书名为《The Practice of Programming》,由 B.Kernighan和Rob Pike这一对技术书籍黄金搭档合著。该书轻薄短小,却包含了两位著 者浸淫程序设计领域多年经验的积累和总结,从极具现实性和艺术性的角度讲述了程序 设计时需要注意的多方面问题,强调程序设计并不仅仅是编码的观点。 精心选择的素材、体贴的叙述方式(还包括上佳的翻译),都使你能够在不经意的字里 行间得到丰厚的收获——真的,基本上是天上掉馅饼,你唯一的付出就是张嘴吐出一句 “哦,原来是这样的啊!” 看看两位著者是如何在本书的前言中说到大家心坎儿上的吧: “你是否曾: 浪费了许多时间去对一个错误算法做编码? 使用了一个过于复杂的数据结构? 测试一个程序而忽略了其中最简单的问题? 花了一整天功夫查找一个错误,实际上却应该是在5分钟里就找到它? 需要让一个程序运行速度快3倍而且使用更少的存储? 费劲的把一个工作站上的程序移到PC上,或者相反? 试图对其他人写的某个程序作最简单的修改? 重写一个程序,原因是你根本无法理解它? 这些事都很有趣吗?” 请大家好好体会两位程序设计领域的中流砥柱在风格、算法与数据结构、设计与实现、 界面、排错、测试、性能、可移植性和记法这些方面的谆谆教导。 [kingofark的收获]: 读完这本书后,才发现自己以前曾是个傻子;这本书连傻子都能看懂;这本书能使傻子 恢复成优秀的程序员。   条款27. 不要因为C和C++中有一些语法和关键字看上去相同,就认为它们的意义和作用 完全一样; [解说]: C++里面的很多“C的东西”其实都已经不完全是所谓“C的东西”了。 C++中的const、struct等等的含义与C中的相比,小有不同矣! 关于这一点,还是希望大家多看看书。复用(reuse)我在条款20里的一句话说就是“把 C++学准,学精。” [kingofark的收获]: 求精求准,把握分寸,这是大凡天下事的道理,根本用不着kingofark在这里放气。 [参考]: <K's 50 PV>条款20。 

⌨️ 快捷键说明

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