当前位置: 首页 > news >正文

迈若网站建设郑州seo多少钱

迈若网站建设,郑州seo多少钱,如何在网站开发客户,cms是什么系统目录 前言 什么是概念架构 概念架构阶段的3个步骤 初步设计 高层分割 分层式概念服务架构 Layer:逻辑层 Tier: 物理层 按通用性分层 技术堆叠 考虑非功能需求 【禅与计算机程序设计艺术:更多阅读】 前言 胜兵先胜而后求战,败兵先站而后求胜。…

目录

前言

什么是概念架构

概念架构阶段的3个步骤

 初步设计

高层分割

分层式概念服务架构

Layer:逻辑层 

Tier: 物理层

按通用性分层

技术堆叠

考虑非功能需求

【禅与计算机程序设计艺术:更多阅读】


前言

胜兵先胜而后求战,败兵先站而后求胜。 -- 孙子,《孙子兵法 . 形篇》

人们常常使用战术,而忽略了战略。战略要求从大局上把握整个架构与设计......架构错误的代价非常高。 -- Stephane Faroult, 《SQL语言艺术》

架构新手和有经验的架构师的区别之一,在于是否懂得,并能有效的进行概念架构设计作为架构新手,尤其害怕碰到自己没有做过的系统:系统较大时,一点祭出“架构 = 模块 + 接口”的发布却不太奏效,架构新手就往往乱了阵脚。

有经验的架构师不会一上来就关注与如何定义“接口”,他们在大型架构设计的早期,比较注重识别重大需求特色需求高风险需求(抓重点关键问题),据此来设计概念架构。

另外,概念架构设计还是投标及售后工作的有力武器。金牌售前和普通售前的一个重要区别是,能否清晰的讲解概念架构,并借此说明 “客户关系的价值如何实现、担心的问题如何解决”

”Use Case驱动“的观点既有积极意义,也有不利影响。从积极的方面看,Use Case这种需求描述方式确实有助于分析模型,设计模型,实现模型和测试模型的建立.....但是从另一方面看,OOSE对Use Case的依赖程度超出了它的实际能力。 -- 邵伟忠, 《面向对象的系统设计》

顶级设计者在设计中并不是按部就班地采用自顶向下(或自底向上)的方法,而是着眼于权重更大的目标。这些目标通常是难点问题,设计者不能轻易地看出这些问题的解决方案。为了得到整个的设计方案,设计者必须先致力于难点的设计并消除其中的疑惑。 -- Robert L. Glass, 《软件工程的事实与谬误》

概念架构是大型系统架构设计成败的关键。

什么是概念架构

下面是宏伟的金门大桥,这么复杂的架构,桥梁架构师是怎么“开始设计”的呢?

 

答案是:概念架构(Conceptual Architecture)。下图展示了斜拉桥的概念架构示意图。由此图可以看出,概念架构高屋建瓴的给出高层解决方案:索塔负责承重,斜拉索吊起刚性梁。

 

下面,来看看软件行业(来自Dana Bredemeyer等专家)中概念架构的定义:

概念性架构界定系统的高层组件,以及它们之间的关系。概念性架构意在对系统进行适当分解,而不陷入细节。借此,可以与管理人员、市场人员、用户等非技术人员交流架构。概念性架构规定了每个组件的非正规约及架构图,但不涉及接口细节。(The Conceptual Architecture identifies the high-level components of the system, and the relatiooonships among them. Its purpose is to direct attention at an appropriate decomposition of the system without delving into details. Moreover, it proovides a useful vehicle for coommunicating the architecture to non-technical audiences, such as management, marketing, and users. It consists oof the Architecutre Diagram (without interface detail) and an informal component specification for each component.)

根据定义,我们注意到如下几点:

  • 概念架构满足“架构 = 组件 + 交互”的基本定义,只不过概念架构仅关注高层组件(high-level components)。
  • 概念架构对高层组件的“职责”进行笼统的界定(informal specification),并给出了高层组件之间的相互关系(Architecture Diagram)。
  • 概念架构不应涉及接口细节(withouot iinterface detaiil)。

概念架构阶段的3个步骤

概念架构设计分为3个步骤:

  1. 初步设计:基于关键功能,借助鲁棒图进行以发现职责为目的的初步设计。这一步并不总是需要,但对于架构师而言,是“新系统”就必须重视这一步。
  2. 高层分割:对系统这个黑盒子进行高层切分,例如切分复杂系统为多个二级系统,或者直接切分系统为具体子系统。
  3. 考虑非功能需求概念架构 ≠ 理想化架构,所以不仅要考虑功能,也必须考虑非功能。

 初步设计

好的开始是成功的一半。 -- 谚语

所谓鲁棒性分析时这样一种方法: 通过分析用例规约中的事件流,识别出实现用例规定的功能所需要的主要对象及其职责,形成以职责模型为主的初步设计 -- 温昱,《软件架构设计》

Conceptual Architecture阶段包含3个步骤:

  • 第1步,初步设计。
  • 第2步,高层分割。
  • 第3步,考虑非功能需求。

 

高层分割

复杂性是层次化的。 -- Frederick.P.Brooks,《人月神话》

分析与综合是思维方向相反的过程。一部是先分析后综合,没有分析就不能综合;没有综合的分析,也只有片面的分析。 -- 肖纪美,《梳理人、事、物的纠纷:问题分析方法》

“架构 = 模块 + 接口”的做法,其不足可概括为两点。

第一,忽视了多视图。“模块 + 接口”仅是逻辑架构设计视图的核心内容,而软件系统的架构设计还可能涉及开发视图、运行视图、物理视图、数据视图等多方面的考虑。

第二,忽略了概念架构设计。对规模较大的系统而言,都必须先根据重大风险(包含功能方面、质量方面、约束方面),有针对性的制定包括“高层分割”在内的设计决策,然后才是“模块 + 接口”一级的设计。

那么,如何对软件系统进行“高层分割”呢?这属于Conceptual Architecture阶段第2步的工作。

例子:PM系统的高层分割,采用了经典的4层架构方式。

 

分层式概念服务架构

人们常说,“分层式最流行的架构模式”。从字面上理解,这似乎意味着大家所进行的“分层”在思想层面上是一致的。但事实并非如此。在实践中,分层有不同的角度,并且互不矛盾。通常会总结为“3 + 1”流派。

  • Layer:逻辑层
  • Tier:物理层
  • 按通用性分层
  • 技术堆叠

Layer:逻辑层 

逻辑层(Layer)重视职责的划分,职责之间常常是上层使用下层的关系--但是根本不关心上层和下层是否“能分布”在不同机器上。

 

图片来源:Layered Business Architectures: Logical Structures

  • 图中的Services层对下层Domain Model部分的访问,是一种跨机器的远程访问吗?

答案是:不知道,也不关心。整个架构图中的箭头表示的是逻辑上服务使用关系,而对物理角度是否是跨机器的访问方式并不关心。

Layer分层 ≠ 按Tier分层。

  • 图中的User InterfaceServicesDomain ModelPersistent Data是通用性逐渐增加吗?(”通用性越大,所处层次就越靠下“是按通用性分层的常见方式。)

答案是:无法确定那一层更通用。例如,作为最下层的Persistent Data层本来支持硬盘,但后来要支持磁盘阵列,再后来要支持SAN(存储区域网络),这都要求存Persistent Data层要有针对性的进行改变。

Layer分层 ≠ 按通用性分层。

Tier: 物理层

物理层(Tier)指”能分布“在不同机器上的软件单元,不同的物理层之间必须有跨机器访问的能力--可以通过远程调用、或通讯协议等方式。

 

图片来源:Oracle Application Server Containers for J2EE

关于Tier这种分层方式, 最需要强调的是,几层(Tier)架构是看”能分布“的能力,不是看”实际部署情况“。

我们常说的Java EE应该是N-Layer的,因为从逻辑上来看,Java EE里面有表现层、业务逻辑层和数据持久层。从物理上而言,这3层可以在不同的Tier上(表现层在PC上,业务逻辑层在应用服务器上,数据持久层在数据库服务器上),也可以在一个Tier上,比如Martin说过,如果把数据库、应用服务器和浏览器都装在一台电脑上,那么3-layer就在1-tier上了。

这段话问题不小。

毕竟,”N-Tiers架构“的一大好处是可伸缩性--业务量小的时候将NTier都部署在同一台机器上 ,等业务量大的时候再为每个Tier单独安排一台或一组机器,这恰恰是"N-Tiers架构"的目标!所以,一个系统如果架构设计时是”4-Tiers架构“的,并且开发时也实现了这一点,那么把它们部署在同一台机器上并没有改变”4-Tiers架构“。最终,工程师的实际部署方案觉得了系统是几层(Tier)架构,这未免荒唐。

其实,总结出”3级“映射关系(而不是”两级“)就清楚了:

逻辑层Layer -> 物理层Tier -> 一台或一组计算机

关于按Tier分层 ,再看一例:微软的Azure虚拟网络系统,很明确的进行了不同的tier的划分,各层之间必然是能以进行跨机器方式的协议互相通讯的(只不过每个Tier的部署规模比较大罢了)。

图片来源:Azure中具有Apache Cassandra的Linux多層式架構 (N-tier) 應用程式

按通用性分层

严格来讲,按通用性分层是另一种Layer,但是,绝对有必要让它”独立门户“以引起实践者的足够重视。

按通用性分层式只:将通用性不同的部分划归不同的层,以此作为系统的总体切分方式。

一般而言,通用程度越大,所处层次就越靠下。

 

不同,嵌入式系统的分层架构有所不同:通用性最强的层位于中间,硬件相关的部分,以及应用特点部分分布位于下层和上层。

 

这种“中间通用、上下专用”的分层方式对可移植性关键的通信系统、控制系统、软件平台等情况都非常重要。

技术堆叠

技术堆叠不是独立的架构,而是基于分层架构(或其他架构模式)提供的进一步说明。

下面这个两个架构模式都是按Tier分层,并明确了各个技术点。

图片来源:I Love the Java Jive: J2EE for Oracle Technologists

图片来源:Category Archives: Day 15. Understanding J2EE Architecture

另一个例子,基本架构模式是基于通用性分层的,也加入技术堆叠的描述。

图片来源:Java SpringMVC

考虑非功能需求

架构不仅仅是系统功能需求的结果 -- Len Bass, 《软件架构实践(第二版)》

在我们当中,有不少人一厢情愿的认为:只要所开发出的系统完成了用户期待的功能,项目就算成功了,但这并不符合实际。 -- 温昱,《软件架构设计》

《软件架构设计》一书中指出,“其实任何作为复合整体的复杂事物,都有可能有架构,比如一本书”。“非功能目标的考虑”在ADMEMS方法中不是一个阶段,而是一个贯穿环节。

我们接下来讨论的重点是贯穿案例 -- PASS系统概念架构设计的第3步,考虑非功能需求。

概念架构 ≠ 理想化架构

  • 重大需求塑造概念架构。这里的 “重大需求”应涵盖功能需求、质量及约束3类需求中的关键部分
  • 概念架构是一个“架构设计阶段”,必须在细化架构设计阶段之前,针对重大需求、特色需求、高风险需求,形成稳定的高层架构设计成果
  • 如果只考虑“功能需求”来设计概念架构,将导致概念架构沦为“理想化架构”,这个脆弱的架构不久就会面临“大改”的压力,甚至直接导致投标等工作失败。


【禅与计算机程序设计艺术:更多阅读】

  1. 2023,程序员的出路在哪里?_禅与计算机程序设计艺术的博客-CSDN博客_程序员出路
  2. 写给新手程序员的一封信_禅与计算机程序设计艺术的博客-CSDN博客 
  3. 程序员职业生涯系列:关于技术能力的思考与总结_禅与计算机程序设计艺术的博客-CSDN博客
  4. 【思维模型】概率思维的价值:找到你的人生算法,实现阶级跃迁!_禅与计算机程序设计艺术的博客-CSDN博客
  5. 【企业架构设计实战】业务架构设计_禅与计算机程序设计艺术的博客-CSDN博客
  6. 【企业架构设计实战】技术架构设计指南_禅与计算机程序设计艺术的博客-CSDN博客
  7. 【企业架构设计实战】应用架构设计_禅与计算机程序设计艺术的博客-CSDN博客 
  8. 【企业架构设计实战】大数据架构最佳实践_禅与计算机程序设计艺术的博客-CSDN博客
  9. 软件架构师的10项重要技能_禅与计算机程序设计艺术的博客-CSDN博客
  10. 【计算机程序设计思想与方法】1 什么是计算?_禅与计算机程序设计艺术的博客-CSDN博客
  11. 【计算机程序设计思想与方法】2 什么是计算思维?_禅与计算机程序设计艺术的博客-CSDN博客
  12. 【架构师必知必会系列】系统架构设计需要知道的5大精要(5 System Design fundamentals)..._禅与计算机程序设计艺术的博客-CSDN博客
  13. 【成为架构师课程系列】架构师的核心能力地图_禅与计算机程序设计艺术的博客-CSDN博客
  14. 【成为架构师课程系列】一线架构师:6个经典困惑及其解法_禅与计算机程序设计艺术的博客-CSDN博客
  15.  【成为架构师课程系列】怎样进行高性能高可用的高并发系统的设计?_禅与计算机程序设计艺术的博客-CSDN博客
  16.  【成为架构师课程系列】高并发系统设计的三大目标:高性能、高可用、可扩展_禅与计算机程序设计艺术的博客-CSDN博客
  17.  【成为架构师课程系列】消息队列:秒杀时如何处理每秒上万次的下单请求?_禅与计算机程序设计艺术的博客-CSDN博客【成为架构师课程系列】架构分层:我们为什么一定要这么做?_禅与计算机程序设计艺术的博客-CSDN博客
  18.  【成为架构师课程系列】架构设计中的核心思维方法_禅与计算机程序设计艺术的博客-CSDN博客
  19. 【成为架构师课程系列】数据库优化方案 1:查询请求增加时,如何做主从分离?_禅与计算机程序设计艺术的博客-CSDN博客 
  20. 【成为架构师课程系列】数据库性能优化:写入数据量增加时,如何实现分库分表?如何保证分库分表后 ID 的全局唯一性?_禅与计算机程序设计艺术的博客-CSDN博客 【成为架构师课程系列】性能优化技术之“池化技术”:如何减少频繁创建数据库连接的性能损耗?_禅与计算机程序设计艺术的博客-CSDN博客
  21.  【成为架构师课程系列】高性能系统设计之分布式缓存_禅与计算机程序设计艺术的博客-CSDN博客
  22. 【成为架构师课程系列】NoSQL:在高并发场景下,数据库和NoSQL如何做到互补?_禅与计算机程序设计艺术的博客-CSDN博客 
  23. 【成为架构师课程系列】大数据技术体系精华总结【值得收藏!】_禅与计算机程序设计艺术的博客-CSDN博客 
  24. 【软件架构思想系列】模块化与抽象_禅与计算机程序设计艺术的博客-CSDN博客 
  25. 【软件架构思想系列】从伟人《矛盾论》中悟到的软件架构思想真谛:“对象”即事物,“函数”即运动变化..._禅与计算机程序设计艺术的博客-CSDN博客 
  26.  【软件架构思想系列】分层架构_禅与计算机程序设计艺术的博客-CSDN博客
  27. 软件架构图和模式_禅与计算机程序设计艺术的博客-CSDN博客 
  28. 一切系统都是分布式的:Everything is distributed_禅与计算机程序设计艺术的博客-CSDN博客 
  29. 《人月神话》(The Mythical Man-Month)看清问题的本质:如果我们想解决问题,就必须试图先去理解它..._禅与计算机程序设计艺术的博客-CSDN博客 
  30. 【模型↔关系思考法】如何在一个全新的、陌生的领域快速成为专家?模仿 + 一万小时定律 + 创新..._禅与计算机程序设计艺术的博客-CSDN博客 
  31. BloomFilter 布隆过滤器思想原理和代码实现_禅与计算机程序设计艺术的博客-CSDN博客 
  32.  每个程序员都需要掌握的 7 项基本技能_禅与计算机程序设计艺术的博客-CSDN博客
  33. 我问 ChatGPT:怎样成为优秀的架构师?看它怎么回答的……_禅与计算机程序设计艺术的博客-CSDN博客 
  34. 彻底搞懂分布式系统服务注册与发现原理_禅与计算机程序设计艺术的博客-CSDN博客 
  35. Elasticsearch 架构设计及说明_禅与计算机程序设计艺术的博客-CSDN博客_elasticsearch 架构设计
  36. Elasticsearch 数据的读写流程,掌握到这个程度就够用了_禅与计算机程序设计艺术的博客-CSDN博客
  37. 【成为架构师课程系列】作为一名大数据架构师该掌握的技能清单:_禅与计算机程序设计艺术的博客-CSDN博客 ​​​​​​数据思维:开启数据认知素养之旅_禅与计算机程序设计艺术的博客-CSDN博客
  38. MySQL 体系架构简介_禅与计算机程序设计艺术的博客-CSDN博客
  39. 通用大数据架构体系介绍_禅与计算机程序设计艺术的博客-CSDN博客 
  40. HBase系统架构及数据结构_禅与计算机程序设计艺术的博客-CSDN博客
  41. HBase 架构原理-数据读取流程解析_禅与计算机程序设计艺术的博客-CSDN博客 
  42. HBase 架构详解及数据读写流程_禅与计算机程序设计艺术的博客-CSDN博客 
  43. HBase架构详解及读写流程_禅与计算机程序设计艺术的博客-CSDN博客 
  44. 【图文详解】HDFS 系统架构与文件数据读写流程_禅与计算机程序设计艺术的博客-CSDN博客 
  45. Apache Flink 实现原理:容错机制_禅与计算机程序设计艺术的博客-CSDN博客 
  46. Elasticsearch 索引原理_禅与计算机程序设计艺术的博客-CSDN博客
  47. Spark / Hive / ClickHouse 向量化查询执行原理分析(Vectorization Query Execution)_禅与计算机程序设计艺术的博客-CSDN博客 
  48. Hive常用DDL(数据定义语言)操作_禅与计算机程序设计艺术的博客-CSDN博客 
  49. MySQL 的执行计划 explain 详解_禅与计算机程序设计艺术的博客-CSDN博客
  50. MySQL 存储引擎 - InnoDB 实现原理介绍_禅与计算机程序设计艺术的博客-CSDN博客 
  51. 【史上最全】MySQL各种锁详解:一文搞懂MySQL的各种锁_禅与计算机程序设计艺术的博客-CSDN博客 
  52. 大数据存储引擎 NoSQL极简教程 An Introduction to Big Data: NoSQL_禅与计算机程序设计艺术的博客-CSDN博客 
  53. Redis 作者 Antirez 讲如何实现分布式锁?Redis 实现分布式锁天然的缺陷分析&Redis分布式锁的正确使用姿势!..._禅与计算机程序设计艺术的博客-CSDN博客 【架构师必知必会】常见的NoSQL数据库种类以及使用场景_禅与计算机程序设计艺术的博客-CSDN博客
  54. 【极简教程】Linux Shell 脚本编程_禅与计算机程序设计艺术的博客-CSDN博客 
  55. 业务驱动的企业级数据架构设计_禅与计算机程序设计艺术的博客-CSDN博客
  56. Hive 系统架构_禅与计算机程序设计艺术的博客-CSDN博客 
  57. 读多写少业务场景的缓存设计重构实战_禅与计算机程序设计艺术的博客-CSDN博客 
  58. 神奇的 Go 语言:Go 极简教程_禅与计算机程序设计艺术的博客-CSDN博客 
  59. 【精华文章】深入理解 Java 内存模型_禅与计算机程序设计艺术的博客-CSDN博客 
  60. 简洁代码的艺术【The Art of Clean Code】_禅与计算机程序设计艺术的博客-CSDN博客 
  61. 干净的代码——一种实用的方法_禅与计算机程序设计艺术的博客-CSDN博客 
  62. 清洁代码之道:一份实用关于如何编写和维护干净整洁的好代码的的方法 The Art Of Clean Code..._禅与计算机程序设计艺术的博客-CSDN博客 
  63. 更快地编写更好的代码:5 分钟阅读_禅与计算机程序设计艺术的博客-CSDN博客 
  64. ClickHouse 合并树表引擎 MergeTree 原理分析_禅与计算机程序设计艺术的博客-CSDN博客
  65. 【精华收藏】ClickHouse 系统架构、存储引擎、 查询引擎原理分析_禅与计算机程序设计艺术的博客-CSDN博客 ClickHouse 合并树表引擎 MergeTree 索引与数据存储方式_禅与计算机程序设计艺术的博客-CSDN博客
  66. 成为软件架构师需要什么?_禅与计算机程序设计艺术的博客-CSDN博客
  67. 产品经理(Product Manager)工作主要是做什么的?没想到产品经理也分这么多种类型!_禅与计算机程序设计艺术的博客-CSDN博客 
  68. 十年技术进阶路:让我明白了三件要事。关于如何做好技术 Team Leader?如何提升管理业务技术水平?(10000字长文)..._禅与计算机程序设计艺术的博客-CSDN博客
  69. 程序员技术练级攻略:Build Your Programming Technical Skills_禅与计算机程序设计艺术的博客-CSDN博客
http://www.tj-hxxt.cn/news/3573.html

相关文章:

  • 网站建设又叫什么软件温州网站建设制作
  • 网站布局f点击精灵seo
  • 卡盟网站建设广州竞价外包
  • 重庆高端网站建设价格培训机构seo
  • 想百度搜到网站新域名怎么做竞价推广的基本流程
  • 北京专业做网站推广爱站网seo综合查询工具
  • 公司网站制作注意什么营销型网站是什么意思
  • 小语种服务网站长沙市最新疫情
  • 有哪些网站可以学做糕点的网页制作教程书籍
  • 做网站找客源广州网站外包
  • 宝武马钢集团公司招聘网站广州最新疫情通报
  • 有什么网站可以做ppt厦门网站推广公司哪家好
  • 产品外包装设计网站网站seo招聘
  • 芙蓉网站制作西安seo顾问
  • 标准企业网站开发合同关键词排名推广怎么做
  • 宁德营销型网站建设怎么用手机制作网站
  • 甘肃自助建站系统哪家好seo网站营销推广公司
  • 专门做日本旅游的网站有哪些网络营销过程步骤
  • 营销型网站建设ppt模板深圳百度seo怎么做
  • 做愛表情网站舆情服务网站
  • 北师大 网页制作与网站建设 考试最新黑帽seo教程
  • 深圳松岗做网站的网站建设报价明细表
  • 做瞹视频网站哪里看手机百度安装下载
  • 软件技术外包是什么行业seo快速排名利器
  • 学院网站信息化建设总结seo高手培训
  • 那个网站可免费做推广佛山seo优化外包
  • 国外的b2b网站或者b2c网站安卓优化大师hd
  • 免费建商城网站哪个好88个seo网站优化基础知识点
  • 外国的贸易网站2345浏览器主页网址
  • 网站建设公司怎么运营微博推广有用吗