Talk the Talk

Talk the Talk
Mark Richards
in Any pRoFESSion, jargon is used so that individuals within that pro- fession can effectively communicate with one another. Lawyers talk to one another about habeas corpus, voir dire, and venire; carpenters talk to one another about butt joints, lap joints, and flux; and software architects talk to one another about ROA, Two Step View, and Layer Supertype. Wait, what was that?
It is imperative that software architects, regardless of the platform they are working in, have an effective means of communication among one another. One of those means of communication is through architecture and design patterns. To be an effective software architect you must understand the basic architecture and design patterns, recognize when those patterns are being used, know when to apply the patterns, and be able to communicate to other architects and developers using them.
Architecture and design patterns can be classified into four basic categories: enterprise architecture patterns, application architecture patterns, integration patterns, and design patterns. These categories are generally based on the level of scope within the overall architecture. Enterprise architecture patterns deal with the high-level architecture, whereas design patterns deal with how indi- vidual components within the architecture are structured and behave.
Enterprise architecture patterns define the framework for the high-level archi- tecture. Some of the more common architecture patterns include event-driven architecture (EDA), service-oriented architecture (SOA), resource-oriented architecture (ROA), and pipeline architecture.
Application architecture patterns specify how applications or subsystems within the scope of a larger enterprise architecture should be designed. Some common pattern catalogs in this category include the well-known J2EE design

patterns (e.g., Session Façade and Transfer Object) and the application archi- tecture patterns described in Martin Fowler’s book Patterns of Enterprise Application Architecture (Addison-Wesley Professional).
Integration patterns are important for designing and communicating concepts surrounding the sharing of information and functionality between components, applications, and subsystems. Some examples of integration patterns include file sharing, remote procedure calls, and numerous messaging patterns. You can find these patterns at http://www.enterpriseintegrationpatterns.com/eaipatterns.html.
Knowing the basic design patterns as described by the Gang of Four book Design Patterns: Elements of Reusable Object-Oriented Software (Addison- Wesley Professional) is a must for any software architect. Although these pat- terns may appear to be too low-level for a software architect, they are part of a standard vocabulary that makes for effective communication between archi- tects and developers.
It is also important to be aware of and understand the various anti-patterns as well. Anti-patterns, a term coined by Andrew Koenig, are repeatable processes that produce ineffective results. Some of the more well-known anti-patterns include Analysis Paralysis, Design By Committee, Mushroom Management, and Death March. Knowing these patterns will help you avoid the many pit- falls you will most likely experience. You can find a list of the common anti- patterns at http://en.wikipedia.org/wiki/Anti-patterns.
Software architects need the ability to communicate with one another in a clear, concise, and effective way. The patterns are there; it is up to us as soft- ware architects to learn and understand these patterns so we can “walk the walk and talk the talk.”
随机推荐
- Spring Security Architecture--官方
原文地址:https://spring.io/guides/topicals/spring-security-architecture/ Table of contents Authenticatio ...
- ZOJ 3175 Number of Containers 分块
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3216 乱搞的...watashi是分块做的...但我并不知道什么是分块...大 ...
- js sort()函数 排序问题 var arr =['A-1-5-1','A-1-10-2','A-1-5-5','B-2-3-1','C-4-10-1'], 对这个数组进行排序,想达到的效果是["A-1-5-1", "A-1-5-5", "A-4-10-1", "A-1-10-2", "A-2-3-1"]
先介绍个方法 charCodeAt() 方法可返回指定位置的字符的 Unicode 编码.这个返回值是 0 - 65535 之间的整数. stringObject.charCodeAt(index) ...
- JAVA学习第五十四课 — IO流(八)打印流 & 序列流
一.综合练习-文件清单列表 获取指定文件夹下,指定扩展名的文件(含子文件夹),并将这些文件的绝对路径写到一个文本文件里.也就是建立一个指定扩展名的文件列表 1.深度遍历 2.过滤器->容器 3. ...
- view-activity跟控件在onkey事件上的传递关系
android 中Activity跟View对于键盘的监听,主要有以下几个方法 //按键按下 public boolean onKeyDown(int keyCode, KeyEvent event) ...
- windows 常见环境变量(%AppData%、%TEMP%、%TMP%)
set 命令查看全部环境变量: %AppData%(应用程序数据).%TEMP%(临时文件夹).%TMP%(临时文件夹) .%LocalAppData%(应用程序本地数据)三个环境变量: C:\Use ...
- 分享一个vue常用的ui控件
vue学习文档 http://www.jianshu.com/p/8a272fc4e8e8 vux github ui demo:https://github.com/airyland/vux M ...
- Linux 设置文件默认打开方式
比如说我安装了一个绿色版的sublime(.tar解压出来的不是.deb) 但是现在我右键不能打开,不能添加为默认打开方式...这个时候就比较尴尬了... 我总不能每次都cd到安装目录下然后termi ...
- ajax的内容
ajax是什么? 通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新,可以局部刷新而不必整个页面整体刷新. url的简单认识: 进入服务器的三种方式: 1.localhost:端口号 ...
- spring之AOP(转)
Spring之AOP篇: AOP框架是Spring的一个重要组成部分.但是Spring IOC 并不依赖于AOP,这就意味着你有权力选择是否使用AOP,AOP作为Spring IOC容器的一个补充,使 ...