《架构之美》阅读笔记四

书中提到了ruby on rails,所以百度了下,介绍如下:

    题外话:Ruby on rails 它是一种可以使你开发,部署和维护的WEB应用程序变得简单的框架,以简化web开发为目标,它简洁,易懂,框架里的配置文件较少,它遵循了简单由于配置的原则,它使用的是实时映射和元编程语言,有内建的生成器,使得程序员无需关心一些脚本模板的细节,而更注重与系统的逻辑结构。

    在谈论架构的时候,人们总是将其与建筑联系起来,这样理解架构的时候会更通俗易懂一些,它们都是根据一定的需求进行设计。《架构之美》中强调了表达的“简洁性”——Don't repeat yourself,而美的核心在于概念的完整性(一组抽象和规则)。好的架构就能很好的展示架构的完整性,它能利用这些规则来减少系统的复杂性,指导详细设计和系统的验证。

   在设计架构的时候,常见的系统的关注点:

功能性:产品向它的用户提供哪些功能?

可变性:软件将来可能需要哪些改变?

性能:产品将达到怎样的性能?

容量:多少用户可以并发使用该系统?该系统将为用户保存多少数据?

生态系统:在不是的生态环境中,该系统将于其他系统进行哪些交互?

模块化:如何将编写软件的任务分解为工作指派?特别是这些模块可以独立的开发,并能准确而容易的满足彼此的需要。

可构建性:如何将软件构建成一组组件,并能够独立实现和验证这些组件?哪些组件应该复用?

产品化:如果产品将以集中变体的形式存在,如何开发一个产品线,并利用这些变体的共性?产品线中的产品以怎样的步骤开发等等。

书中介绍了什么样的的架构才算是美丽的架构,美丽的架构在开始时,要关注其实用性,好的架构应该是每天被很多人使用的;使用架构之前,我们还要考虑它必须要能够被构建(可构建性);接下来就是关注架构的可持久性,好的架构应该能够经得起时间的考验,能够考虑到未来的变更,允许期望的修改;最后,要寻找一些能让人高兴的架构(开发人员、测试人员、用户等),这就要求架构必须满足概念完整性,这样的架构才易懂,易用,才会做到简单而又不过于简单。几个比较常见的美丽架构的例子有:A-7E舰载飞行处理器的架构;朗讯5ESS电话交换机软件架构;万维网;UNIX系统。

转载于:https://www.cnblogs.com/liguoshuai/p/6411237.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/269989.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker基础:Docker 常用命令梳理

目录 1、Docker环境信息命令 2、镜像仓库命令 3、本地镜像管理命令 4、容器生命周期管理命令

Docker基础:Docker可视化面板portainer介绍

今天给大家分享Docker可视化面板portainer工具介绍,希望对大家能有所帮助! 1、什么是portainer? Portainer是Docker的图形化管理WEB工具,由GO语言编写的,提供状态显示、应用模板快速部署、对于Docker(容器、镜像、网络、数据卷)的基本操作、日志显示、容器控制台等功能。…

时间复杂度与O(1), O(n), O(logn), O(nlogn) 的区别

在描述算法复杂度时,经常用到O ( 1 ) , O ( n ) , O ( l o g n ) , O ( n l o g n ) O(1), O(n), O(logn), O(nlogn)O(1),O(n),O(logn),O(nlogn)来表示对应复杂度程度, 不过目前大家默认也通过这几个方式表示空间复杂度 。 那么,O ( 1 ) , O ( n ) , O …

Win10技巧:Win10任务管理器知识介绍

Win10操作系统的任务管理器应该是大家比较熟悉的软件,尤其是在你的电脑卡掉的时候,不得不打开任务管理器,结束掉进程卡死的进程,然后电脑就可以恢复正常使用,任务管理器作为Windows操作系统上一款使用频率非常高的软件…

git保护--git分支创建

因为机缘巧合,我接手了一个项目,阴差阳错的,我竟然又成了这个项目的半个负责人。而这个项目呢,由我们团队和别的团队一起合作,这就遇到一个问题了,我们的核心技术在上传到项目中的时候就会暴露给别的团队了…

什么是局部性原理?

什么是局部性原理? 局部性原理的逻辑是这样的: 内存读写块,磁盘读写慢,而且慢很多; 磁盘预读:磁盘读写并不是按需读取,而是按页预读,一次会读一页的数据,每次加载更多的…

哈希(hash)比树(tree)更快,索引结构为什么要设计成树型?

加速查找速度的数据结构,常见的有两类: 哈希,例如HashMap,查询/插入/修改/删除的平均时间复杂度都是O(1); 树,例如平衡二叉搜索树,查询/插入/修改/删除的平均时间复杂度都是O(lg(n))&#xff1…

安装Oracle数据库操作步骤

第一步: 第二步: 第三步: 第四步: 第五步:输入密码 第六步:继续 第七步: 第八步:进入主页后 第九步:登录进去后是这样子 第十步: 第十一步: 第十二…

电脑软件:推荐几款常用的浏览器

目录 1、微软官方的Edge浏览器 2、谷歌浏览器 3、华为浏览器 4、火狐浏览器 5、360极速浏览器 不知道大家在使用浏览器过程中,有没有遇到弹出窗口、各种广告、还有各种游戏推荐的情况?有的浏览器在安装的时候甚至还捆绑了其他软件。别着急&#xff…

OSI网络七层模型

OSI网络七层模型 在说RPC和HTTP的区别之前,我觉的有必要了解一下OSI的七层网络结构模型(虽然实际应用中基本上都是五层),它可以分为以下几层:(从上到下) 第一层:应用层。定义了用于…

TCP 的有限状态机

TCP 有限状态机的图中每一个方框都是 TCP 可能具有的状态。 每个方框中的大写英文字符串是 TCP 标准所使用的 TCP 连接状态名。 状态之间的箭头表示可能发生的状态变迁。 箭头旁边的字,表明引起这种变迁的原因,或表明发生状态变迁后又出现什么动作。 图…

数据库技巧:整理SQLServer非常实用的脚本

今天给大家分享自己在工作当中用到的SQLServer一些常用的脚本,希望能对大家有所帮助! 1、 查询数据库所有表结构 通过该脚本可以快速查找表字段,或者生成数据库设计文档、进行数据库对比。 SELECT obj.name 表名, col.colorder AS 序号 , co…

运维:Centos8安装supervisor守护Nginx进程笔记

目录 supervisor介绍 1.1 简介 1.2 工作原理 1.3 运行环境 1.4 supervisor 组成 2、

字节流与字符流的区别详解

字节流与字符流的区别详解 先来看一下流的概念: 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成。 程序中的输入输出都是以…

HTTPS与HTTP的一些区别

HTTPS与HTTP的一些区别 HTTPS协议需要到CA申请证书,一般免费证书很少,需要交费。HTTP协议运行在TCP之上,所有传输的内容都是明文,HTTPS运行在SSL/TLS之上,SSL/TLS运行在TCP之上,所有传输的内容都经过加密的…

Docker知识:数据卷技术介绍

目录 Docker数据管理 1.2 Docker数据持久化 1.2 容器中数据管理的方式 2、数据卷的介绍 2.1 数据卷作用 2.2 卷的概念 2.3 数据卷的特点 3、Docker数据卷常见的作用 4、操作数据卷 4.1 常用命令 4.2 挂载数据卷 今天给大家简单聊聊Docker中的数据卷知识。 Docker数据管理 大家在…

Dubbo背景和简介

Dubbo背景和简介 Dubbo开始于电商系统,因此在这里先从电商系统的演变讲起。 单一应用框架(ORM) 当网站流量很小时,只需一个应用,将所有功能如下单支付等都部署在一起,以减少部署节点和成本。 缺点:单一的系统架构&…

2/19 福建四校联考

1.设计图案 给你一个n*m的矩阵&#xff0c;每个格子必须填或者不能填&#xff0c;要用环和1*2的小方块填满它&#xff0c;求方案数。 比如3*2&#xff0c;每个格子都必须填 有6种填法。 n*m<300 当时一看就觉得不可做然后就放弃了..... 题解&#xff1a;有个结论&#xff…

Docker基础:容器元数据详解

目录 1、命令格式 2、用法介绍 2.1 查看IP地址 2.2 查看MAC地址 2.3 查看容器详细信息