当前位置:项目开发->项目经验 ->分享如何高效设计并开发一个系统的经验

原创版权标志分享如何高效设计并开发一个系统的经验

作者:codexia  发表时间:2017/12/1 23:16:36  阅读:
[摘要] 开发一个系统,是一件很严肃的事情。既然是提到系统层面,肯定不是随便凑合着做完了事。所以,我们在阅读到这篇文章的时候,就代表我们是在做一件认真的事情。而这件事情做完之后,可以给我们的开发一些启发和引导。
    开发一个系统,是一件很严肃的事情。既然是提到系统层面,肯定不是随便凑合着做完了事。所以,我们在阅读到这篇文章的时候,就代表我们是在做一件认真的事情。而这件事情做完之后,可以给我们的开发一些启发和引导。
    虽然不同的人都可以开发出一个系统,表面看起来一样,但是内在金玉还是败絮,只有自己最清楚。开发过程中,优秀的系统设计不仅可以极大的降低开发时间,也会让开发变得更快更高效。
    开发一个系统要涉及到什么东西?我们从用户使用系统开始说吧。我们来说说系统的组成,以及相互之间应该如何去开发,才会让系统开发更加高效。当然,我说的并不是权威,这只是我对系统开发的一个建议,谁都可以推翻我。只是我觉得我这个设计经过了一番思考,可以给大家一些启发,分享给大家。如果您觉得我下面写的很不错,可以分享一下,如何觉得我这个写的糟糕,可以批评指正。
    一个系统从整体上要分为三大部分,分别是前端交互、后台逻辑和数据存储。下面就分别对这三部分进行描述。
1.前端交互
    前端交互是系统的第一件要做的事情,是一个门面,是一个入口。没有这个入口,系统无法发挥作用。当然,交互不一定指的是UI界面,它可以是一个接口,可以是一个函数,可以是一个模块。我们这里并不局限于web系统,还可以理解为软件系统和硬件系统等等。因为在软件开发思想里,这些只是不同的表示形式。网页登陆和手机APP登陆以及PC软件登陆,其实都是一回事,只是实现方式有点差异而已。没有谁比谁更高级,只有谁比谁更适合某些使用场景。比如网页登陆,只要有浏览器,哪都可以登陆,非常方便。但是网页登陆需要考虑到网速,如果网速慢,体验会很差。而手机APP和PC软件登陆,界面直接可以创建出来,然后只需要交互少量数据,所以体验上更快。
    所以,前端交互只是人与机器的交互。这个层面会完成很多基础的界面逻辑,对于业务,不在这里实现。如果是网页,业务肯定不能在前端的js代码里写,是公开的代码。而PC游戏,也会因为防止外挂破解,而转移到后台(服务器端)完成逻辑的处理。所以前端主要是完成界面的交互,然后是第一层验证,防止别人很轻易的越过前端来攻击后台。虽然验证还是可能被越过,但是至少增加了难度,有一定的保护。
    
2.后台逻辑
    那么自然,后台就是完成业务功能流程的主战场。在完成功能前,一定要进行各种检测,以过滤非法的攻击。这是因为,前端交互是不可靠的。后台逻辑是系统的核心,是系统的重中之重。系统是否好用,是否稳定,就看这里。业务系统设计是否合理,是否好扩展,和后台的架构是密不可分的。所以,设计对于整个系统来说是非常重要的。系统会变得很复杂,一个不好的设计,在开始还可以应付一下,到了后期,需求的增加,功能的调整,导致系统最后无法满足。然后以外挂的形式进行修复,最后系统残破不堪。
    造成这个问题的就是设计太糟糕。很多人在开发一个软件或者系统时,基本都是凭感觉在写代码,边写边想。最后写完了,也懒得写文档,一方面是逻辑复杂了,不好捋顺,另一方面,写到后面,自己都不敢去理顺自己的系统逻辑了。这种开发模式很多,真实存在。大家一开始是觉得,先做出来再写文档都好,最后写完后,文档是没法写的。只想着赶紧上线赶紧撤,能用就行了,哪管那么多。另外的普遍的借口就是,项目催的紧,没有时间写文档。
3.数据存储
    在设计后台逻辑的时候,自然我们需要存储数据。数据是系统的灵活。一般我们会将数据存储到数据库里,也可能是在文件里,也可能是在内存里。反正不管什么形式,数据总归是要存储的。那么存储数据的格式以及对数据的操作就是数据存储这一层面需要解决的。

    以上三个部分是缺一不可的。我不在这里说每一部分应该如何去做。相信各有各的理解和做法。我先是将这三个部分做了一个初步的解释。下面才是重点。
    现在已经知道了这三个部分是核心,那么我们应该如何着手去开发呢?先做前端?先做数据存储?先做后台逻辑?
    先做需求分析!进而再做数据存储。然后做前端交互,最后才是后台逻辑。这是我的工作模式。为什么这样呢?我来说说我的想法。
    需求分析,自然是必须第一个做的。没有需求分析,你都不清楚你要做什么。做开发切忌不要脚踩西瓜皮。说不定走到一个程度就走不下去了。我见过开发一个大项目,不去研究需求,一顿开发,最后客户说不行,最后全部推倒重来。这是我第一年工作时项目经理干的事,他负责开发,也负责我们开发部。因为觉得压力大,最后懒得管客户,最后还是败给了自己。那是多么痛的领悟呀。
    有了需求就仔细分析,对需求进行分类,然后进行建模。建模不需要好专业,用什么UML。你只需要画好功能模块,分好层次即可。当然,如果能够专业,也不是坏事。建模之后,就可以设计数据存储了。我们需要将建模的信息转化到数据存储中。而在数据存储时我们需要通过每一个数据的定义反映出业务的功能支持。你可能只看到一个字段,就可以想到整个功能要大概怎么走。建模其实就帮你做了很多事了。
    当然,做好数据存储并不是一蹴而就的事情。在设计数据存储的时候,每一个数据定义,都决定了一个功能的走向。比如,你增加一个微信的openid,则表明你可以支持微信登录一样。所以在定义数据存储的时候,其实也就在深层次的思考架构的逻辑。所以,设计数据存储是非常难的,难就难在要预先想到所有的功能逻辑,而不只是定义几个简单的数据能用就行。往往在定义一个字段,大脑就跟跑马灯一样转了一大圈,才知道这个定义是否合适,设计的合不合理。
    当数据存储设计好了之后,我们不是急着去写后台逻辑,也不是去写前端交互。因为我们需要对数据存储设计的合理性进行验证。那么如何验证就是问题的关键!
    验证数据存储设计的是否合理,关键就在于业务的流程。业务流程不是用户使用的过程,而是由用户使用流程开始,牵涉到后台逻辑,直到数据存储逻辑,而引发的一整串的流程大融汇。这个过程无疑就是系统的主动脉。我们大量的时间就在于这个主动脉的构建,调整和优化。主动脉的设计,也在不断的检验数据存储,还进一步引导设计后台逻辑与前端交互。更多的是,主动脉会将所有部分都串联在一起,让所有的部分配合着工作,从而形成一个系统框架。
    当主动脉设计完毕之后,在设计层面上就可以将整个业务系统打通。设计上的问题,要出现就在这个阶段出现。所以要反复的推敲,直到基本上找不到基本的问题,就差不多了。当然,设计的问题,很多的时候还是在实践中不断显现的。所以也不必太在意于要做一个绝对完美的系统,而大量的纠结于系统的检测。如果时间允许,当然多一点检测为好。
    有了主动脉的基础,在做后台逻辑和前端交互,也就有了明确的大方向。主动脉就是系统的框架。而框架的建立是从数据存储和业务核心逻辑流程构建起来的,而不是突然从天而降式的产生。
    而现实中很多人设计,其实往往忽略了主动脉的设计,从数据存储、后台逻辑再到前端交互,一口气做下来,中间慢慢做慢慢改,最后做到变样,离当初的设想十万八千里,而且做完之后,系统复杂到自己都不敢轻易改动了。此时更别想着写什么文档了。而我们在做完数据存储设计之后,就着手设计系统的框架,自然也就会自觉的形成设计图。因为系统是很复杂的,不画图根本就想不清楚,所以自然的就形成了不少思路图。思路图越画越清楚,最后就是实际的框架图了。而框架图不仅含有框架本身的架构,还含有业务系统的核心。这样做下来,是按照设计好的框架结构的基础上按部就班的做完的,可以很好的保证整体性,而不是最后做了一个丑八怪出来。自然系统就会考虑到更多的扩展性、便利性和稳定性等等。这样的开发才算得上是规范的开发。
    当然,开发并没有固定的套路,以上只是我个人的开发的经验,分享给大家。
文章来源:C++技术网原创文章版权为网站和作者共同所有,会员文章禁止转载。非会员文章转载做好本文超链接即表示授权转载。通过文章下面的分享按钮可以自由分享所有文章。

返回顶部

在线提问
问题标题:
问题描述:(简陋的描述会导致问题被最后回答、没有针对性回答甚至无法解答。请确保问题描述的足够清楚。)