高质量C++/C编程指南-媒介
当前位置:以往代写 > C/C++ 教程 >高质量C++/C编程指南-媒介
2019-06-13

高质量C++/C编程指南-媒介

高质量C++/C编程指南-媒介

媒介 软件质量是被大大都措施员挂在嘴上而不是放在心上的对象!

除了完全外行和真正的编程好手外,初读本书,你最先的感觉将是惶恐:“哇!我以前假造的C++/C措施怎么会有那么多的短处?”

别惆怅,作者只不外比你早几年、多屡次惶恐罢了。

请花一两个小时当真阅读这本百页经书,你将会获益匪浅,这是前面N-1个读者的发起。

一、编程内行与好手的误区

自从计较机问世以来,措施设计就成了令人羡慕的职业,措施员在受人痛爱之后容易成长成为短处特多却常能自我臭美的群体。

如今在 Internet 上传播的“真正”的措施员听说是这样的:

(1) 真正的措施员没有进度表,只有奉迎率领的马屁精才有进度表,真正的措施员会让率领惶惶不安。

(2) 真正的措施员不写利用说明书,用户该当本身去意料措施的成果。

(3) 真正的措施员险些不写代码的注释,假如注释很难写,它理所虽然也很难读。

(4) 真正的措施员不画流程图,原始人和文盲才会干这事。

(5) 真正的措施员不看参考手册,新手和胆小鬼才会看。

(6) 真正的措施员不写文档也不需要文档,只有看不懂措施的蠢人才用文档。

(7) 真正的措施员认为本身比用户更大白用户需要什么。

(8) 真正的措施员不接管团队开拓的理念,除非他本身是头头。

(9) 真正的措施员的措施不会在第一次就正确运行,可是他们愿意守着呆板举办若干个 30 小时的调试改错。

(10) 真正的措施员不会在上午 9:00 到下午 5:00 之间事情,假如你看到他在上午 9:00 事情,这表白他从昨晚一直干到此刻。

……

具备上述特征越多,越显得程度高,资格老。所以别奇怪,措施员的许多缺点竟然可以被看成利益来浏览。就象在武侠小说中,那些独来独往、不受约束且带点邪气的好手最令人崇敬。我曾经也这样信奉,而且但愿本身成为那样的“真正”的措施员,功效没有获得好下场。

我从读大学到博士结业十年来一直勤奋勤学,累计编写了数十万行 C++/C 代码。有这样的苦劳和疲惫,我应该称得上是编程内行了吧?

我开拓的软件都与科研相关(集成电路 CAD 和 3D 图形学规模),动辄数万行措施,技能巨大,难度颇高。这些软件几回获奖,有一个软件得到首届中国大学生电脑大赛软件展示一等奖。在 1995 年开拓的一套图形软件库到 2000 年尚有人买。摆列出这些“业绩”,可以说明我算得上是编程好手了吧?

惋惜这种小我私家感受不便是事实。

读博期间我曾用一年时间开拓了一个近 10 万行 C++ 代码的 3D 图形软件产物,我心田自得外貌谦虚地向一位真正的软件好手请教。他固然从未涉足过 3D 图形规模,却在几十分钟内指出该软件多处重大设计错误。让人感受那套软件是用纸糊的富丽衣服,扯一下掉一块,戳一下破个洞。我呆头呆脑地意识到这套软件毫无实用代价,一年的心血白化了,而且害死了本身的软件公司。

人的顿悟凡是产生在最心痛的时刻,在沮丧和心痛之后,我作了深刻反省,“面壁”半年,从头复习软件设计的基本常识。补修“内功”之后,又以为腰板硬了起来。博士结业前半年,我曾到微软中国研究院谋事情,接管微软公司一位资深软件工程师的口试。他让我写函数 strcpy 的代码。

太容易了吧?

错!

这么一个小不点的函数,他从三个方面观察:

( 1 )编程气势气魄;

( 2 )堕落处理惩罚;

( 3 )算法巨大度阐明(用于提高机能)。

在大学里从来没有人如此严格地观察过我的措施。我化了半个小时,修改了数次,他还不尽满足,让我回家好好琢磨。我精力奋起地进“科场”,大汗淋漓地出“科场”。这“好手”当得也太窝囊了。我又好好地反省了一次。

我把反省后的心得体会写成文章放在网上传阅,引起了不少软件开拓人员的共识。我因此有幸和国产大型 IT 企业如华为、上海贝尔、中兴等公司的同志们遍及交换。各人认为提高质量与出产率是软件工程要办理的焦点问题。高质量措施设计长短常重要的环节,究竟软件是靠编程来实现的。

我们心目中的内行们和洽手们可否编写出高质量的措施来?

不见得都能!

就我的经验与阅向来看,海内大学的计较机教诲压根就没有贯注高质量措施设计的见识,西席们和学生们也很少自觉体贴软件的质量。勤奋勤学的措施员恒久在低质量的措施堆中滚爬,吃尽苦头之后才有一些心得体会,上进极慢,我就是一例。

#p#分页标题#e#

此刻海内 IT 企业拥有学士、硕士、博士文凭的软件开拓人员触目皆是,但他们在接管大学教诲时就“先天不敷”,岂能一到企业就溘然实现质的奔腾。试问有几多软件开拓人员对正确性、结实性、靠得住性、效率、易用性、可读性(可领略性)、可扩展性、可复用性、兼容性、可移植性等质量属性洞若观火?而且能在实践中运用自如?。“高质量”可不是干活小心点就能实现的!

我们有充实的来由疑虑:

( 1 )编程内行大概会恒久用隐含错误的方法编程(习惯成自然),发明短处后都不肯相信那是真的!

( 2 )编程好手可以在某一规模写出极有程度的代码,但未必能从全局掌握软件质量的方方面面。

事实证明如此。我到上海贝尔事情一年来,连续口试或测试过近百名“新”“老”措施员的编程技术,质量及格率约莫是 10 %。很少有人可以或许写出完全切合质量要求的 if 语句,许多措施员对指针、内存打点一知半解, …… 。

率领们不敢相信这是真的。我做过现场试验:有一次部分新进 14 名硕士生,在开接待会之前对他们举办“ C++/C 编程技术”摸底测验。我问各人试题难不难?所有的人都答复不难。功效没有一小我私家合格,有半数人得零分。竞争敌手公司的伴侣们也做过试验,同样一败涂地。

真的不是我“心狠手辣”可能要求过高,而是许多软件开拓人员对本身的要求不足高。

要知道华为、上海贝尔、中兴等公司的员工素质在海内 IT 企业中是较量前列的,倘若他们的编程质量都如此差的话,我们怎么敢期望中小公司拿出高质量的软件呢?连措施都编欠好,还谈什么振兴民族软件财富,岂不胡扯。

我规划界说编程内行和编程好手,请您别见笑。

界说 1 :能恒久不变地编写出高质量措施的措施员称为编程内行。

界说 2 :能恒久不变地编写出高难度、高质量措施的措施员称为编程好手。

按照上述界说,顿时获得第一推论:我既不是好手也算不上是内行。

在写此书前,我阅读了不少措施设计方面的英文著作,越看越羞惭。因为发明本身连编程根基技术都未能全面把握,顶多算是二流程度,还盛情思谈什么内行和洽手。但愿和我一样在海内土生土长的措施员伴侣们可以或许做到:

( 1 )知错就改;

( 2 )常常温故而知新;

( 3 )僵持进修,每天向上。

二、本书导读

首先请做附录B的C++/C试题(不要看谜底),观察本身的编程质量毕竟如何。然后参照谜底严格打分。

( 1)假如你只得了几十分,请不要声张,也不要太惆怅。编程质量差往往是由于不良习惯造成的,与人的智力、本领没有多大干系,照旧有药可救的。后果越差,可以进步的空间就越大,中国不就是在落伍中赶超发告竣本主义国度吗?只要你能下刻意改掉不良的编程习惯,第二次测验就能合格了。

( 2)假如你考合格了,表白你的技能基本不错,但愿你能虚心进修、不绝进步。假如你还没有找到符合的事情单元,不妨到上海贝尔试一试。

( 3)假如你考出85分以上的好后果,你有义务和资格为你地址的团队作“C++/C编程”培训。但愿你能和我们多多交换、彼此促进。半年前我曾经发明一颗好苗子,就把他挖到我们小组来。

( 4)假如你在没有任何提示的环境下考了满分,但愿你能收我做你的徒弟。

编程测验竣事后,请阅读本书的正文。

本书第一章至第六章主要阐述C++/C编程气势气魄。难度不高,可是细节较量多。别小看了,提高质量就是要从这些点点滴滴做起。世上不存在最好的编程气势气魄,一切因需求而定。团队开拓考究气势气魄一致,假如拟定了各人承认的编程气势气魄,那么所有组员都要遵守。假如读者以为本书的编程气势气魄较量合你的事情,那么就回收它,不要只看不做。人在小时候措辞发音禁绝,写字潦草,假如不纠正,总有反悔的时候。编程也是同样原理。

第七章至第十一章是专题阐述,技能难度较量高,看书时要努力思考。出格是第七章“内存打点”,读了并不暗示懂了,懂了并不暗示就能正确利用。有一位同事看了第七章后以为“野指针”写得不错,与我切磋了一把。但是过了两周,他汇报我,他忙了两天追查出一个Bug,想不到又是“野指针”出问题,只好重读第七章。

光看本书对提高编程质量是有限的,发起各人阅读本书的参考文献,那些都是经典名著。

#p#分页标题#e#

假如你的编程质量已颠末关了,不要就此满意。假如你想成为优秀的软件开拓人员,发起你阅读并凭据 CMMI 类型干事,让本身的综合程度上升一个台阶。上海贝尔的员工可以向网络应用事业部软件工程研究小组索取 CMMI 有关资料,最好能介入培训。

三、版权声明

本书的大部门内容取材于作者一年前的书籍手稿(尚未出书),现整理汇编成为上海贝尔网络应用事业部的一个类型化文件,同时作为培训课本。

由于 C++/C 编程是众所周知的技能,没有奥秘可言。编程的好履历应该各人共享,我们本身也是这么学来的。作者愿意果真本书的电子文档。

版权声明如下:

( 1 )读者可以任意拷贝、修改本书的内容,但不行以改动作者及所属单元。

( 2 )未经作者许可,不得出书或大量印发本书。

( 3 )假如竞争敌手公司的员工获得本书,请勿果真利用,以免产生纠纷。

估量到 2002 年 7 月,我们将成立合适中国国情的 CMMI 3 级办理方案。届时,包罗本书在内的约 1000 页类型将严格受控。

接待读者对本书提出品评发起 。

    关键字:

在线提交作业