《代码大全》软件工程项目

《代码大全》

Q1.进行软件开发时,总想着迫不及待地去写代码。在软件开发的过程中,这种做法正确吗?编写代码之前还应该做些什么?

A1.我曾经一度认为,软件就是代码堆砌的结果。通过程序员的不懈努力,有朝一日一定能写出一套大型软件,例如Office。但是现在我发现这种想法是完全不正确的。软件开发是一个工程问题,需要用工程的思维去解决。为了完成一个项目,需要进行定义问题、需求分析、规划构建、软件架构、详细设计、编码与调试、单元测试、集成测试、集成、系统测试以及保障维护这一系列活动。

做一个规模稍大的软件开发项目,如果走上来迫不及待地写代码,没有做任何准备工作,那么开发工作几乎注定会陷入僵局。建造软件系统跟其他任何花费人力财力的项目是相似的。如果打算建造一座房屋,你需要在开始钉钉子之前准备好手绘草图(表达设计概念)和蓝图(即设计详图,包含所有细节信息)。在浇注混凝土之前必须审核蓝图并获得批准。在软件领域做技术规划也包含同样多的事情。编写代码前的准备工作是很重要的,就像修建建筑物一样,如果地基没打好,或者计划不充分,无疑会给构建工作带来很大的损害。准备工作的中心目标就是降低风险,使项目的大部分工作能够尽可能平稳地进行。有时候用户在一开始并不完全确定自己想要的是什么,因此值得花费比理想情况下更多的力气,找出他们真正想要的东西。这至少比“先做一个错误的东西出来,然后扔掉,并从头来过”的成本要低廉。从20世纪70年代开始至今的业界数据显示,如果在开始构建活动之前认真地进行适当的准备活动,那么项目将会运作得极好。

准备工作包括问题定义、需求分析、架构设计等阶段。不同阶段需要考虑不同的问题。根据项目的复杂程度和性质,需要灵活地进行各项准备工作的安排。

Q2.软件开发中,在前期准备和编写代码之外,还应该做些什么?怎么做?

A2.软件开发并不是说写完代码,就可以立即公开发布产品了。代码可能会有各种缺陷,我们称之为BUG。为了让客户拿到满意的产品,必须要保障软件的质量。软件质量保证是一个需要预先计划的、系统性的活动,其目标就是为了确保系统具备人们所期望的特性。改善软件质量的一种强有力的方法,就是根据软件的各种外在和内在特性,明确定义出软件质量的目标。

缺陷可能在任何阶段渗透到软件中,因此,在早期阶段就需要开始强调质量保证工作,并且将其贯彻到项目余下的部分中。在开工之时,这一工作就应该添加到项目计划中。因此,质量保证工作往往是和架构以及编写代码同时进行的。包括设计复查、代码复查、单元测试、集成测试、系统测试等部分。

Q3.编写代码过程中,为什么要有代码编写布局和风格的规范?

A3. 规范能够精确地传达重要信息,可以使你免除各种风险。规范增加了对低层工作的可预见性,弥补语言的不足之处。编排出色的代码会带来视觉上和思维上的愉悦,这是非程序员的人不能感受到的。而精雕细琢代码、使之达到美观的程序员们,却会从这一过程得到艺术上的满足。

代码布局与风格并不影响执行速度、内存使用量等方面的程序性能。但它却会让你日后理解代码、检查代码以及修改代码变得更容易,也使得其他人在你缺位的时候更容易阅读、理解和修改你的代码。

代码布局与风格的细节规定可以根据程序员的习惯来制定,但总体上需要遵循以下原则:准确且始终如一地表现代码的逻辑结构、改善可读性、经得起修改等等。编程风格包括良好的程序结构、直率易懂的方法、有意义的变量名和子程序名、具名变量、清晰的布局,以及最低复杂度的控制流及数据结构。整个工程中的代码布局与风格应保持一致。

Q4.软件的文档有哪些?编写的目的是什么?

A4.从文档的位置来看,大致可以分为外部文档和内部文档。软件项目的文档涵盖了源码清单内外的各种信息——常见的形式有独立的文件或者单元开发文件夹。对于大型的正规项目,多数文档位于源码之外。外部结构文档通常比编码的层次更高,但比问题定义、需求和架构活动的层次低一些。单元开发文件夹是一种非正式文档,其中包含了供开发者在编程期间使用的记录。其主要用途是提供在其他地方没有说明的设计决策踪迹。除此之外还有详细设计文档。详细设计文档是低层次的设计文档,描述类层或子程序层的设计决定,曾考虑过的其他方案,以及采用所选方案的理由。

与外部文档相比,内部文档嵌入于程序清单本身,是最详细的文档,位于源代码层次上。主要由注释和编程风格组成。其中,编程风格占主导地位。

Q5.在软件开发的团队中,每个成员应怎样做才能达到团队效率的最优化?

A5.进行软件开发,首要任务是明确目标。每个人在团队中有不同的分工,不同的任务,应该清楚自己的职责,做好自己分内的事,不拖团队的后腿。

个人的才能和努力固然重要。可是,离开了团队合作的孤军奋战一定是没有用的。团队内部需要交流,每个人不仅要明确自己做了什么,要做什么。更要清楚团队里面的其他人目前的工作。这对于推动整个团队的进展是很关键的。分工与管理是一项十分重要和复杂的工作,它直接影响到软件项目的成功与失败。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值