原文地址:http://theaudaciouscodeexperiment.com/blog/2014/03/17/hexagonal-architecture-guidelines-for-rails/. TL;DR Good application design is hard and there’s no one “right” way to do it. I often get asked the how I design decoupled applications and whil…
原文地址:http://jeffreypalermo.com/blog/the-onion-architecture-part-1/. I've spoken several times about a specific type of architecture I call "Onion Architecture".  I've found that it leads to more maintainable applications since it emphasizes sepa…
微内核架构(Microkernel Architecture) 微内核架构有时也被成为插件架构模式(plug-in architecture pattern),通常用于实现基于产品的应用,如Eclipse和Firefox.然而许多公司也将内部的业务软件做成软件产品,提供版本.发版说明和插件特性.微内核架构模式通过插件向核心应用添加额外的功能,提供了可扩展性和功能的独立和分离. 模式描述 微内核架构包含两部分组件:核心系统(core system)和插件模块(plug-in modules).应用…
EDA 是一种侧重于以生成/消费为基础的异步通信的架构模式.这主要对照于传统的基于线程的同步系统. EDA 是一种以事件 (event)为核心,提供事件产生,路由,消费已经结果回调等机制的架构模式. 简单地说, 面向服务架构 (Service-Oriented Architecture, SOA) 是一种 IT 架构策略,其基于面向服务的概念之上.自从 2002 开始为大家熟知以来,SOA 已经逐渐地成为业界的标准,也得到了广泛的应用. SOA != Web Service 因为 SOA 经常和…
编译器架构Compiler Architecture(下) Combining Scanning and Parsing 实际上没有必要将扫描(词法分析/标记化)与解析(语法分析/树生成)分开.基于PEGs的系统,比如Ohm,实际上是无扫描的:它们以一种预测的方式执行解析,将词汇和语法规则混合在一起.(但是,像Ohm这样的系统需要一个预解析阶段来处理缩进和凹陷.) 当使用无扫描系统时,语言设计者和编译器编写者仍然会考虑符号和短语,但不必担心像所谓的最大Munch原则这样的复杂规则.Lookahe…
编译器架构Compiler Architecture(上) 编译器是程序,通常是非常大的程序.它们几乎都有一个基于翻译分析综合模型的结构. CONTENTS Overview • Compiler Components • Lexical Analysis (Scanning) • Syntax Analysis (Parsing) • Combining Scanning and Parsing • Semantic Analysis • Intermediate Code Generatio…
原位地址:http://jeffreypalermo.com/blog/the-onion-architecture-part-2/. In part 1, I introduced an architectural pattern that I have named "Onion Architecture".  The object-oriented design concepts are not new, but I'm pulling together a lot of tech…
1. 架构和框架的设计层次不同       类似于硬件设计,软件设计也分为不同的层次.典型的软件设计层次如下图:        在这个图中我们可以看到,Framework处于Micro-architectures和Application Level之间.Deisgn Patterns是Micro-architectures级的设计,Framework由多个Design Pattern和其他微架构设计元素形成.而Object&classes.Micro-architectures和Framewor…
ASP.NET Core 企业开发架构概述 企业开发框架包括垂直方向架构和水平方向架构.垂直方向架构是指一个应用程序的由下到上叠加多层的架构,同时这样的程序又叫整体式程序.水平方向架构是指将大应用分成若干小的应用实现系统功能的架构,同时这样的系统叫做分布式系统.在架构上java和.net世界都有优秀的框架支持构建垂直和水平方向架构.ASP.Net Core非常轻量且具有很高的性能,不仅适合做整体式程序,也非常适合做分布式系统.随着微服务的兴起,各种语言的混合应用是个趋势. ASP.NET Cor…
架构(Architecture)的意义: 先不要看什么是架构,先看下architect是什么,没有错,它是建筑师,在一块空地上build高楼大厦的人,它是一个designer,设计好整个大楼,也是一个superviser,监督好整个项目不偏离设计.切换到computing的小宇宙,它就是架构设计者,设计出整个软件的主体结构,同时确保整个软件项目按照设计完成.略有不同的是,一个大楼更倾向于静态的设计,可以用结构力学和数学公式解决:而computing的世界是动态的世界,是一个充满了communic…