如何作详细设计之序

详细设计是软件开发中很是重要的环节,不管你是工做几年的技术大牛,仍是只有一两年工做经验的小菜。可能你看到设计两个字,就以为很是高大上,然而你只要在用心写代码,在思考如何定义方法,如何定义类,你都在作着详细设计。至于作的怎么样,那就另说了。html

详细设计涉及哪些内容?

首先详细设计不一样于架构设计,架构设计主要关注系统的架构模型、系统开发语言选型、系统数据存储方式选型、系统模块的划分以及系统模块间的关系,关键技术的选型,系统部署架构,系统硬件需求、系统的安全性扩展性等内容。
详细设计不一样于代码实现,代码实现主要关注方法级别的算法实现,以及方法级别的调试,单元测试,以及各个模块间的接口联调。
那么详细设计是包括哪些内容?详细设计包括业务接口的定义、领域模型的定义、持久化层接口定义、关键业务设计模式的选用、关键业务模块的设计方案、关键方法的实现算法的选用等。固然若是web项目还包括请求响应接口的定义,我认为这是一个很是重要的工做。哪些地方可使用ajax,哪些地方选用直接输出html。直接影响着响应速度以及用户体验。git

详细设计须要具有什么能力?

一、深入理解架构设计模型,理解为何选用这种架构。这种架构对于目前系统的利与弊。
二、深刻理解业务需求,而且可以预测部分需求的变化方向。可以理解业务的本质。
三、具有面向对象思惟,熟悉面向对象的基本设计原则,熟悉设计模式、重构技术。
我只是暂时想到了那么多,还涉及其余能力。固然我也是在为达到以上的能力努力中。从以上能够看出,成为一名好的详细设计人员仍是很是有难度的。这可能具有良好这种能力人少的缘由之一吧。github

详细设计重要吗?

固然对于一个小的系统或者一个简单的系统,详细设计作的很是好可能不是必须的。可是对于一个互联网产品,我认为仍是很是重要的。如今不少互联网产品都提倡敏捷开发。在不断快速迭代的过程当中,若是详细设计没作好的话,随着迭代版本的增长,代码会变得面目全非。甚至推倒重来。
一、详细设计决定着系统的质量。在软件系统开发过程当中,可能一直存在这个问题,修了一个bug可能引发一堆bug,这个可能都不陌生。详细设计人员须要考虑设计的方方面面,好比职责如何分离,接口职责如何定义。能够有效减小这种状况出现的可能性。固然不能彻底杜绝,^_^。
二、详细设计决定着系统的可扩展性。系统的扩展性,一直是一个头疼的问题。特别是在互联网产品中,需求变化之快,以及用户量增长又比较迅速。详细设计人员须要考虑业务方面的扩展性,也须要考虑一些性能上的扩展性(固然性能的可扩展性,大部分属于架构设计的范畴)
三、详细设计决定着系统的可维护性。可维护性指的是改正、改进、改动软件的难度,这个的控制大部分把握在详细设计人员的手里。详细设计作的好对于软件的迭代很是有利的。
四、详细设计决定着你需不须要加班。这个就不用说了。相信你们都明白。web

我也是一位学习者

以上扯得够多了,本系统主要总结一些详细设计的方法,你们共同窗习,首先我不是详细设计的大牛,只是菜鸟,之因此写本系列,主要是对于详细设计的一些思考总结分享给你们,使本身也可以技术上获得进步。对于本系列中的思考,很是感谢znyin,和他共事将近一年,学到了不少详细设计方法以及思想,给了我不少宝贵的实践机会,很是感谢,本系列也是我从他那学习的技术的总结。
本系列计划包括以下内容:
一、如何作详细设计之序
二、如何作详细设计之设计即编码
三、如何作详细设计之规范
四、如何作详细设计之设计原则
五、如何作详细设计之理解业务本质
六、如何作详细设计之重构
七、如何作详细设计之设计模式
八、如何作详细设计之总结ajax

本系列文中观点仅是我的观点,欢迎讨论。算法

本文同步http://yywang.info,天天同步一篇,将所有系列同步至博客园设计模式

相关文章
相关标签/搜索