大数跨境
0
0

《深入浅出面向对象分析与设计》读后感|王鹏

《深入浅出面向对象分析与设计》读后感|王鹏 广州海颐软件有限公司
2020-08-07
2
导读:从年初开始,断断续续的读了几个月,终于按照计划把《深入浅出面向对象分析与设计》这本书读完了,本书的写作方式比



从年初开始,断断续续的读了几个月,终于按照计划把《深入浅出面向对象分析与设计》这本书读完了,本书的写作方式比较新颖,可以说是图文并茂,诙谐的文字配上幽默的图片,通过视觉化的方式,加深读者的记忆力,条理清晰、主旨明确,使我能够循序渐进一点点的深入的读下去。当然本书也有一些缺点,比如陈述内容过于细致冗余,有些翻译的文字也比较晦涩,理论性的东西比较多,实例代码相对来说比较少,但瑕不掩瑜,这并不妨碍它成为一本面向对象分析与设计的经典入门书籍。


书中结合几个具体的例子(吉他库存管理系统、狗门、游戏系统开发框架)循序渐进地讲解了OOA&D面向对象设计与分析涉及的关键概念、设计原则以及分析流程。其核心思想我认为就是书中所说的伟大软件开发的三个步骤:


1、确认你的软件做客户要他做的事情


客户要他做的事情即需求,需要我们通过需求分析确认,通过与客户反复沟通、交流收集用户需求,利用UML建模工具绘制出系统的用例图,考验的是我们的业务分析以及领域建模的能力,这一点往往是我们在开发系统过程容易忽视的方面或者薄弱的地方,通常我们会从开发人员角度而非用户的角度去分析问题想问题,这样设计出来的系统往往用户体验,使用起来很不方便。另一方面,作为开发人员,通常对其所使用的开发语言比较精通,而对UML这种建模语言或者工具并不是很熟悉最后,需求不是一成不变的都,需求是经常变更的,如何使你的软件从容应对需求变更就显得及其重要,书中提到了测试驱动开发,设计优良的系统必定少不了测试,测试驱动开发的基本思想就是在开发功能代码之前,先编写测试代码。测试对系统来说特别重要,作为开发人员可以利用一些成熟的测试框架来提升自己编写测试代码的效率。


2、运用基本的OO即面向对象设计原则来增加软件的灵活性


告诉我们要用面向对象而非面向过程的思想去实现我们的系统,在软件设计的过程中尽量的使用像封装、继承、多态等面向对象的技术,使我们的程序更加灵活,良好的设计等于灵活的软件。为了使软件灵活可扩展,要学会利用面向对象的设计原则降低应用程序的耦合度一些基本的面向对象的设计原则比如单一职责原则、开闭原则(即对扩展开放,对修改关闭),里式替换原则等是需要我们始终牢记的,这些面向对象的基本原则都很简单,但真正能在程序设计中灵活使用不简单,就拿最简单的单一职责原则来说,我们可以回头想想我们曾经设计和实现的类,有哪些类真正的做到了单一职责,我们是不是为了图省事将一个类变成了一个万能类。


3、努力实现可维护、可重用的设计





这是真正考验我们开发人员内功的时候,你需要对你要设计的系统进行整体的架构设计,并不断的进行架构优化,甚至有些时候还需要重构你的系统,在架构设计的过程中需要运用一些高级的面向对象分析技术,例如运用一些设计模式去使我们的系统更加容易扩展。架构设计的目的就是让你软件容易改变,反之,你的软件越难改变,就越难响应用户需求的变更。在架构设计以及开发的过程中需要经过反复的迭代,最终实现一个真正可维护的系统。良好的软件是通过迭代造就的,分析、设计再次迭代,一次次完成程序更小的部分。书中提到了两种编程模式:契约编程和防御编程。二者各有优劣,我个人比较倾向于使用防御编程去实现你的系统。关于防御式编程我想多说几点,防御编程其核心思想是要承认程序都会有问题,都需要被修改,应该根据这一点来编程序,这种思想是将可能出现的错误造成的影响控制在有限的范围内;在编写代码的时候要养成检查变量合法性的习惯;在多线程异步环境下,你不能保证你的变量不会被其他线程,或者被其他异步操作改变状态;不要盲目自信,代码最终还是人写的,是人写的就会出错,你能够做的就是在出错之前尽可能的思考出所有出错的可能,把异常情况规避掉;别认为添加错误处理或者异常检测会降低你的代码运行效率,实际情况是为此牺牲的效率微乎其微,而换来的却是程序的高度健壮性,你不再担心你的程序会无缘无故的崩溃,保持怀疑一切的态度去编写和维护你的代码。通常,通过防御编程编写出来的程序更加稳定且容易维护,养成良好的防御编程习惯将使你的程序无懈可击。


当然,书中所讲述的远远不止这些,UML建模、用例设计,功能分析、软件设计原则、设计模式、软件开发方式、领域分析、架构设计、OOA&D的生命周期等等任何一项拿出来都值得我们去学习研究并细细品味在之后的工作中还需要结合实际开发深化学习,转变软件开发的思想,培养良好的面向对象设计的习惯,运用面向对象的设计原则、设计模式以及领域分析的方法使开发的软件更加健壮、灵活以及可维护。




【声明】内容源于网络
0
0
广州海颐软件有限公司
广州海颐软件有限公司专注于行业信息化的咨询、设计、开发和实施服务,在电力、电子政务、公安警务系统、道路客运联网售票系统、SAP实施顾问、ERP咨询及服务等领域。
内容 382
粉丝 0
广州海颐软件有限公司 广州海颐软件有限公司专注于行业信息化的咨询、设计、开发和实施服务,在电力、电子政务、公安警务系统、道路客运联网售票系统、SAP实施顾问、ERP咨询及服务等领域。
总阅读105
粉丝0
内容382