技术开发 频道

数据库设计师——Rob Garrison专访

  【IT168技术访谈

   Database Journal采访了自己的撰稿作家Rob Garrison。Rob是Corillian的数据库设计者和开发人员,有十年的数据库开发经验。他帮助开发的软件已被超过1/3的美国在线银行用户使用。在这次访问中,Rob与我们分享了他的开发经验,并且就他正在为Database Journal撰写的新交互式联机事务处理数据库系列表达了个人观点。

   DBJ:请给我们介绍一下您自己及您的事业。 

   RG: 1985年,我在空军服役时开始专业从事计算机。我从1992年开始编写程序,1996年起专门从事数据库开发。

   DBJ:您的主要职责和成绩是什么?

   RG:在Corillian,我身处多个项目组并参与了多个项目的开发,经常扮演数据库设计者和开发人员的角色。

   在美国,超过1/3的网上银行用户使用我们的软件。完全相同的模式和代码不仅可供小的信用合作社使用同时可供拥有超过2千万在线用户的银行使用。这些大客户促使我们不断提高可测量性,同时所有的客户要求提高软件的可靠性,质量以及易用性。这是件非常伟大并且十分有趣的工作。

   我大多数重要的成果是为Corillian当前的授权和认证系统开发完整的数据库设计、全部的数据库代码以及单元测试。我以前的项目中开发了一个自动化数据库单元测试框架,并把它广泛的应用于这个项目。项目完成以后,我得到了出版这一框架的许可。在经过整理后,我出版了TSqlTest框架。

   著作:多年来我一直在工作之中书写内部文档。2004年,我决定走向市场,并为sqljunkies撰稿。现在,我正在为Database Journal撰写SqlCredit系列。我十分喜欢这项工作,因为写作不仅可以使我的技术流行起来,而且可以给一直以来帮助我很多的社区一点回馈。

  【IT168技术访谈

   DBJ:在您的日常工作中,最常使用哪一种数据库?

   RG:在我们当前的项目中,我们只使用SQL Server 2005

   DBJ:您使用哪一种操作系统?

   RG:Corillian一直是一个以微软为中心的公司。我们在我们的开发系统中使用Windows XP,在产品中使用各种版本的Windows Server操作系统。

    DBJ:您使用哪种语言?

    RG:自从我一进入Corillian公司,我就深陷于T-SQL中不能自拔。在上面花费了我绝大多数时间。

    在我们当前的项目中,为取得更好的效果,我们使用Powershell(包括Powershell remoting)。我们使用它来自动化配置软件堆栈到一个无人的n–box系统中。如果你已经开始使用Powershell,请继续深入一探究竟。这是一款非常有用的软件。

    DBJ:从2006年1月29号,您开始在Database Journal撰写新系列的文章。请您就此计划给我们简单介绍一下。

    RG:SqlCredit系列的基本想法是研究一下OLTP数据库的开发过程。所以在一开始时,需求是非常基本并且相当的粗略。设计和需求将会以后的连载中逐步细化。

    同样,这一连载系列将说明敏捷开发的原则。读者将会被要求扮演产品拥有者,开发者和QA的角色。

    在整个出版计划中,由于新功能的增加以及旧功能的重构,代码将会不断增加。就像在一个实际的开发项目中,一开始的时候我们并不知道所有的事情。事情会因需求的改变,可测量性的要求,所使用的SQL Server版本以及一些其他因素而改变。

    事实上,我并没有制定出所有的系列。我只是确定了基本需求,即使用SQL Server 2005的特性同时增加更多的可测量性。除此之外,我们只能拭目以待。

  【IT168技术访谈

   DBJ:谁是这个出版计划的预期读者?

   RG:这一系列丛书瞄准当前想要学习更多的数据库设计和开发的数据库开发人员、一般的程序员和管理人员。

   DBJ:在这个出版计划中,您想取得什么样的预期效果?

   RG:我希望可以帮助读者理解OLTP的开发原则,同时在与读者就此计划的的讨论过程中,我希望可以学点东西。这是论坛对这个出版计划来说至关重要的原因。

   写作同样促使我对自己在设计和编码方面的设想提出挑战。什么是设计一个信用卡数据库的最好方法?当然,这得视情况而定。数据库设计并不是一件容易的事。它由艺术和科学两个均等的部分组成,但是这正是它有趣的原因所在。

   DBJ:在设计一个OLTP数据库时,那些错误是开发者经常犯的?

   RG:对数据库专业人员来说,数据库设计的基本原则是烂熟于胸的,但是我发现设计者经常规律性的遗漏基本原则。其中包括unique indexes(是否为主键),clustering和indexing。

   坦白说,我最常见到的错误是项目负责人让并非数据库专家的人来设计数据库。

   DBJ:我注意到你在争取DBJ社区的参与,为什么这样做呢?为什么不只是写文章而不要社区的参与呢?

   RG:我在读文章的时候经常会产生一些问题或并不同意作者某一想法。这个系列丛书是互动的。如果读者不同意部分设计和编码,或者他们想改变部分需求,他们可以在论坛里发帖子。我将会定期查看论坛。

   连载的第二期包含一个有关设计和编码两者选一的开放性问题,你将会在第三期的连载中开始看到论坛影响项目的真实事例。

  【IT168技术评论

   DBJ:您想要对那些正在努力开发或维护项目的人们说些什么呢?

   RG:我所要说的是自动化的价值(自动化创建,持续集成,自动化测试)。

   对一个已经存在质量和进度问题的项目来说,摆脱这一困境的唯一的办法是使用自动化单元测试和QA测试。

   对于一个新的开发项目来说,马上开始使用自动化是正确的选择。马上提升连续集成环境。在标准的创建过程中建立单元测试确认。不要让创建过程处于中断状态。

   对数据库开发人员来说,不要后悔使用自动化测试。不要宣布存储过程、存储函数、触发器是通过测试调用代码来完成测试的。这是荒谬的。建立自己的自动化单元测试,不要冒然装载你的代码直到你确认它是正确的。

  DBJ:此后五年,您有什么打算?

   RG:我期望可以在一个聚焦于数据库的架构师一级的职务上,这样我可以深入研究设计和开发。我同样期望我可以继续写作。

   多谢您回答我们的问题并与我们分享您的知识和经验,Rob!

 

0
相关文章