架构随想

软件架构就是在软件开发领域,实现软件系统目标的一个架构。当一个人新进入一个系统的时候,首先要摸清的就是这个系统的架构,从形式上去理解内容,从分析其部分到综合其整体。

一个软件系统是为了满足特定的功能需求。正如一个组织部门是为了完成一项事业。这都是在成事的层面。背后则是真正的推动力量必然是人, 是利益相关者。在政治上,是领袖,领袖的联盟成员即领袖的班底,各级官僚,老百姓等。在软件系统的利益相关者,用户客户,项目经理,开发、运维。甲方乙方各自是一个系统,又因为一个软件系统联结成为一个共同的系统。

为了解决特定问题,就需要对问题进行建模,模型就是人们在长期的解决问题过程中,形成的经验套路。为了能让甲方满意,就要找到甲方的关注点,即要需求分析,进而成为软件系统的关键约束,达成人之间的契约约束。

架构并不神秘。它是工程学,而非科学。在科学的世界里,对就是对,错就是错,容不得半点妥协;而在工程的领域里,妥协随处可见。所以没有完美的架构,只有合适的架构。两个差别很大的架构,当不给定context时,我们不能说架构A一定优于架构B。

很多软件工程师在一线开发岗位呆了十年八年,却未被贴上架构师的标签,只因为他们还没有找到属于自己的做架构的机会;而那些高高在上,张口闭口modularity,clean architecture,etc. 却一行代码不肯写也不肯读的所谓的『架构师』们,实在不配获此title。

架构的能力是在实战中演练出来的,是逢山开路,遇水搭桥,踏着荆棘一步步写出来的,跟优秀的作家产生的道路几乎一模一样。然而,优秀的作家,即便获得了诺贝尔奖,还一定还会笔耕不辍,自己撰写一部又一部新作品。那么,『架构师』,程序员中的佼佼者,为何就脱离生产线,变成了高高在上的指挥者?

这真是软件公司,尤其是大型软件公司让人绝望的怪状。还好,就像1984 macintash的广告一样,新生代的twitter们在冲击着这个世界。架构和架构师们开始回归其本质:产品和生产它们的程序员。

原文地址:https://www.cnblogs.com/doit8791/p/9485108.html

时间: 2024-10-24 08:05:34

架构随想的相关文章

架构设计分享之权限系统(看图说话)

前面一篇文章<最近架构随想>,我提到架构设计的一些构想,其实也是对之前项目经验的一些归纳及总结.今天我们就以权限系统作为切入点,谈一谈怎么设计权限系统以及怎么做到系统具有以下特性: Organized:如果系统组织比较好,可以起到事半功倍的效果. Encapsulated:对功能,结构,数据进行有效的封装,会使系统维护变得更加容易. Reusable:对常用功能以及组件进行有效的封装,可以使系统变得结构清晰且方便维护. Extensible:在设计系统的时候,如果很好的遵守OO的设计理念(OO

随想:没有完美的架构,有舍有得

在过年的很多年我一直在追求一个完美的架构,系统对第三方组件没有强依赖,可替换.这么多年过去了,我在很多项目中尝试和实现了这个基本理念,具体表现在对IoC,ORM等等的抽象处理.有趣的是我发现不单是我有这种偏好,我发现身边很多工作多年的高级开发人员也同样有这种偏好.几年前在Travix开发API的时候,当时的某个架构师同样对IoC进行了抽象处理,实现了Unity,过去的很多年我对这种实现一直是站在赞同的一边.Umbraco V5中也同样看到了这个实现让我欣慰 :).但慢慢的我发现有时不必要的抽象会

架构(Architecture)随想

架构(Architecture)的意义: 先不要看什么是架构,先看下architect是什么,没有错,它是建筑师,在一块空地上build高楼大厦的人,它是一个designer,设计好整个大楼,也是一个superviser,监督好整个项目不偏离设计.切换到computing的小宇宙,它就是架构设计者,设计出整个软件的主体结构,同时确保整个软件项目按照设计完成.略有不同的是,一个大楼更倾向于静态的设计,可以用结构力学和数学公式解决:而computing的世界是动态的世界,是一个充满了communic

企业架构,业务架构,数据架构

我们将核心价值链上的端到端总结为两个核心,其一是供应链的端到端流程和业务:其二是产品研发的端到端和业务.各个企业由于类型不同往往对两条价值链各有 侧重.生产代工类企业没有自己的产品研发,那么只有供应链:高科技研发企业可以做到卖产品核心技术和专利,不做具体供应链方面事情.而更多的生产制造型企 业往往是1和2两者的一个有机结合. 再谈企业架构和业务架构: 企业架构本身强调的是业务驱动IT,业务和IT的匹配和融合而不是两张皮,在这里可以看到核心我们关注的点包括流程,活动,数据,组织,资源五个方面的内容

[QCon] Scrum阅读随想

最近从群里面下载到几篇文章,看到QCon出来的相关文章,觉得都写的很不错,都是一些个大公司的非常好的方法   QCon:是为团队领导者.架构师.项目经理和高级软件开发人员量身打造的企业软件开发大会,其所覆盖的主题内容与InfoQ网站相同,关注架构与设计.真实案例分析等等.   个人感觉,看过几篇文章之后 ,发现讲解的诸多内容确实是业界比较先进的案例而且是很真实的案例.   回到正题,用这篇文章来记录一下,Autodesk的scrum之路: 第一阶段:Form Teams,形成team阶段,这个阶

hibernate随想

//学习hibernate的随想   无关细节  整体架构的感悟     不定时持续更新 1.hibernate的优点之一:对于简单.基础的操作相当于代码自动生成器.经常使用到的数据库操作都是简单,基础的,麻烦的只是把属性和值给对应起来,而hibernate以类为操作单位,而类的成员结构是固定的,所以设定好对应关系,便可对应,从而自动生成sql语句. 2.hibernate的一对多符合人的逻辑,对于使用者,创建一,把多填充进去人之常理,却不知背后其实是两张表,那 多 是级联填充入数据库的.而多对

微服务随想

微服务随想 Intro 在如今微服务的思想和架构流行的今天,以及结合最近在公司实施的微服务化,想谈谈自己对微服务的理解及看法,可能并不太对,如果你觉得哪些有问题,欢迎指出,一起探讨学习. 下面我将从微服务的三个层面去探讨 什么是微服务(What) 为什么要微服务(Why) 微服务化怎么实施(How) 什么是微服务 在介绍微服务时,首先得先理解什么是微服务,顾名思义,微服务得从两个方面去理解,什么是"微".什么是"服务", 微 狭义来讲就是体积小.著名的"2

下载-深入浅出Netty源码剖析、Netty实战高性能分布式RPC、NIO+Netty5各种RPC架构实战演练三部曲视频教程

下载-深入浅出Netty源码剖析.Netty实战高性能分布式RPC.NIO+Netty5各种RPC架构实战演练三部曲视频教程 第一部分:入浅出Netty源码剖析 第二部分:Netty实战高性能分布式RPC 第三部分:NIO+Netty5各种RPC架构实战演练

sqlserver 全库查询 带架构

网上现有的全库查询,无法识别自定义架构的数据库结构: declare @str nvarchar(10) declare @tablename varchar(50) declare @colname varchar(50) declare @counts int declare @sql nvarchar(2000)--以上定义变量 declare cur1 cursor for select a.name tablename,B.name colname from sys.objects a