软件架构指南188比分直播网 坚持原创

当软件行业的人谈论“架构”时,他们指的是危险地定义了软件系统内部设计中最重要方面的危险。188比分直播网 坚持原创良好的架构很重188比分直播网 坚持原创要,否则将来增加了新功能越来越慢。

与软件世界中的许多人一样,我长期以来一直对“架构”一词,因为它通常表明与编程和不健康的熟悉剂量的分离。188比分直播网 坚持原创但是,我通过强调良好的建筑是支持自己的进化的东西,解决了我的担忧,并且与编程深入交织在一起。188比分直播网 坚持原创我的大多数职业生涯都围绕着良好建筑的问题看起来像,团队如何创造它,以及如何最好地培养我们的发展组织的建筑思考。188比分直播网 坚持原创此页面概述了我对软件体系结构的看法,并指出您在此站点上的更多材料。188比分直播网 坚持原创

Martinfowler.com关于软件架构的材料指南。188比分直播网 坚持原创

建筑是什么?188比分直播网 坚持原创

软件世界的人们长期以来争论了建筑的定义。188比分直播网 坚持原创对于一些东西,这是一个系统的基本组织,或者最高级别分量在一起的方式。我对此的思考是塑造的与拉尔夫约翰逊的电子邮件交换据质疑这条措辞,争论没有客观的方式来定义基本或高水平,更好的建筑观点188比分直播网 坚持原创共享理解,专家开发人员拥有系统设计。

拉尔夫·约翰逊在QCon上说

架构定义的第二种常见风格是,它是“需要在项目早期做出的设计决策”,但是Ralph188比分直播网 坚持原创对此也有抱怨,说它更像您希望您可以在项目早期到达的决定

他的结论是“188比分直播网 坚持原创建筑是关于重要的东西。不管那是“。首先腮红,听起来很陈旧,但我发现它带来了很多丰富性。这意味着思维的核心关于软件的思维是决定什么是重要的,(即是什么是架构),然后节约能源保持这些建筑元素状况良好。对于开发人员成为架构师,他们需要能够识别重要的元素,识别哪些元素可能导致严重问题,如果它们不受控制。

拉尔夫的电子邮件形成了核心我的IEEE软件的专栏,讨论了软件体系结构的意义和架构师的角色。188比分直播网 坚持原创

为什么建筑物质?188比分直播网 坚持原创

188比分直播网 坚持原创架构是软件产品的客户和用户的棘手主题 - 因为它不是他们立即感知的东西。但是,一个糟糕的建筑是188比分直播网 坚持原创Cruft的主要贡献者 - 妨碍开发人员理解软件的能力的软件的增长。包含很多Cruft的软件更难修饰y,导致特征慢慢地到达,更缺陷。

这种情况与我们通常的经验相反。我们习惯于把“高质量”的东西当作价格更高的东西。对于软件的某些方面,比如用户体验,这可能是正确的。但是当涉及到架构和内部质量的其他方面时,这种关系就188比分直播网 坚持原创颠倒了。高内部质量导致新功能的速度更快,因为越来越少的Cruft来妨碍。

虽然我们确实可以牺牲质量来换取短期内更快的交付,但是在cruft的构建产生影响之前,人们低估了cruft导致整体交付变慢的速度。虽然这并不是可以客观衡量的东西,但经验丰富的开发者认为注意内部质量在几周内没有几个月的报酬。

阅读更多…

在2015年在奥斯康,我给了一个简要说话(14分钟)关于什么架构是什么以及188比分直播网 坚持原创它为什么重要。


应用架构188比分直播网 坚持原创

软件开发中的重要决策因我们正在考虑的背景的规模而异。188比分直播完整手机版共同规模是应用程序,因此“应用程序架构”。188比分直播网 坚持原创

定义应用程序架构的第一个问题是应用程序的内容没有明确的定义。188比分直播网 坚持原创我的观点是申请是一个社会建筑

这种松散的定义导致了应用程序的许多潜在规模,从开发团队中的几个人到几百人不等。(你会注意到,我把规模看成是涉及的人数,我觉得这是衡量此类事情最有用的方法。)这和企业架构之间的关键区别在于围绕社会构建有一个重要的统一目的。188比分直播网 坚持原创

申请边界

软件开发的未定问题之一决定了一块软件的界限。188比分直播完整手机版(是操作系统的浏览器部分?)许多服务导向架构的支持者认为应用程序正在消失 - 因此未来的企业软件开发将是关于组装服务的组装。188比分直播完整手机版188比分直播网 坚持原创

我认为应用程序不会出于相同的原因消失,为什么应用边界很难绘制。本质上应用程序是社会结构

118bet官网

微服务架构模式是一种开发单个应用程序作为小型服务套件的方法,每个应用程序都在自己的过程中运行并与轻量级机制进行通信,通常是HTTP资源API。这些服务围绕业务功能构建,并通过全自动部署机械独立部署。这些服务的集中管理最少,可以用不同的编程语言编写并使用不同的数据存储技术。虽然他们的优势在过去几年中使它们变得非常时尚,但它们随着分布而越来越多的成本,削弱了一致性,需要在运营管理中成熟。

无服务器架构188比分直播网 坚持原创

无服务器架构是将第三方188比分直播网 坚持原创“作为服务”(BAAS)服务的应用程序设计,和/或包括在“函数”(FAAS)平台上的管理,短暂容器中运行的自定义代码。通过使用这些想法和与单页应用程序的相关的想法,这种体系结构删除了对传统的始终上的服务器组件的大部分需要。188比分直播网 坚持原创无服务器架构可能会受益188比分直播网 坚持原创于显着降低的运营成本,复杂性和工程交易时间,以依赖供应商依赖性和相对不成熟的支持服务的成本。

微型前端

良好的前端发展很难。缩放前端开发,以便许多团队可以同时在大型和复杂的产品上工作,甚至更难。在本文中,我们将描述最近将前端巨石分为许多更小,更可管理的作品的趋势,以及该架构如何提高在前端代码上工作的团队的效率和效率。188比分直播网 坚持原创除了谈论各种福利和成本之外,我们将介绍可用的一些实现选项,我们将深入深入了解演示技术的完整示例应用程序。

贵架构188比分直播网 坚持原创

在2000年代中期,我一直在从事一些写作项目,这些项目本来可以写成书,但还没有完成。一个是关于用户界面的架构。188比分直播网 坚持原创作为这项工作的一部分,我起草了一个GUI架构如何发展的描述,比较了表单和控件的默认方法与模型-视图-控制器(MVC188比分直播网 坚持原创)模式。MVC是软件世界中最难以理解的模式之一,这是可以理解的,因为它没有很好的文档说明。因此,我在这里的文章试图更好地描述MVC的真正含义,以及它是如何通过模型-视图-演示者和其他形式进化的。

呈现域数据分层

模块化丰富的程序的最常见方式之一是将其分成三层:演示文稿(UI),域逻辑(AKA业务逻辑)和数据访问。因此,您经常会看到Web应用程序分为了一个关于处理HTTP请求和呈现HTML的Web层,该层包含验证和计算的业务逻辑层,以及分类如何在数据库或远程服务中管理持久数据的数据访问层。


企业架构188比分直播网 坚持原创

虽然应用架构专注于某种形式的架构范围188比分直播网 坚持原创内的架构,但企业架构在大型企业中看起来。这样的组织通常太大,无法在任何类型的凝聚力分组中对其所有软件进行分组,因此需要跨越许多码级的团队协调,这些代码库彼此隔离,资金和用户彼此独立运作。

很多企业架构都是关于了解什么值得中央协188比分直播网 坚持原创调的成本,以及这种协调应该采取什么形式。一个极端是中央架构组,它必须批准企业中每个软件系统的所有188比分直播网 坚持原创架构决策。这样的团队减缓了决策制定,并且不能真正理解如此广泛的系统组合中的问题,从而导致糟糕的决策制定。但另一个极端是根本不协调,导致团队重复工作,不同系统无法互操作,以及团队之间缺乏技能开发和交叉学习。

像大多数有敏捷心态的人一样,我更喜欢在权力下放一边犯错,所以将靠近混乱的岩石而不是窒息的控制。但是,在渠道的那一边仍然意味着我们必须避免岩石,以及一种最大化局部决策的方法,这使得最小化所涉及的实际成本。

企业架构师加入团队

企业架构组经常与日复一188比分直播网 坚持原创日的开发分开。这可能导致他们对开发工作的认识过时,开发团队没有从公司范围的角度来看待问题。看到这种情况经常发生后,我的同事(Thoughtworks CTO) Rebecca认为,企业架构金宝搏亚洲体育博彩师通过加入开发团队可以更加有效。

企业架构师在精益企业中的作用

当一个组织接受敏捷心态时,企业架构不会消失,但企业架构师的作用也会发生变化。188比分直播网 坚持原创企业架构师不再做出选择,但帮助他人做出正确的选择,然后辐射该信息。企业架构师仍然需要形成愿景,但随后需要在团队之间建立桥梁来建立学习的社区。这些将允许团队探索新方法并互相学习,并在该增长的合作伙伴中与企业架构师一起探索。

产品超过项目

软件项目是资助和组织软件开发的一种流行方式。188比分直播完整手机版他们将工作组织到临时的、仅构建的团队中,并以业务案例中预测的特定利益为资金。相反,产品模式使用持久的、构思-构建-运行的团队处理持久的业务问题。产品模式允许团队快速地重新定位,减少了他们的端到端周期时间,并允许通过使用短周期的迭代来验证实际利益,同时维护软件的体系结构完整性,以保持他们的长期有效性。

建筑师电梯 - 参观楼层

许多大型组织发现,他们的IT引擎与顶层管理人员隔开了许多楼层,这也将业务和数字战略从执行它的重要工作中分离出来。架构师的主要职责是乘坐顶层公寓和机房之间的电梯,在需要支持这些数字化工作的地方停下来:自动化软件制造,最小化预先决策,并随着技术的发展影响组织。

由Gregor Hohpe

2017年5月24日

阅读更多…

文章

企业架构188比分直播网 坚持原创

使用休息的企业集成

大多数内部REST API是一个用于单一集成点的一次性API目的。在本文中,我将讨论您对非公共API的限制和灵活性,并从多个团队中完成大规模宁静集成的经验教训。