{"id":224,"date":"2003-11-30T12:01:00","date_gmt":"2003-11-30T16:01:00","guid":{"rendered":"http:\/\/www.markbaker.ca\/wp\/?p=89"},"modified":"2003-11-30T12:01:00","modified_gmt":"2003-11-30T16:01:00","slug":"jeff-schneider-on-coupling","status":"publish","type":"post","link":"http:\/\/www.markbaker.ca\/blog\/2003\/11\/jeff-schneider-on-coupling\/","title":{"rendered":"Jeff Schneider on coupling"},"content":{"rendered":"<p>Jeff asked me to have a look at his\n<a href=\"http:\/\/schneider.blogspot.com\/couplingindex.htm\">attempt to quantify the concept of &#8220;coupling&#8221;<\/a>\nfrom a REST perspective, which I&#8217;m happy to do.<\/p>\n\n<p>I like what I read there quite a bit, in particular the emphasis on an\naspect of large scale systems that I rarely see mentioned; the role of\nintermediary introduction at runtime.  Jeff writes;<\/p>\n\n<blockquote>\nIn addition, a fundamental belief that I hold is that &#8216;intermediaries&#8217;, if introduce-able at runtime, have the potential of bringing a coupling index to an unprecedented low level. This concept is conveyed via &#8216;Intermediary Decoupling&#8217;; where-by, other coupling concerns are mitigated by the use of one or more &#8216;intermediaries&#8217;.\n<\/blockquote>\n\n<p>A huge +1 from me on that.  Roy Fielding describes a set of properties called\n<a href=\"http:\/\/www.ics.uci.edu\/~fielding\/pubs\/dissertation\/net_app_arch.htm#sec_2_3_4\">&#8220;Modifiability&#8221;<\/a>,\nwhich I believe encompasses Jeff&#8217;s intermediary concept, though I&#8217;m unclear exactly\nwhich sub-property it would refer to; I still have trouble recognizing some of those\nproperties as distinct from the others.<\/p>\n\n<p>I also like the mention of &#8220;Standards Coupling&#8221;, as it gives additional weight to\nreusing existing standardized solutions (HTTP, URIs), and de-emphasizes &#8220;reinventing the\nwheel&#8221; approaches (ahem 8-).<\/p>\n\n<p>In general, I think most of the value in trying to build a metric is in going\nthrough the exercise.  The &#8220;user weight&#8221; factor is much more dynamic than it appears\ntoo, or else needs to accomodate the requirements of the context into which a\nsystem will be deployed.  For example, a system being deployed behind the firewall of\nan enterprise doesn&#8217;t need the same degree of loose coupling that a system being\ndeployed outside a firewall does.  That&#8217;s just one type of &#8220;context&#8221; of course,\nthough a pretty darned important one.<\/p>","protected":false},"excerpt":{"rendered":"Jeff asked me to have a look at his attempt to quantify the concept of &#8220;coupling&#8221; from a REST perspective, which I&#8217;m happy to do. I like what I read there quite a bit, in particular the emphasis on an aspect of large scale systems that I rarely see mentioned; the role of intermediary introduction [&hellip;]","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-224","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/224","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/comments?post=224"}],"version-history":[{"count":0,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/224\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/media?parent=224"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/categories?post=224"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/tags?post=224"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}