后来,我们又开发一个类似Adobe Acrobat Exchange的PDF文件浏览器兼编辑器(当时Acrobat Exchange还不能显示中、日、韩文)。这时,老板带来一些过期的《C/C++ Users’ Journal》《Dr. Dobbs’ Journal》杂志。从书评中,我被几本书吸引住了。一本是James Rumbough等著的《Object-Oriented Modeling and Design》,一本是现在大名鼎鼎的《Design Patterns》,还有就是Scott Meyers著的《Effective C++》和《More Effective C++》。我劝说老板买了这几本书,并撺掇他买了一个CASE(计算机辅助软件工程)工具:Select OMT。 仔细研读这几本书后,颇有顿开茅塞之感。最大的收获在于了解到降低类之间耦合度的重要性。一个类的实现细节发生变化,不应该影响使用该类的其它类的内部实现。更妙的是有不少Design Pattern能马上用到我们的软件中。 我用Select OMT软件画了一些高层的类图、状态图和数据流图等,并让同事们审查。同事们都觉得通过这些图对软件的总体设计有了更好的把握。在写程序的过程中,我们不断调整程序结构以尽可能减小类之间的耦合度。老板很早就安排了专职测试人员。发现问题,马上修改。一年后,我们的软件终于通过了用户的试用,卖出去了。当时,我可说是信心满满。 此后,我做了一年半多媒体编程。发现还是对系统开发更感兴趣。于是加入了Quark软件公司,开发一个基于CORBA的文件管理系统。这是我第一次参与异地开发,也是第一次大规模使用STL。我惊叹于STL设计之妙,同时也对自己的信心打了折扣。此后,我阅读了Martin Fowler著的《UML Distilled》、Bertrand Meyer著的《Object Oriented Software Construction》等书籍。并开始使用Rational Rose。Quark公司的技术文档管理、设计复查、代码复查、质量管理以及德国人(Quark公司德国分公司)严谨的工作态度都给我留下了深刻印象。 项目组下分开发组和测试组。开发组中有一个4到5人组成的设计小组负责软件总体设计,其中一个人负责技术文档,确保文档反映最新的设计。定期进行设计复查。复查时,项目组成员全部参加,并可提出问题或建议。得出结论后,马上付诸实施。 开发组下又设若干小组。小组内定期进行代码复查。由组长选出每个组员的源文件,交其他组员复查,尽量挑出所有的毛病。如果代码太次,要打回从新写过。代码复查既能保证软件质量,又是大家学习的一个机会。 一年半后,我离开Quark,加盟Sybase,参与PowerBuilder的维护和新版本的开发。这是我第一次参与软件维护,令我认识到软件维护的重要性,认识到编写可维护的代码是软件开发的一个重要课题。Sybase系统化的质量跟踪系统和用户支援系统让我获益匪浅。在此期间,我阅读了《Large-scale Software Development in C++》、Martin Fowler著的《Refectoring》、Andrei Alexandrescu著的《Modern C++ Design》,Herb Sutter著的《Exceptional C++》和《More exceptional C++》,以及Kent Beck著的《Extreme Programming Explained》等书籍。对软件开发与维护有了进一步了解,但同时也更认识到软件开发之难。 |
正在阅读:软件开发高手:十年磨一剑软件开发高手:十年磨一剑
2004-04-01 11:05
出处:CSDN
责任编辑:sdq
键盘也能翻页,试试“← →”键