《Oracle PL/SQL程序设计(第5版)》一一1.6 一些建议

1.6 一些建议

Oracle PL/SQL程序设计(第5版)
自从本书1995年第一版出版以来,我有机会培训、帮助、与上千名PL/SQL开发人员合作过。在这个过程中,我从学生和读者中学到的许多,也深刻的理解了在PL/SQL世界中我们是如何工作的。我要给你一些如何让这个强大的编程语言更有效的工作的建议,你可不要不耐烦。

1.6.1 不要太着急

我们的工作时间总是很紧迫,记者解决一个个的问题。我们不能浪费时间,有太多的代码要写。因此马上开始吧——对吗?

错误。如果太快地深入到代码构建中,盲目地把用户需求转化成成百上千甚至上万行代码,最终我们得到是一大堆乱七八糟的、基本不可能调试和维护的垃圾。不要对即将到来的最后期限太过恐慌;如果我们能够做一些仔细的计划,就能够保证最后期限。

我强烈地建议你一定要抵制住这些时间压力,确保在开始开发新应用,甚至应用中的一个程序之前都有完成下面这些事情:

在开始编写代码之前构建测试用例和测试脚本
就算我们的程序只有一行代码,我们也需要先确定如何才能验证这个实现方式是成功的。只有这样,我们才能保证程序接口的正确性,也才能更透彻地知道我们的程序到底要做些什么事情。

就开发人员该如何编写SQL语句制定一个清晰的规则
一般来说,我建议每个开发人员都不要写太多的SQL。相反,那些单行结果的查询和插入、更新操作都应该“藏在”一个预建的、经过彻底测试的过程和函数的背后(这种方法也叫做数据封装)。这些程序可以比那些散布在代码中到处都是的SQL语句(很多语句都是重复的)更有效的优化、测试以及维护。
**
就开发人员如何处理应用中的异常指点一个清晰的规则**
一个开发团队中的所有开发人员都应该用相同的方式抛出、处理、记录错误。要想这么做,做好的方法就是创建一个单独的错误处理包,报所有关于保留错误日志、确定异常如何抛出、以及如何传播出嵌套块的细节都隐藏起来。一定要确保团队中的所有开发人员都要使用这个包,而不是自己又写一套复杂的、浪费时间的、还容易出错的错误处理代码。

使用“逐步细化”(也叫做自顶向下的设计)的方法,避免任何时间我们必须处理的需求过于复杂
如果我们采用这种方法,就会发现模块中的执行单元变得很短而且更容易理解,这也能保证我们的代码更易于维护和改进。局部或者嵌套模块在这个设计原则中起着关键角色。

这些只是我们开始代码编写之前必须要注意事项的一部分。记住:在软件开发世界里,仓促上马不仅意味着浪费资源,肯定会有大量的bug,周末也没了。

1.6.2 不要怕寻求帮助

如果你是一个软件专业人士,你很可能是一个相当聪明的人。你学习刻苦、勤学苦练,为了良好生活而写代码。你差不多可以解决任何交给你的问题,这让你很骄傲。不幸的是,你的成功也让你自负、自大、遇到困难也不愿意寻求帮助,对于软件开发来说这是最危险也是最有破坏性的方面之一。

软件都是由人编写的;因此,很重要的一点就是,要认识到人类心理在软件开发中扮演了一个关键的角色。下面就是例子。

Joe,是一个6人开发团队中的高级开发人员,编程中遇到了一个问题。他花了数个小时研究这个问题,只有越来越多的挫折,可还是不能指出问题的来源。他不想向他的组员寻求版主因为他们的经验比他少。不过,最后他还是无计可施只能“放弃了”。叹了口气,他拿起了电话按了个键:“Sandra,你能过来看看我的程序吗?我有个问题无法解决。”Sandra过来了,很快地看了下Joe的程序,指出了很早之前就应该发现的问题。万岁!程序解决了,Joe感谢万分,但实际上私底下他还是很尴尬的。

类似于“我怎么就没看到呢?”以及“只要我肯在花上5分钟时间调试,我自己就能解决了”的想法不断地出现在Joe的脑海中。这很容易理解不过也很愚蠢。因为我们和代码太近了,以至于发现不了问题。有时,我们所需要的就是一个全新的角度,没有任何关系的人的相对客观的看法。这和资历、专业或者能力没有任何关系。

我强烈建议你应该在你的机构内建立下面这些指导原则:

奖励那些承认自己不知道的
明明不了解某个应用程序或者其代码又不说,这是很危险的。培养一种欢迎别人质疑以及求助的文化氛围。
**
寻求帮助**
如果我们无法在30分钟内找出问题所在,立即请别人帮忙。我们甚至可以建立一套“互助系统”,给每个人都分配一个他可以需求帮助的人。不要自己(或者小组中的其他人)徒劳地花费数小时却没有任何结果。
**
设置一个正式的同行代码评审程序**
当我们的代码还没有小组其他成员阅读或者评论(以一种积极的、建设性的方式)之前,不要把代码提交给QA或者生产线上。

1.6.3 采用一种创建新的甚至激进的方法

我们在生活中总是重蹈覆辙。人是一种习惯性的生物:我们学习用一种方式编写代码;我们承认产品有一些局限;我们不做任何严格的检查就排除可能的解决办法,仅仅因为我们以为不能。开发人员逐渐对他们自己的程序偏信,经常是肯定的一面。总会听到他们这么说:

“不可能跑得更快了;它只是只猪啊”。

“我没法让它按照用户需要的那样工作,我们必须要等到下一个版本。”

“如果我用X或者Y或者Z,就易如反掌。不过要是用这个,那就像打仗一样了。”

但事实上,我们的程序总是可以更快一点。事实上屏幕也可以像用户希望的那样工作。尽管每个产品都有自己的局限性、优势和弱势,我们也不能够等着下一版。如果能告诉医生正确的面对问题,不接受任何借口,精心设计一个方案是不是会很爽?

我们该怎么做呢?打破那些已经僵化的意见的限制,重新看看世界(或者只是你的办公室)。重新评估我们已经养成的编程习惯。要有创造性——逐步地摆脱传统方法,逐步摆脱那些在我们日常工作中不断强化的局限的、机械的方法。

做些新的尝试:试试那些看起来离经叛道的方法。你会惊奇地发现,作为一个程序员乃至问题解决员你会学到多少东西。这么多年来,我一次又一次惊异地发现,一旦我不再说“你不能这么做”,而只是静静地点头,默默地对自己说“现在,如果我这么做……”,也真的就实现了。

时间: 2024-10-31 23:17:45

《Oracle PL/SQL程序设计(第5版)》一一1.6 一些建议的相关文章

《Oracle PL/SQL程序设计(第5版)》一一1.4 关于PL/SQL的版本

1.4 关于PL/SQL的版本 Oracle PL/SQL程序设计(第5版) 每个版本的Oracle数据库都有其对应的PL/SQL版本.只要我们使用的是最新版的PL/SQL,就会有更多的功能供我们使用.作为PL/SQL程序员的最大挑战就是"紧跟".我们不需要不断地自学每个版本中的新特性─学会使用它们,尤其在我们自己的应用程序中该如何使用,确定有些新技术尤其有用,我们应该利用这些新技术修改已有的应用程序. 表1-1总结了数据库中每一版(过去的和当前的)PL/SQL的主要成员(注意在早期的

《Oracle PL/SQL程序设计(第5版)》一一2.6 在其他语言中调用PL/SQL

2.6 在其他语言中调用PL/SQL Oracle PL/SQL程序设计(第5版) 总有一天,你会在从C.Java.Perl.PHP或其他语言中调用PL/SQL.虽然这是一个很合理的需求,如果你曾经做过跨语言的开发工作,你一定熟知要把各种语言专有的数据类型糅合在一起─尤其是那些复合数据类型,比如数组.记录或者对象类型─的复杂性,更不用说不同的参数语法或者厂商对所谓"标准"应用编程接口(API)的扩展,比如微软的ODBC(Open Database Connectivity). 我会用几

《Oracle PL/SQL程序设计(第5版)》一一1.5 PL/SQL开发人员的资源

1.5 PL/SQL开发人员的资源 Oracle PL/SQL程序设计(第5版) O'Reilly在1995年出版了本书的第一版.当时,Oracle PL/SQL编程这本书确实造成一个小轰动.它是第一本关于PL/SQL的独立著作(也就是,不是来自于Oracle公司的).从那时开始,PL/SQL程序员的资源─图书.开发环境.工具以及网站─开始蓬勃发展.(当然,迄今为止这本书仍然是这些资源中最重要和最有价值的!) 下面这一节简要地介绍了这许多资源.要充分利用这些资源,许多资源都可以免费获得或者非常低

《Oracle PL/SQL程序设计(第5版)》一一2.2 创建和编辑源代码

2.2 创建和编辑源代码 Oracle PL/SQL程序设计(第5版) 当今的程序员有太多的代码编辑器可以选择,从最简单的纯文本编辑器到最花哨的开发环境让人眼花缭乱.不同的程序员会有不同的选择,本书的一名作者Steven Feuerstein,非常痴迷于Toad IDE.他也是一个非常典型的IDE用户--最多熟悉界面上10%的功能和按钮,并严重依赖于这些功能.相反Bill Pribyl说他自己是一个"非常古怪的人,因为我只喜欢使用一个非常朴素的文本编辑器来写PL/SQL程序.我的一个要求就是,它

《Oracle PL/SQL程序设计(第5版)》一一1.1 什么是PL/SQL?

1.1 什么是PL/SQL? Oracle PL/SQL程序设计(第5版) Oraclel 的PL/SQL语言有这样一些典型的特点: ** 它是一种高度结构化.易读.易理解的语言** 如果你是一个开发新手,那么PL/SQL是一个非常好的起点.你会发现PL/SQL是一门非常容易掌握的语言,它有丰富的关键字.语法结构,可以让编写出能够清晰的表达你的意图的代码.如果你在其他开发语言已经是一个资深开发者,你也会发现PL/SQL这门新语言非常容易适应的. ** 它是一种标准的.可移植的Oracle开发语言

《Oracle PL/SQL程序设计(第5版)》一一第1章 PL/SQL概述

第1章 PL/SQL概述 Oracle PL/SQL程序设计(第5版) 所谓PL/SQL,即"Procedural Language extensions to the Structured Query Language"的首字母缩写.在关系数据库的世界中,SQL语言是无处不在,从数据查询到数据更新.Oracle 公司发明PL/SQL为了克服SQL语言自身的一些局限,并为那些要在Oracle数据库中运行的核心业务,提供一种更完整的变成解决方案.这一章将介绍PL/SQL,包括它的起源.它

《Oracle PL/SQL程序设计(第5版)》一一2.5 编辑PL/SQL的环境

2.5 编辑PL/SQL的环境 Oracle PL/SQL程序设计(第5版)如前所述,你可以选择像SQL*Plus这样最朴素的编辑和执行环境,你也可以使用一个集成开发环境,后者提供丰富的图形界面能够提高生产力.这一部分会罗列一些最流行的IDE工具.我不会推荐任何一款工具,你应该仔细定义你的需求列表并排出优先顺序,然后再看哪一款最能满足你的需求.还有许多其他的PL/SQL IDE工具,但上面罗列的这些足够了.

《Oracle PL/SQL程序设计(第5版)》一一第2章 创建并运行PL/SQL代码

第2章 创建并运行PL/SQL代码 Oracle PL/SQL程序设计(第5版)即便一个PL/SQL程序员从来不重视系统设计或者单元测试这样的任务,他也必须熟悉下面这些最基本的操作: 在数据库中导航:创建和编辑PL/SQL源代码:编译PL/SQL源代码,修正编译器发现的代码错误(或者,可选的,处理警告信息):在某些环境下运行编译后的程序:检查程序执行结果(可能是从屏幕上的输出,或者是根据表中的数据变化,等等).PL/SQL是寄生在Oracle执行环境中的(因此说它是"嵌入式语言"),这

《Oracle PL/SQL程序设计(第5版)》一一1.2 PL/SQL的起源

1.2 PL/SQL的起源 Oracle PL/SQL程序设计(第5版)Oracle公司一度领导软件工业为设计数据库和应用程序提供一种声明式的.非过程化的方法.Oracle数据库服务器是世界上最先进的.最强大的.最稳定的关系数据库.它的应用程序开发工具,比如Oracle Forms,通过提供大量的默认功能,提高了生产力水平,开发人员只要依靠"在屏幕上涂涂画画"的方法,就能避免自行开发的劳苦. 1.2.1 早期的PL/SQL 在早期的Oracle中,SQL的声明式方法,以及开天辟地的关系