Architects’ Focus Is on the Boundaries and Interfaces

?

Architects’ Focus Is on the Boundaries and Interfaces

Einar Landre

SinCE loRd nElSon dESTRoyEd the French and Spanish fleet at Trafalgar in 1805, “divide and conquer” has been the mantra for dealing with complex and difficult problems. A more familiar term with the same intent is separa- tion of concern. From separation of concern we get encapsulation, and from encapsulation we get boundaries and interfaces.

From an architect’s point of view, the hard part is to find the natural places to locate boundaries and define the appropriate interfaces needed to build a working system. This is especially difficult in large enterprise systems, often characterized by few natural boundaries and intertangled domains. In this situation, old wisdom such as “Minimize coupling, maximize cohesion” and “Do not slice through regions where high rates of information exchange are required” provide some guidance, but they say nothing about how to commu- nicate the problems and potential solutions to stakeholders in a easy way.

Here the concept of bounded contexts and context mapping, as described by Eric Evans in his book Domain-Driven Design (Addison-Wesley Professional), comes to the rescue. A bounded context is an area where a model or concept is uniquely defined, and we represent it as a cloud or bubble with a descrip- tive name that defines its role and responsibility in the domain at hand. As an example, a shipping system might include contexts such as Cargo Operation, Cargo Scheduling, and Harbor Movement. In other domains, other names will be appropriate.

?

??With the bounded contexts identified and drawn up on the whiteboard, it’s time to start to draw the relationships between the contexts. These relation- ships might address organizational, functional, or technical dependencies. The result from this exercise is a context map, a collection of bounded contexts and the interfaces between them.

Such a context map provides architects with a powerful tool that allows them to focus on what belongs together and what should be kept apart, enabling them to divide and conquer wisely in a communicative way. The technique can easily be used to document and analyze the as-is situation, and from there guide redesign toward a better system characterized by low coupling, high cohesion, and well-defined interfaces.

时间: 2024-11-09 00:50:55

Architects’ Focus Is on the Boundaries and Interfaces的相关文章

什么是软件测试架构师?

转:https://www.cnblogs.com/henryhappier/p/3216921.html 软件测试架构师是一个新职位,但确实是一个非常必要的职位,主要有几点: 1. 根据V模型.广义测试概念等,(静态)测试的越早,发现缺陷越早,越有利于产品的质量.加快产品开发周期.降低企业的成本.更重要预防设计出现严重的缺陷,如果设计出现缺陷,在系统集测试发现问题时,所造成的返工将是可怕的.这就需要对设计进行复审.评审,而在这过程中,需要测试人员参与. 2. 对于当前系统越来越复杂,不管是J2

Decision Boundaries for Deep Learning and other Machine Learning classifiers

Decision Boundaries for Deep Learning and other Machine Learning classifiers H2O, one of the leading deep learning framework in python, is now available in R. We will show how to get started with H2O, its working, plotting of decision boundaries and

Chapel 2.Network interfaces

Note: Copy from TCP/IP Tutorial and Technical Overview (IBM Redbook GG24-3376-07)[000] 2.1 Ethernet and IEEE 802 local area networks (LANs) 2.1.1 Gigabit Ethernet 2.2 Fiber Distributed Data Interface (FDDI) 2.3 Serial Line IP (SLIP) 2.4 Point-to-Poin

Boundaries

Using Third-Party Code There is a natural tension between the provider of an interface and the user of an interface.Providers of third-party packages and frameworks strive for broad applicability so they can work in many environments and appeal to a

Provide Regular Time to Focus

Provide Regular Time to Focus James Leigh Toronto, Ontario, Canada SoFTWARE DEvEloPERS REgUlARly REPoRT that interruptions such as meetings, demos, and urgent bug fixes keep them from completing their work. Typically, a person takes about 20 minutes

disable NetworkManager and boot on static ip configuration using /etc/network/interfaces

1.stop and disable NetworkManager sudo systemctl stop NetworkManager sudo systemctl disable NetworkManager 2.drop status of NetworkManger sudo mv /var/lib/NetworkManager/NetworkManager.state /var/lib/NetworkManager/NetworkManager.state.bak 3.edit int

CSS:focus选择器

focus:用于 接收键盘事件的元素和接收输入的元素 一般书写顺序: link, visited, hover, active a:link {color: #FF0000} /* 未访问的链接 */ a:visited {color: #00FF00} /* 已访问的链接 */ a:hover {color: #FF00FF} /* 当有鼠标悬停在链接上 */ a:active {color: #0000FF} /* 被选择的链接 */

jquery中focus()失效怎么解决

又学到一个新的知识! 今天在写表单验证的时候遇到一个关于获取焦点的focus()问题. 场景说明:在验证密码输入格式不对之后,弹出alert()提示框,提示密码不对,请重新输入.同时清空密码框并获得焦点,代码如下: 查了好久的资料才找到一个原因,原来这是由于FF和IE的关于blur和focus的机制不一样,FF的focus只能在blur之前.所以用settimeout()做了一个延迟处理,代码如下: (为了加强效果,在密码框获得焦点之后,加了个CSS边框进去) 这样修改了之后,就可以实现想要的效

js中的focus()聚焦

document.getElementById("vin").focus();document.form1.name.focus() $(document).ready(function(){        document.getElementById("carnum").focus();    });