说架构,远不如讨论语言来得有感觉。架构这个词有点别扭,是这几年才说得比较多的一个词语。没有感觉就顺便先说几句。
从问题出发,我们要解决一个应用系统,实现其目标,并不是一件容易的事。这里不再掉书包说以前的方法了,就说眼前的。眼前的架构不管其名称是什么有一点是共同的,那就是多层结构,最普遍的是三层结构。为什么是多层而不是一层或两层,这个是科技发展过来的,说不上什么道理。这好比以前建砖瓦房,现在建框架房一样,将梁和墙分开被事实证明是一个正确的选择。
普通的三层结构,一般分为数据层,业务层和UI,数据层简而言之是是实现数据存取,数据关系,核心就是数据库。对于普通的应用而言,Oracle,DB2和MySql没什么区别,因此在这一层里应该没什么猫尿才对。但恰恰相反,不知道是我理解不深还是没做过什么大系统的缘故,这里有ORM,有JDO,有Active Record(刚刚看过介绍文章),天啦,尿多去了。(全是因为OO建模的关系)
数据层不讨论了,因为我的观点这时候不用说读者也明白了,与其说出来找骂不如保留观点。业务层的内容就多了,有很多人认为一个系统的核心就是这层内容了。我认为这层很重要,系统实际上是RUN在这层上的。但是这个层不是核心,核心是两个,一是数据层和业务层的设计以使既能够满足业务需求,又能够适应需求变化的要求。这话说起来有些拗口,没关系,老外已经把这个总结为“分析模式”了,当我看到这本书的时候,我不是感到激动,而是佩服,佩服He能够把这么宝贵的经验拿出来,而且还整理得这么好。对于这个核心,我要说的是,不是了解或者掌握了OO建模就能够把这件事情干好的,因为按照OO建模的理论,是要将现实世界映射到OO,而映射的结果将会很多,分析模式中提供的方案绝不会是最直观的。这里面充满了技巧和经验。
另一个核心也和需求所反映的逻辑关系无关,另一句拗口的句子,将业务层换成了UI层。那就是切身体会的理解用户的UI操作体验,用一把小刀修修你的数据层。要获得美丽的容颜,仅仅靠化妆品是不够的,适当的修修内功,内外兼收才能培养出绝色美女。
关于应用系统核心的观点有很多人会不同意,管别人怎么想做什么呢,我既然写了出来,我就先占据了主动,不是吗?又要待续了,因为财务的原因,买的房子楼层低,有蚊子了,还是用火点的蚊香可靠些,技术里也有很多像老蚊香一样实实在在的东西,不要丢掉哦!
分享到:
相关推荐
四、架构组成 架构组成是指企业架构的各个组件和关系。这些组件和关系可以是物理的,也可以是逻辑的。架构组成可以分为以下几个方面: * 产品(Product):描述企业的产品和服务。 * 服务(Services):描述企业的...
本资源是关于企业架构建模ArchiMate语言的学习教案,共26页,涵盖了架构层次、架构开发方法、ArchiMate图例、ArchiMate视图等多方面的内容。 一、架构层次 架构层次是企业架构建模的基础,它定义了企业架构的各个...
4. 技术选型与评估:如何根据项目需求选择合适的技术栈,包括操作系统、数据库、编程语言等,并对技术方案进行性能、安全、可扩展性等方面的评估。 5. 系统集成与互操作性:探讨不同系统间的接口设计和数据交换,...
2. 技术选型:架构设计有助于选择适合的编程语言、框架和工具,确保技术栈的一致性和兼容性。 3. 可扩展性:通过模块化设计,架构支持系统的平滑扩展,适应未来需求变化。 4. 可维护性:清晰的架构减少代码耦合,...
6. **架构模型与建模工具**:使用UML(统一建模语言)等工具,可以创建架构模型,帮助可视化系统组件及其关系。这些模型有助于沟通、验证和改进设计。 7. **接口与协议**:明确系统组件间的接口和通信协议是架构...
### J2EE常见的四种架构类型 #### 概述 Java 2 Platform, Enterprise Edition(简称J2EE)是Sun Microsystems公司推出的一种企业级应用开发平台,它为开发、部署和管理多层分布式的企业应用程序提供了全面的支持。...
它通过对企业应用、系统、最终用户应用以及编程语言四个不同层面的解析,为读者提供了全面理解软件架构的视角。 在企业应用层面,书中可能涵盖了如何构建能够支持大规模业务流程的系统。这包括模块化设计、服务化...
【标题】"smart-lottery抽奖系统基于COLA架构采用DDD领域驱动中四层架构" 描述了这个项目的核心设计原则和技术栈。首先,我们要理解COLA架构和DDD(领域驱动设计)的概念。 COLA(Clean Architecture On Layers,...
四、项目管理与团队协作 架构师不仅要有深厚的技术底蕴,还需要懂得项目管理。这涉及到需求分析、时间管理、风险控制等方面。同时,作为团队的领导者,架构师需要具备良好的团队协作和领导能力,以促进团队的高效...
四、多语言架构 C#支持多语言交互,通过.NET互操作性,可以与其他.NET兼容的语言(如VB.NET、F#)无缝协作。同时,C#还可以与非.NET环境下的语言(如Python、Java)通过标准接口(如Web服务、gRPC)进行通信。 五、...
《希赛第4版系统架构设计师教程》是针对全国计算机技术与软件专业技术资格(水平)考试中的系统架构设计师级别的权威教程。本教程旨在帮助备考者深入理解和掌握系统架构设计的相关知识,以顺利通过考试并提升实际...
根据提供的信息,我们可以推断这份文档“系统架构设计师教程.pdf”是关于系统架构设计方面的教程。由于提供的部分内容仅包含重复的网址(www.TopSage.com),我们无法从中直接获取具体的教学内容。因此,我们将基于...
四、为什么使用微服务架构 微服务架构的使用可以带来许多好处,如: * 提高系统的可扩展性和灵活性 * 降低系统的耦合度和风险 * 提高系统的可维护性和可重用性 * 提高系统的性能和可靠性 五、Java 基础知识学习...
四、架构文档与沟通 1. 架构视图:创建不同视角的架构视图,如逻辑视图、进程视图、部署视图等。 2. 模型与图:利用UML或其他建模语言表达架构设计。 3. 文档编写:清晰、准确地记录架构决策和设计细节。 4. 团队...
本文将深入探讨一个使用C#语言编写的、具有三层架构的车票联网查询系统,揭示其核心设计理念与实现技术。 一、三层架构的概念 三层架构是一种常见的软件设计模式,它将应用分为三个逻辑层面:表现层(Presentation ...
架构设计与成长 知乎架构变迁发展史 架构设计是指根据业务需求和技术约束,设计和实现一个系统的整体结构和组件的过程。架构设计对系统的性能、可扩展性、可维护性和可靠性都有着至关重要的影响。知乎的架构变迁...
基于 Lua 解释性语言的手机跨平台架构 Lua 是一种解释性语言,具有轻量级、跨平台、灵活等特点,广泛应用于游戏开发、嵌入式系统等领域。本文将详细介绍基于 Lua 解释性语言的手机跨平台架构的设计和实现。 一、...