Context Is King

?

Context Is King

Edward Garson

i FEEl THERE iS A CERTAin iRony in trying to impart something about architectural ideals, when the very premise I wish to begin with is that effec- tively there are no ideals. If this is indeed the case, then surely there is nothing to write; I am a contradiction and by doing this I run the risk of the universe imploding or something like that.

But alas, ceci n’est pas une pipe.

One of the most valuable lessons that I have learned as a software architect is that context is king, and simplicity its humble servant. What this means in practical terms is that context is the only force that trumps simplicity when you’re making architectural decisions.

When I say context, I refer not only to high-level, immediate forces such as key business drivers, but also to elements in the periphery, such as emerging technologies and thought leadership on diverse topics. Indeed, good architects keep track of several fast-moving targets.

What constitutes good architecture? It is the product of decisions made within a context usually tainted with multiple competing priorities. Those competing priorities mean that sometimes the most important decisions are not about what you put in, but rather what you omit. The currency of good architecture is simply astute decision-making (while the products are all only about com- municating your intent).

Historically, there have been some fascinating examples of the influence that context can have on architecture. A favorite example involves the database selected to support an ambitious new software system for a modern battlefield

?

??tank.1 (Deciding what database to use is not usually architecturally significant; this example merely serves to illustrate a point.)

When it came time to choose the database, the team assessed many. It found that while the tank was moving quickly over undulating terrain while tracking a target, the majority of the databases were capable of supporting the maximal throughput required of the navigation and targeting systems. But the team was taken by surprise when it discovered that firing the main gun on the tank caused such a strong electromagnetic pulse that it totally crashed the onboard systems and of course the database along with it! On a modern battlefield, a tank without its software running is quite literally in the dark. In this context, recovery time was the overwhelming factor in the choice of database, and no database did that better at the time than InterBase,2 and that is why it was cho- sen for the M1 Abrams tank.

So, while newsgroups rage with the flames of technology debates of X versus Y, it is idle amusement. The reason these debates rage is often not because of huge disparities in their technical merits, but rather because there are more subtle differences between them, and what features individuals value more than others when there is no guiding context to act as a trump card.

Your team should be free of ideals, reflect on context in the first instance, and reach for the simplest solutions from there.

时间: 2024-07-28 17:32:28

Context Is King的相关文章

Android 使用URL显示网络图片

作者:卿笃军 原文地址:http://blog.csdn.net/qingdujun/article/details/39271479 URL对象中前而几个方法都非常容易理解,而该对象提供的openStream()可以读取该 URL资源的InputStream,通过该方法可以非常方便地读取远程资源. 下面的程序示范如何通过URL类读取远程资源: 1)只显示网络图片 2)显示并下载网络图片 1)只显示网络图片 a) activity_main.xml <RelativeLayout xmlns:a

[转]Spring Cloud在国内中小型公司能用起来吗?

原文地址:http://www.cnblogs.com/ityouknow/p/7508306.html 今天吃完饭休息的时候瞎逛知乎,突然看到这个一个问题Spring Cloud在国内中小型公司能用起来吗?,吸引了我的注意.仔细的看了题主的问题,发现这是一个好问题,题主经过了一番思考,并且用图形全面的将自己的疑问表达了出来,作为一个研究并使用Spring Boot和Spring Cloud近两年的程序员,看的我手痒痒不答不快呀. 好问题 好问题必须配认真的回答,仔细的看了题主的问题,发现这个问

什么是架构

什么是软件架构 前言:软体设计师中有一些技术水平较高.经验较为丰富的人,他们需要承担软件系统的架构设计,也就是需要设计系统的元件如何划分.元件之间如何发生相互作用,以及系统中逻辑的.物理的.系统的重要决定的作出.在很多公司中,架构师不是一个专门的和正式的职务.通常在一个开发小组中,最有经验的程序员会负责一些架构方面的工作.在一个部门中,最有经验的项目经理会负责一些架构方面的工作.但是,越来越多的公司体认到架构工作的重要性. 什么是软件系统的架构(Architecture)?一般而言,架构有两个要

Spring Cloud ZooKeeper集成Feign的坑2,服务调用了一次后第二次调用就变成了500,错误:Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is com.n

错误如下: 2017-09-19 15:05:24.659 INFO 9986 --- [ main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.spring[email protected]56528192: startup date [Tue Sep 19 15:05:24 CST 2017]; root of context hierarchy 2017-09-19 15:05:24.858 INFO 9986 --

java.lang.NoSuchMethodError: org.springframework.web.context.ConfigurableWebApplicationContext.getEnvironment()Lorg/springframework/core/env/ConfigurableEnvironment;问题

在springsecurity学习中,在加入spring有关的jar包后,出现java.lang.NoSuchMethodError: org.springframework.web.context.ConfigurableWebApplicationContext.getEnvironment()Lorg/springframework/core/env/ConfigurableEnvironment报错 出错原因:jar包版本有冲突 解决方法:换不同版本的jar包就可以解决问题了

POJ2728 Desert King

Time Limit: 3000MS   Memory Limit: 65536KB   64bit IO Format: %lld & %llu Description David the Great has just become the king of a desert country. To win the respect of his people, he decided to build channels all over his country to bring water to

Spring &lt;context:annotation-config/&gt; 解说

在基于主机方式配置Spring的配置文件中,你可能会见到<context:annotation-config/>这样一条配置,他的作用是式地向 Spring 容器注册 AutowiredAnnotationBeanPostProcessor.CommonAnnotationBeanPostProcessor. PersistenceAnnotationBeanPostProcessor 以及 RequiredAnnotationBeanPostProcessor 这 4 个BeanPostPr

Context的相关的问题记载

Context详解地址链接: http://blog.csdn.net/qinjuning/article/details/7310620 自己遇到的Context相关问题收集: 1.新建某些对象的时候,必须要有context对象作为参数,但并没有可以用来使用的context对象时,如何为该新建的方法提供context参数 使用应用程序的context接口: class A = new class(getApplicationContext());

hdu 5640 King&#39;s Cake(模拟)

Problem Description It is the king's birthday before the military parade . The ministers prepared a rectangle cake of size n×m(1≤n,m≤10000) . The king plans to cut the cake himself. But he has a strange habit of cutting cakes. Each time, he will cut