进行软件架构设计的益处

进行软件架构设计的益处,第1张

一般来说,软件架构设计是降低成本,改进质量,按时交付产品和按需交付产品的关键因素。在这篇文章中,我将会把讨论的焦点放在实现这些目标所能带来的好处上面。作为一个构架师,证明我们的存在是没有任何意义的。这个部分将会提供一些方法,这些方法对于把处理架构设计作为一个软件开发过程的关键部分是很有用处的。

架构设计能够满足系统的品质

系统的功能性是软件构架师通过组成体系架构的多种元素之间的交互作用来支持的。然而,架构设计的一个关键特性是,系统的品质是通过某些手段来实现的。软件的品质,例如性能,安全性和可维护性等,它们在缺少统一的架构设计视图时是无法实现的,因为这些品质并不是被限制在一个单一的架构设计元素中,而是渗透在整个架构设计体系中的。例如,为了满足性能要求,可能需要考虑体系架构中的每一个组件的实现时间,同时还要考虑各组件之间通讯所花费的时间。同样地,为了满足安全性要求,可能需要考虑两个组件之间自然的通讯,并且要在需要的特定的地方引入安全性提示组件。所有的这些关系都属于体系架构,在上面的例子中,这些关系包括组件自身的和组件之间的。来源:>

Office Visio 是office软件系列中的负责绘制流程图和示意图的软件,是一款便于IT和商务人员就复杂信息、系统和流程进行可视化处理、分析和交流的软件。

2、ProcessOn

是一款网页版的在线作图工具,优点是无需下载安装、破解这些破事,同时支持在线协作,可以多人同时对一个文件协作编辑,而且上手比较容易,它提供很多流程图模版,可以方便的画出流程图、思维导图、原型图、UML图。

3、OmniGraffle

OmniGraffle可以用来绘制图表,流程图,组织结构图以及插图,也可以用来组织头脑中思考的信息,组织头脑风暴的结果,绘制心智图,作为样式管理器,或设计网页或PDF文档的原型。只能于运行在Mac OS X和iPad平台之上。

4、亿图

是一款基于矢量的绘图工具,包含大量的事例库和模板库。可以很方便的绘制各种专业的业务流程图、组织结构图、商业图表、程序流程图、数据流程图、工程管理图、软件设计图、网络拓扑图等等。

5、Axure RP

Axure RP是美国Axure Software Solution公司旗舰产品,是一个专业的快速原型设计工具,让负责定义需求和规格、设计功能和界面的专家能够快速创建应用软件或Web网站的线框图、流程图、原型和规格说明文档。

在企业中,整个的开发的过程,从头到尾,大致可以分成五个大的阶段,分别是需求,设计,编码,测试,交付这五个阶段,这当中,位于软件公司内部管理的过程,详细划分又可以分为7步,如下所列:

相关系统分析员向用户初步了解需求,然后用WORD列出要开发的系统的大功能模块,每个大功能模块有哪些小功能模块,对于有些需求比较明确相关的界面时,在这一步里面可以初步定义好少量的界面。

系统分析员深入了解和分析需求,根据自己的经验和需求用WORD或相关的工具再做出一份文档系统的功能需求文档。这次的文档会清楚利用系统大致的大功能模块,大功能模块有哪些小功能模块,并且还列出相关的界面和界面功能。

开发者需要对软件系统进行概要设计,即系统设计。概要设计需要对软件系统的设计进行考虑,包括系统的基本处理流程、系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等,为软件的详细设计提供基础。

在概要设计的基础上,开发者需要进行软件系统的详细设计。在详细设计中,描述实现具体模块所涉及到的主要算法、数据结构、类的层次结构及调用关系,需要说明软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,以便进行编码和测试。

程序员日常开发工作,基本是上离不开阅读文档,这也是很多程序员喜欢两个显示器的原因。

项目方面

技术方面

是不是很多人都认为,如果在开发过程中,还要不断地翻技术文档,说明他的开发能力不扎实。其实不是这样的。

首先IT行业技术升级换代的速度太快,当我们大多数公司还在用Java8的时候,Java11都已经出来了。如果非得要程序员熟知每一个类、每一个方法,是很不现实的。

很多时候我们只需要了解有这么一个东西,作用是干什么的,具体的细节可以在用的时候再去翻文档,比如方法名字是什么?参数有几个,都是什么类型的?

所以我们都习惯至少两个电脑屏幕,一个屏幕写代码,一个屏幕看文档;如果豪一些的话,再加一个屏幕展示日志信息。

看文档的屏幕要买竖屏!

我们团队

我这几年也带过几个团队,对于每个团队成员,我对他们的要求是:实现需求的前提下,最好能对所用的技术有一定的了解,千万不要从网上抄过来一段代码就用,这样是很危险的行为。所以鼓励大家多找一些资料,最好是阅读框架的官方文档。

现在的团队,我已经这样要求了:代码写累了,或者觉得自己没有状态写代码,可以找点儿自己有兴趣的技术文档学习学习,这个技术甚至是可以跟现在的项目没有关系的。

首先,我不是程序员,我是一个设计工作者,不过我来说一下我的观点:很多人以为程序员像**里的一样,啪啪啪几下键盘,屏幕数据飕飕的变,其实真实情况是程序员写代码就像学生写作文,也会遇到不会的词语跟修辞手法,那这个时候就要停下来想一想,查一查,看看例子是怎样写的怎样用的,写错了还要划掉(删掉)再来,至于这个大量不大量看的情况,如果这个是个新手,那肯定是可以的,那如果是个老手,还需要大量时间查说明文档,那就说明这个项目肯定不会小,不是一两天能做完的,那一个用月做单位的项目,用一个天做单位的时间来查文档,不过分吧!程序员也是人,不是因为他的工作高端,就觉得这个人万能,他也会当机,要吃饭,要休息,也会忘记一些东西,所以请各位多多体谅,能一起工作实属不易,感恩2018,谢谢。

这个问题怎么说呢,开发过程中会遇到各种各样的问题,没有一个人是全能的,也没有人可以绝对的说自己在整个项目中不会遇到一点问题,不去查东西,自己大脑里的东西完全可以让我把这个项目测测底底的做完,并且没有任何bug。

上班的时间,也没有老板或者谁在后面一直看着你去做东西,大家都挺忙。文档是干嘛的,文档本身就是用来看的,甚至很多项目开始之前,总监都会让你去搜集一些这个项目可能会遇到的bug,可能会用到的效果,尽量在之前找到比较好用的插件,这样会节省很多时间,自己如果写代码的话不可能百分百的确定没有人和bug,但插件不一样很多插件都是前辈通过很长时间慢慢完善出来的插件,所以很多人才会用。所以你提问的可以肯定的回答你允许。

说个我遇到的2个真事吧,

第一个,公司找的外包公司写项目程序,已经要交付了,发现有几个功能没做,产品经理和开发那边都找我,我一个搞运维的又不懂,只能让他们去对开发文档,我也就顺便看了看,开发文档中明确的写明怎么做,然后就让他们就重新按开发文档继续写,

另一个,由于 历史 原因业务系统处于托管状态,只有部分参考文档可用,开发那边只能按当前已有文档进行开发参考,开发那边也一直在根据现有相关文档进行开发,杯具的是这帮子不仔细看,有问题总想着我能直接给他们答案,我也只是会用而已,开发我还真搞不来,然后和他们一起看开发文档,加密算法部分给她们指出后,问题解决了。

所以我觉得,开发团队在开发中很有必要阅读开发文档,这可以避免绕圈子,也会清楚开发文档中提供的内容。

程序员上班的主要工作就是看说明文档,根据说明文档编码。如果实在没有说明文档,有时还得亲自披挂上阵写说明文档。

写接口的有API文档,写通讯协议的有协议字段说明文档,写数据库的有数据库规范文档,

总之任何一个大公司文档扮演的一个至关重要的问题,因为形不成文档,公司管理就会陷入混乱不堪的局面,当某个核心员工离职后,下一个接盘的程序员会丈二和尚摸不着头脑,一头雾水,边填坑边骂娘,有了文档就可以看文档结合代码,了解其中模块逻辑以及结构,包括哪些坑不能踩等等好处。有些公司会专门有文档工程师这个职位来专门负责整理各种文档,并且保存在服务器上。

好的文档都是程序员等人智慧的结晶,是一盏指路明灯,是一条通往光明的道路。程序员不能看说明文档等于在黑暗里摸爬滚打,有了说明文档才迎来了黎明的曙光。

先说观点,我认为看文档没什么问题,但是“大量”这个程度很难衡量,按照需要看文档是个非常重要的事情。

需要花费时间的情况 不需要花费大量时间的情况 小结

在工作中阅读文档其实也是工作内容的一部分,而且现在大多数互联网公司都靠KPI进行考核,平时就算你把时间都用来看文档没关系,最后KPI没完成一样会被公司淘汰。所以公司不会阻拦你花费时间看文档,最多你老板会提醒你浪费这么多时间看文档而没有实际的产出会对你年终考核造成影响罢了。

题主对文档的定义不是很明确

第一个是需求说明文档

这个是在开发过程中必不可少的文档,只有清楚了开发需求,程序员高效率的开发,程序员一天的工作时间并不是都是在写代码,而是在看文档,了解需求,理清思路,只有什么都清楚了,写代码或许只要十几分钟。

再者对于一个项目新人来说不看文档了解需求,没人给你从头到尾的在讲一遍需求,你不看文档自己发挥?进入项目是和别人共同开发,你不肯能不顾及之前的代码规范。

第二个是开发文档

就拿微信开发来说,微信开发不是每个程序员必须会的东西,但是用到了怎么办,还不是去看他们的开发文档,只有将开发文档思路理清楚了,才可以进行下一步开发。

第三个是API文档

在前后端分离的开发模式中API文档是必不可少的文档。不看API不知道数据是什么样。也就是不可能顺利的和后端进行结合。

兄dei,假设你是程序员,你在写程序时,旁边会有人守着你吗?

假设你不是程序员,你在做本职工作时,旁边会有人守着你看你怎么做事吗?

答案肯定是没有的。谁会闲着招个人去监督你,看你用什么方式去完成给你的任务。

现在不管是大公司还是小公司,没有人会在意你怎么去完成你的工作,给你的任务,在很多时候,大家只关注结果。如果说有干预,最多只是实现的方式。像写程序,假设有个功能是即时通讯相关的,这种自己写需要的时间成本投入较高,那么很多公司就会选择采用市面上比较稳定的第三方平台。这算一种实现方式的干预。但是在接入的过程中,不会有人去管你是通过阅读第三方SDK文档,还是谷歌搜出来的,最后能达到预期效果就ok了

所以,其实你看不看大量文档,没有人会在乎,关键是你自己,建议自己写东西时,不要一味的复制粘贴,要有自己的想法。太依赖文档对于自己成长很不利

当然允许看文档。

要知道,随便哪个类库,都有无数的类和方法,每个方法又有若干参数,鬼知道它们都是什么意思,谁的脑子能记得那么多内容。别说是人家提供的类库,就是自己写的代码,过一段时间也不记得什么意思了。没有注释和文档,怎么看懂代码?

如果没有需求分析文档,程序员怎么理解正在开发的这个软件的基本业务流程?

如果没有架构设计文档,程序员怎么理解软件各个功能模块之间的功能与业务逻辑?

如果没有接口文档,那么多类和方法,都怎么调用,会返回什么值,难道靠猜?

……

在日常开发工作中,不仅允许看文档,还会强迫你写文档。如果你写的文档别人看不懂,别怪领导骂你不认真。文档对于软件开发的重要性是不言而喻的。

还有一个秘密告诉你,那些经常写文档的程序员,要比不写文档的程序员工资更高。

真的!!!

迎娶白富美,从会写文档开始!

毫无疑问是的。

对于程序员来说,在实际工作中进行代码编写和项目开发时,是离不开各种各样的文档的。文档包括:

不允许看说明文档,这基本上只会出现在面试或者考试中,为了考察程序员自身的编码能力,才要求脱离参考资料,利用自身的知识和技术来完成。

当然了,程序员工作中也不能只看文档,要是花费大量时间通读不必要的文档,工作可就做不完了。

以上就是关于进行软件架构设计的益处全部的内容,包括:进行软件架构设计的益处、用什么工具画 软件架构设计图、企业APP开发流程是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9502691.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存