关闭

关闭

关闭

封号提示

内容

首页 代码大全.pdf

代码大全.pdf

代码大全.pdf

上传者: 惊鸿游龙 2010-12-18 评分 0 0 0 0 0 0 暂无简介 简介 举报

简介:本文档为《代码大全pdf》,可适用于IT/计算机领域,主题内容包含计算机实用软件技术系列丛书软件开发人员必备工具书CodeComplete代码大全SteveMcConnell著天奥译熊可宜校学苑出版社eVersio符等。

计算机实用软件技术系列丛书软件开发人员必备工具书CodeComplete代码大全SteveMcConnell著天奥译熊可宜校学苑出版社eVersion缺陷报告:codecompletenet本书网站:wwwdelphideveloperscom(京)新登字号内容摘要本书从软件质量和编程思想等方面论述了软件构造问题并详细论述了紧跟潮流的新技术、高屋建瓴的观点、通用的概念还含有丰富而典型的程序示例。本书中所论述的技术不仅填补了初级与高级编程技术之间的空白而且也为程序员们提供了一个有关编程技巧的信息来源。本书适合经验丰富、自学成才的程序员阅读也适合于那些几乎不懂什么编程技巧的新程序员阅读.欲购本书的用户请直接与北大信箱联系。邮编:电话:。版权声明本书中文版版权由Microsoft授予北京希望电脑公司和学苑出版社独家出版、发行。未经出版者书面许可本书的任何部分不得以任何形式或任何手段复制或传播。MicrosoftMSMsDos和Windows是微软公司注册商标。计算实用软件技术系列丛书软件开发人员必备工具书代码大全著者:SteveMcConnell翻译:天奥审校:熊可宜责任编辑:徐建军出版发行:学苑出版社邮政编码:社址:北京市西城区成方街号印刷:兰空印刷厂开本:Xl/印张:,字数:千字印数:~册版次:年月第版第次ISBN/TP本册定价一学苑版图书印、装错误可随时退换前言前言近年来关于软件开发的研究进展是非常迅速的但是开发实践却并非如此。许多程序仍然是错误百出充斥着过时的技术从而无法满足用户需要。软件工业界和学术界的研究者们基本上已经解决了七十年代和八十年代在编程中遇到的问题并发展了相应的技术。但是直到现在这些技术中的大部分仍然没有在软件编程中广泛采用其主要原因是这些研究成果主要发表在高度专业性的学术刊物中普通的程序员们无心顾及。SridharRaghavan和DonaldChand()的研究表明一项新技术从诞生到被工业界广泛采用大约需要到年的时间。本书的目的就是希望能够缩短新技术推广周期使广大的程序员们可以迅速地获得软件开发的最新方法与手段。本书所面向的对象本书中所收集的研究和编程经验将有助于你编写出高质量的软件并且使得开发周期缩短。通过阅读本书你将会对自己过去所犯过的错误有更深刻的理解并懂得今后如何避免它们。同时书中所收集的丰富的编程经验也将使你在控制大规模项目和按要求对软件进行修改和维护时感到得心应手。下面是适合阅读本书的几类人:经验丰富的程序员本书适合于想要得到一本全面易用的软件设计指南的那些资深程序员们阅读。由于本书的中心内容是广大程序员们所熟知的实现过程因此无论是受过正规训练而已经验丰富的程序员还是完全靠自学成长起来的程序员都能容易读懂本书所论述的先进技术和方法。自学成才的程序员本书尤其适合于很少受过正式专业训练的程序员阅读。年有人加入了程序员大军但其中只有人是从计算机专业毕业的本科生其余则几乎全是靠自学成才的。同时还有不计其数的其他各行各业的人员需要在工作中自己动手编一些程序。无论你所受到的正规计算机专业训练多或少本书都将使你对有效的编程方法和技巧有更深刻的理解。学生本书不仅适于实践经验丰富但理论基础薄弱的自学者阅读同时也适于那些理论基础较好但几乎不懂得什么编程诀窍的毕业生们阅读。新程序员们的某些实践经验来自于经验丰富的同事.但主要还是靠自己吃一堑长一智获得的这往往是一个艰苦而缓慢的过程。通过本书可以使你在短时期内获得大量的经验和技巧从而脱颖而出所以不妨一试。本书的主要特点完备的软件创建参考本书从质量和编程思想等方面论述了软件构造问题。几乎囊括了生成子程序、数据的输入输出与控制结构、调试、代码调整策略与技术等各方面的细节。在使用本书时不必逐页阅读每一个细节只要在需要时查阅你所感兴趣的章节即可。请把本书作前言为手册而不是作为教科书来使用。方便而实用的检查表书中附有用于检查软件的结构设计、设计方法、模块和子程序等质量的检查表以供评估软件质量之用。同时关于变量名、控制结构、方案布置、测试用例等等检查表也将使你获益匪浅。紧跟潮流的新技术书中论述了许多目前最先进的技术其中许多还只是刚刚投入应用。由于本书取材于实践经验和最新研究成果两个方面因此书中所提供的技术在相当长的时间内都不会过时。高屋建瓴的观点阅读本书将使你跳出日常琐碎工作的圈子对软件开发有一个总体上的把握与认识。繁杂的日常工作往往使程序员们穷于应付而无暇阅读浩如烟海的书籍与资料本书丰富而翔实的第一手资料将弥补这一缺憾使你对软件开发的策略作出正确决策而不致陷入旷日持久的消耗战中。通用的概念无论你用的是Pascal、C、C、Ada、Basic、Fotran还是COBOL都可以从本书所论述的概念、方法和技巧中获得教益。丰富而典型性的程序示例书中含有大约多个正反两方面的程序示例。之所以引入这么多的示例是因为笔者就是从各种例程中吸取了大部分的知识、经验与诀窍因此笔者认为最好的学习方法是多看例程。例程是用多种语言写成的因为对于程序员来说掌握多种语言是其必不可少的基本素质之一。而且只有掌握了不受语法规则限制的编程准则才能真正有效地提高你的编程效率和质量。为了减轻由于使用多种语言所带来的额外负担在例程中除非确有必要尽量避开了各个语言过于独特的部分。事实上如果你真正注意每个例程所要说明的问题的话那么不必详细理解每个程序段你也可以清楚地懂得程序的意义。同时为了进一步减轻读者的负担对程序中有意义的部分作了标记。本书的独特内容本书关于创建活动的内容是从多个渠道获得的。有关创建活动的资料不仅分布得非常分散而且往往没有成文资料事实上卓有成效的优秀程序员们所使用的技术并不神秘但由于日常事务的繁重和工作任务的重压程序员们很少有互相交流切磋的时间因而他们往往缺乏有关编程技巧的有效信息来源。本书中所论述的技术不仅填补了初级与高级编程课本之间的空白而且也为程序员们提供了一个有关编程技巧的信息来源。比如当你读过C语言初级教程之后你可以再读C语言高级教程然后再去读C语言高级的高级教程但读完这些书后你还能再读什么书呢?你可以再去读关于PC、Macintosh或UNIX等硬件或操作系统的书或者其它有关编程细节的书因为你如果不了解实现环境详情的话是无法充分有效地使用语言和程序的。但这只是讨论了编程的一个方面最有效的编程技术是那些不受实现环境及语言限制的技术。其它书往往忽略了这一点但这恰恰是本书的重点。写作本书的目的需要一本关于软件开发有效技术的书是软件工程界所公认的。由计算机科学技术委员会所发表的一份报告认为提高程序质量和生产效率的最有效途径是出版一本关于软件开发有效前言技术的书而且这本书应该以手册的形式来组织。同时计算机编程技术的发展史也证明急需一本这方面的书本书正是出于这个目的才出版的。创建活动未受到应有的重视在一段时期内软件开发与编码被当作是一回事但随着软件开发周期中的其它活动被认识这一领域内的主要努力全部集中到了项目管理、需求分析、设计和测试等方面创建活动成了被遗忘的角落。与这种现象相对应的思想是认为创建活动是软件开发中无关紧要的部分。于是刚入门的程序员被派去进行创建工作为那些已经由上一阶段设计好的子程序编码。工作几年之后他可能会被提升至需求分析或项目管理部门。于是这位程序员也会自豪地感到他不必再去编码了。创建活动是非常重要的创建活动被忽视的另一个原因是:研究者和程序员们错误地认为与其它开发活动相比创建活动是一相对来说比较机械的活动没有什么值得改进的。没有什么比这种想法离事实更远了。在小规模项目中创建活动约占工作量的%在中型项目中也要占%的工作量而发生在创建活动中的错误则占总错误的%到%。一项会产生%到%错误的工作是有许多待改进之处的。一些人认为虽然创建时的错误占到总错误的%到%但修改它们的费用与分析、设计错误相比要少得多。的确创建时的错误修改费用与前期工作错误修改费用相比是要少一些但是绝对数并不少。GeraldWeinbers曾在年报道过三个错误每个错误的修改费用都高达数百万美元而每个错误都是一行编码层次上的代码错误。因此绝不能以修改费用相对少为理由来忽视创建活动。具有讽刺意味的是被忽视的创建活动事实上是唯一任何规模项目都必不可少的活动。需求可以进行猜想而不必分析结构可以被省略而不必设计。系统测试也可以不进行。但是如果你想有一个程序的话你就不得不进行创建活动。本书的独特性如果创建活动的重要性是非常明显的话那么本书恐怕就没有出版的必要了。但事实上几乎没有什么书详细论述了这一主题。只有年前出版过一本类似内容的书讲述的是ALGOL、PL/I、Ratfor等早已过时的语言中的具体问题。其它偶尔也有几本这方面的书但却是教授们针对教学用的演示性项目而写的没有涉及到真正的工程问题。有些则偏激地推崇新技术而不恰当地贬低了一些非常实用的成熟技术。总之就内容的新颖、翔实、丰富和实用来看目前似乎还没有与本书相匹敌的关于创建活动的书。编者目录第一章欢迎进入软件创建世界什么是软件创建软件创建的重要性小结第二章利用隐喻对编程进行更深刻的理解隐喻的重要性如何使用软件隐喻通常的软件隐喻小结第三章软件创建的先决条件先决条件重要性问题定义先决条件需求分析先决条件结构设计先决条件选择编程语言先决条件编程约定应花在先决条件上的时间改变先决条件以适应你的项目小结第四章建立子程序步骤建立程序步骤概述程序设计语言(PDL)设计子程序子程序编码检查子程序小结第五章高质量子程序特点生成子程序的原因子程序名称恰当强内聚性松散耦合性子程序长度防错性编程子程序参数使用函数宏子程序小结第六章模块化设计模块化:内聚性与耦合性信息隐蔽建立模块的理由任何语言中实现模块小结第七章高级结构设计软件设计引论结构化设计面向对象对目前流行设计方法的评论往返设计小结第八章生成数据数据识别自建数据类型的原因自建类型的准则使变量说明更容易初始化数据的准则小结第九章数据名称选择名称特定数据类型的命名命名约定非正式命名约定匈牙利命名约定短名称要避免的名称小结第十章变量作用域持久性赋值时间数据结构与控制结构的关系变量功能单一性全局变量小结第十一章基本数据类型常数整型数浮点数字符和字符串逻辑变量枚举类型命名常量数组指针小结第十二章复杂数据类型记录与结构表驱动方法抽象数据类型(ADTs)小结第十三章顺序程序语句必须有明确顺序的程序语句与顺序无关的程序语句小结第十四章条件语句if语句case语句小结第十五章循环语句选择循环类型控制循环(ControllingTheLoop)编写循环的简单方法从里到外循环与数组的关系小结第十六章少见的控制结构goto语句return语句递归调用小结第十七章常见的控制问题布尔表达式复合语句(块)空语句防止危险的深层嵌套结构化编程的作用用goto模拟结构化结构控制结构和复杂性小结第十八章布局和风格基本原则布局技巧布局风格控制结构布局单条语句布局注释布局子程序布局文件、模块和程序布局小结第十九章文档外部文档编程风格作文档注释还是不注释有效注释的关键注释方法小结第二十章编程工具设计工具源代码工具执行代码工具面向工具的环境建立自己的编程工具理想编程环境小结第二十一章项目大小如何影响创建项目大小项目大小时开发活动的影响项目大小对错误的影响项目大小对生产效率的影响小结第二十二章创建管理l使用好的代码配置管理评估创建计划度量将程序员视为普通人如何对待上司小结第二十三章软件质量概述软件质量特点提高软件质量的方法各种方法的效果何时应作质量保证软件质量的一般原则小结第二十四章评审评审在软件质量保证中的地位检查其它评审方法小结第二十五章单元测试单元测试在软件质量中的作用单元测试的一般方法测试技巧典型错误测试支持工具提高测试质量测试记录小结第二十六章调试概述找错修改错误调协心理因素调试工具小结第二十七章系统集成集成方法重要性分段与递增集成递增集成法改进的公布法小结第二十八章代码调整策略功能综述代码调整介绍低效率情况代码调整方法小结第二十九章代码调试技术循环逻辑数据转换表达式子程序汇编语言再编码调试技术快速参考小结第三十章软件优化软件优化种类软件优化指南编写新程序小结第三十一章个人性格个人性格是否和本书的主题无关聪明和谦虚好奇诚实交流和合作创造力和合作懒惰不是你想象中那样起作用的性格习惯小结第三十二章软件开发方法的有关问题克服复杂性精选开发过程首先为人编写程序其次才是计算机注重约定使用根据问题范围编程当心飞来之祸重复不要固执己见小结第三十三章从何处获取更多的信息l软件领域的资料库软件创建信息创建之外的主题期刊参加专业组织第一章欢迎进入软件创建世界第一章欢迎进入软件创建世界目录什么是软件创建(SoftwareConstruction)软件创建的重要性小结相关章节本书适合什么人阅读:见前言阅读本书的益处:见前言为什么要写这本书:见前言大家都知道“Construction”这个词在一般情况下的意思是“建筑”。建筑工人盖房子、建学校、造摩天大楼等时所进行的工作都是建筑。当你小的时候你用积木进行“建筑工作”。因此“Construction”指的是建造某个东西的过程。这个过程可能包括:计划、设计、检验等方面的某些工作但是它主要是指在这其中的创造性工作。什么是软件创建开发计算机软件是一项非常复杂的工作在过去的十五年中研究者们指出了这项工作所包括的主要方面包括:问题定义需求分析实现计划总体设计详细设计创建即实现系统集成单元测试系统测试校正性的维护功能强化如果你以前从事过一些不太正规的研制工作你可能以为列出的这个表有些太详细了。而如果你从事过一些正式的项目你就会认为这个表非常准确。在正规性与随意性之间达到平衡是非常困难的.这会在以后章节中讨论。如果你是自学编程员或是主要从事非正规研制工作你很可能还没有意识到这些在生产软件中所需要的工作步骤。在潜意识中你把这些工作统统称为编程。在非正式项目中当你在考虑设计软件时你所想到的主要活动可能就是研究者们所指的“创建”工作。关于“创建”的直觉概念是非常准确的但它往往缺乏正确观点。把创建活动放到与其相第一章欢迎进入软件创建世界关活动的背景中有助于我们在适当重视其它非创建工作的同时把主要精力放在正确的任务上。图中给出了创建活动在典型软件生存周期循环中的地位和包括的范围。正如图中所指出的创建活动主要指编码和调试过程但也包括详细设计和测试中的某些工作。假如这是本关于软件开发所有方面的书它应该涉及到开发过程所有方面并给予同等重视。但因为这是一本关于创建技术的手册所以我们只重点论述创建活动及相关主题。如果把这本书比喻成一只狗那么它将用鼻子轻擦创建活动尾巴扫过设计与测试而同时向其它开发活动汪汪叫。创建活动有时被称作“实现”它有时被叫作“编码和调试”有时也称之为“编程”。“编码”实在不是一个很好的叫法因为它隐含着把已经设计好的程序机械地翻译成机器语言的过程创建则无此含义它指的是在上述过程中的创造性和决策性活动在本书中将交替使用“实现”、“编程”和“创建”。图在图-中给出了软件图-和图l-是创建中所包含的一些特定任务。验证基础工作已经完l-l软件生存周期中软件开发过程的平面图开发过程的平面图示而在图-中则给了它的立体图示。活动的总体图示但是什么是它的细节呢?下面是创建活动成可以进行创建工作第一章欢迎进入软件创建世界设计和编写子程序与模块创立数据类型并命名变量选择控制结构并组织语句块找出并修正错误评审其它小组的细节设计和代码同时接受其它小组评审通过仔细地格式化和征集意见改进编码对分别完成的软件单元进行综合调整编码使其更小、更快图-本书主要详细论述详细设计、编码、调试和单元测试(所占比例如图示)要想更些是创建活动呢?”。一般认为软件创建的重要性正如我们所知改进软件质量、提高软件生产率是非常重要的。当今世界许多激动人心的工程同创建活动在整个开发活动中所占时间件开发中处于枢纽地位。分析和设计是创建活动的基础工作对系统进行测试以ikson和详尽地了解创建活动请参阅目录中每一章的标题。创建活动包括如此众多的工作人们可能会禁不住要问:“哪非创建活动包括:管理活动、需求分析、软件总体设计、用户交互界面设计、系统测试、维护工作等。这其中每项工作都与创建工作一样会直接影响到项目的最终成败(那些需要两个人以上合作至少一星期项目的成败)。关于这其中每一项活动都有很不错的论著在本书每一章后都列出这些书的书名。计划中软件都被广泛地应用:太空飞行、航空、医学与生命保障科学、电影特技、金融信息的快速处理、科学研究等这仅是其中的几个例子。如果读者您也认为软件开发是重要的那么您就会问为什么创建活动是重要的?原因如下:创建活动是开发软件的重要组成部分。随项目规模不为%~%之间在任何计划中占有如此大时间比例的活动必然会影响计划的成败这是不言而喻的。创建活动在软证实创建活动是正确的则是其后续工作因而创建活动是软件开发的核心工作。把主要精力集中于创建活动可以极大地提高程序员的生产效率。由Sackman、Er第一章欢迎进入软件创建世界Grant在年进行的实验表明每个程序员的效率系数的变化范围为~这一结果随后又被其它几个实验所证实。最优秀程序员与普通程序员的巨大差异表明普通程序员提高效率的潜力是非常大的。创建活动的产品源代码往往是软件的唯一精确描述。在许多项目中程序员可得到的唯一文件便是代码本身。需求说明和设计文档可能会过时但源代码却总是最新的。因此源代码必须具有最好的质量。一个软件成功与否的关键就在于是否不断运用技术来改进源代码。而这些技术恰恰是在创建阶段才能得以最有效的应用。创建活动是唯一一项必不可少的工作。理论上一个软件项目要经过精心的需求分析和总体设计然后再进行创建接着对其进行彻底的、严格的系统测试。然而实际工作中的软件项目往往越过前两个阶段而直接进行创建活动最后由于有太多的错误要修改系统测试又被弃之路旁。但是不管一个项目的计划多么疏漏而又如何匆忙创建活动都是必不可少的。无论怎样精简改进创建活动都是改进软件开发工作的方法。l小结创建活动是总体设计和系统测试之间承上启下的工作。创建活动主要包括:详细设计、编码、调试和单元测试。关于创建活动的其它称谓有:实现、编程等。创建活动质量对软件质量有潜在影响。在最后的分析中对创建活动理解的好坏决定了一个程序员素质的高低这将在本书其余部分论述。第二章利用隐喻对编程进行更深刻的理解第二章利用隐喻对编程进行更深刻的理解目录隐喻的重要性如何使用软件隐喻(SoftwareMetaPhors)通常的软件隐喻小结相关章节设计中的启发:“设计是一个启发过程”见节计算机科学的语言可能是所有科学领域中最丰富的。想象一下。你走进一间干净整洁、温度严格控制在的房间在这里你将会找到病毒、蠕虫、臭虫、炸弹、崩溃、火焰、扭曲的变形者、特洛伊木马和致命错误在其它领域中你会遇到这种情况吗?这些形象的隐

用户评论(0)

0/200

精彩专题

上传我的资料

每篇奖励 +2积分

资料评价:

/49
仅支持在线阅读

意见
反馈

立即扫码关注

爱问共享资料微信公众号

返回
顶部