公司OA产品到现在发展有3年多了,一直有人在说系统很烂,不稳定,性能差,可用性不好。这些结果的原因是什么呢?
先看下现状,存在的问题:
1、 系统不稳定,偶尔出现无规律的错误,中断类的。分析这些日志,属于底层、难定位的多。(没有引起足够的重视去分析?)
2、 速度慢,在部分子系统中操作时,包含的业务流程太多,要等待很长时间,而且等待过程中没有与用户的交互。
3、 可用性的问题。
做了三年,这三个问题一直存在,没有根本解决。在新系统中也出现这类问题,由此导致形成循环,并且维护成本一路攀升,需要的维护人员越来越多,而且越来越累。
个人分析,主要是架构环节的缺失,缺少对系统的整体约束、规划、前瞻。虽然有架构这个岗位,但没有起到架构的职责和作用。
找了些资料,了解下架构方面的知识。对于我来说,主要想弄清楚以下这些问题:
1、 什么是架构
2、 怎样来进行架构,架构工作包含哪些内容
3、 如何从开发到架构转变
在Simon Brown的文章中提到,架构是一个职责,不是头衔。软件架构师指导团队的架构和设计,通过一个全局的观点、宏观的视角来表达软件系统作为一个整体如何工作。
一个人拥有知识,但是却没有能力清晰的表达自己,这简单地和他没有任何知识一样,所以架构师必须要找到清晰地表达自己想法的方式。
进行架构设计时,要关注如下方面:
1、 管理非功能性需求。如性能、扩展性需求等。
2、 架构定义。将结构、方针、原则和领导力引入技术层面,个人理解为定义软件的主体结构及约束。
3、 技术选型。
4、 架构评估。组织对架构的评审,通过‘测试’保证架构方案的健壮性。
5、 协作。保证与所在环境的集成。
如何体现这些内容?主要是通过一系列的视图实现。如逻辑视图、开发视图、部署视图、场景视图、进程视图、数据视图、实现视图等。结合部门现状,觉得可以采用以下几个视图:
1、 逻辑视图:定义系统功能元素,以及他们的接口,职责,交互。可用于开发组织划分、成本/进度评估的依据。
2、 开发视图:描述系统的层,包等。系统通用服务、类及接口。用于描述系统如何开发实现。
3、 数据视图:系统核心实体及相应的存储方式,系统核心的数据流。
4、 用例视图:概括架构上的重要场景,阐明架构的广度和众多架构元素的运行方式,供设计和开发人员参考。
以前总觉得进行架构设计、写架构文档是件很高深的事情。仔细的分析这几类视图的作用和目的,从现存的问题出发分析,还是很清晰的。从开发到架构,是一个渐进的过程,从小处着手实施架构的工作,积累持续的,跨不同领域的技能、知识和经验,提升个人层次和视角。
分享到:
相关推荐
冲击顶级Python架构师-Python超级全栈架构师开发课程,是一套系统化非常强的Python实战课程,课程数目超过了400多集,课程帮助同学们从零基础开始学习Python基础课程,Python高级进阶课程,Python的进程和线程,数据...
在第二部分的第3章~第7章中,都是以例子来介绍HTTP模块的开发方式的,这里有些接近于“step by step”的学习方式,我在写作这一部分时,会通过循序渐进的方式使读者能够快速上手,同时会穿插着介绍其常见用法的...
但如果希望通过阅读本书的第二、第三两部分,来学习Nginx的模块开发和架构设计 技巧时,则必须了解C语言的基本语法。在阅读本书第三部分时,需要读者对TCP有一个基 本的了解,同时对Linux操作系统也应该有简单的了解...
SSH框架概述,Web开发流行架构,初级学习架构用,仅限于学习用
Java学习零基础到架构师学习路线 适合人群:java开发、java后端开发、架构感兴趣
走过Asp.net学习入门阶段后,真正开始着手开发一个Web项目时,才发现错综复杂的数据与关联根本就不是SqlDataSource和AccessDataSource数据源控件能简单解决的,而恰恰是被忽视了的一个ObjectDataSource数据源控件才...
本资源包含《软件开发架构》这一科目的期末复习资料,主要有选择题、填空题、编程题、简答题、判断题等基础题型的总结,以及本科期间做过的实验及其总结、实验报告等,可以用于期末复习或者正在学习这一科目的朋友...
分享一套Java分布式视频教程——《2022全新版-Java分布式架构设计与开发实战》。2022年7月完结新课,课程一共13章,提供配套的源码下载! 分布式架构是大型项目必用的架构方式,也是云原生、Serverless等新兴技术的...
SoC架构是指System-on-Chip的缩写,即将系统所有组件集成到一个芯片上。SoC架构的设计需要考虑到多个方面,包括CPU、总线、系统控制模块、存储器、输入/输出接口等。 CPU是SoC架构的核心组件,负责执行指令和处理...
描述了整个插件系统的开发架构,是一个很好的学习资料。
从入门到项目实战,涵盖了开发环境搭建、JDK安装与配置、MyEclipse的安装与使用、第一个Java类的编写、MyBatis技术入门、传统JDBC开发模式的缺陷、MyBatis的介绍、MyBatis整体架构等内容。 开发环境搭建 在开始...
Nginx 模块开发领域里比较重要的学习书籍,深度还原 Nginx 设计思想,透彻解析 Nginx 架构。 包含15、16章变量和slab共享内存部分
真正意义上CTO级、创业级游戏开发实战课程,掌握其中的技术精髓可以帮助同学们增长项目经验。课程在教学过程中将技术案例分为了4个大的阶段进行分解教学,依次渐进的进行学习指导。课程内容包含了项目介绍部分,对...
本人是一个IT开发爱好者,从事Android的开发工作。热爱学习新技术。若您也有共同的兴趣爱好,欢迎你加入QQ技术群让我们共同发现新技术。 【GitHub】https://github.com/xiaole0310 【csdn博客】...
Struts+Hibernate+Spring
java的学习资料JavaEE环境下各类开发架构简介JavaEE环境下各类开发架构简介JavaEE环境JavaEE环境下各类开发架构简介下各类开发架构简介JavaEE环境下各类开发架构简介
重点讲解企业级架构开发技术,由浅入深地学习各项知识。全书共分9章,主要讲解ASP.NET基础、Web窗体技术与用户界面设计、数据访问层与业务逻辑层实现技术、数据控件与视图层实现技术、应用其他常用技术完善系统、ASP...
在上册中读者会学习到微服务架构所需的开发技能,包括使用SpringBoot搭建微服务开发框架,使用Node.js搭建微服务网关,使用ZoKee实现微服务注册与发现,使用Docker封装微服务,使用Jenkins部署微服务。通过阅读上册...
NXOpenUG二次开发架构PPT教案学习.pptx
适合入门学习的三层架构例子_aspx开发教程