<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-13967713.post2070094895947897718..comments</id><updated>2011-09-09T18:04:44.673+02:00</updated><category term='AOP'/><category term='tools'/><category term='engineering'/><category term='process'/><category term='HCI'/><category term='quote'/><category term='multithreading'/><category term='UML'/><category term='multicore'/><category term='oop'/><category term='COM'/><category term='poll'/><category term='announce'/><category term='cloud'/><category term='algorithms'/><category term='concurrency'/><category term='profession'/><category term='form'/><category term='ASP.NET'/><category term='GUI'/><category term='C#'/><category term='C++'/><category term='article reference'/><category term='agile'/><category term='NOSD'/><category term='metrics'/><category term='analysis'/><category term='generics'/><category term='free time'/><category term='coding'/><category term='pattern'/><category term='real options'/><category term='windows'/><category term='link'/><category term='design'/><category term='quality'/><category term='modeling'/><category term='book reference'/><category term='project management'/><category term='requirements'/><category term='architecture'/><category term='teaching'/><category term='estimation'/><category term='database'/><category term='.NET'/><category term='thinking'/><category term='language design'/><title type='text'>Comments on Carlo Pescio - blog: Notes on Software Design, Chapter 15: Run-Time Ent...</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.carlopescio.com/feeds/2070094895947897718/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13967713/2070094895947897718/comments/default'/><link rel='alternate' type='text/html' href='http://www.carlopescio.com/2011/09/notes-on-software-design-chapter-15-run.html'/><author><name>Carlo.Pescio</name><uri>http://www.blogger.com/profile/12652284939993729858</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>2</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-13967713.post-1508859435039987570</id><published>2011-09-09T18:04:44.673+02:00</published><updated>2011-09-09T18:04:44.673+02:00</updated><title type='text'>Hey there Cyrille,
great comment, like always! I d...</title><content type='html'>Hey there Cyrille,&lt;br /&gt;great comment, like always! I didn&amp;#39;t know about Michael&amp;#39;s work, very interesting...&lt;br /&gt;&lt;br /&gt;I&amp;#39;m always keeping an eye on terminology. In most cases, whenever I&amp;#39;m not reusing a familiar term from  Computer Science, it&amp;#39;s because I can&amp;#39;t find an exact correspondence, and I&amp;#39;m trying not to muddle existing terminology. I understand that taking inspiration from physics may alienate some, but in practice, I&amp;#39;ve found this to be most consistent with my view of software as a material to be shaped. Another reason for me to shun the existing terminology is that it often comes with a good / evil attachment (coupling is bad, separation of concern is good, etc) which hinders the idea that design is about balancing forces. &lt;br /&gt;&lt;br /&gt;You&amp;#39;re right however, using concepts from the physics of software to review existing principles (and patterns, I would add) is probably an excellent way to make it a bit more popular. For instance, I&amp;#39;ll soon introduce the idea of R/R and U/U entanglement in the run-time space, and basically say that things that are read together and/or updated together are attracted. This is easily explained by effiency. &lt;br /&gt;Interestingly, the dual statement in the artifacts space is that artifacts which are reused together, or updated together, are also attracted. This is the basis for the well-known &amp;quot;reuse release equivalence principle&amp;quot; (http://c2.com/cgi/wiki?ReuseReleaseEquivalencePrinciple). &lt;br /&gt;&lt;br /&gt;Along the same lines, my investigation of forces and materials has led me to formulate an alternative Open/Closed principle, that is not limited to classes, but extends to generics, functions, etc. I actually have a ton of notes, and now need some time to write everything down. I&amp;#39;ll probably try other media as well: I was thinking of a short video to discuss the forcefield around some well-known pattern.&lt;br /&gt;&lt;br /&gt;I&amp;#39;ll trade the beer for some gateaux (I used to speak French, but that was like 30 years ago; I barely remember a few words now :-)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13967713/2070094895947897718/comments/default/1508859435039987570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13967713/2070094895947897718/comments/default/1508859435039987570'/><link rel='alternate' type='text/html' href='http://www.carlopescio.com/2011/09/notes-on-software-design-chapter-15-run.html?showComment=1315584284673#c1508859435039987570' title=''/><author><name>Carlo.Pescio</name><uri>http://www.blogger.com/profile/12652284939993729858</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.carlopescio.com/2011/09/notes-on-software-design-chapter-15-run.html' ref='tag:blogger.com,1999:blog-13967713.post-2070094895947897718' source='http://www.blogger.com/feeds/13967713/posts/default/2070094895947897718' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-377659270'/></entry><entry><id>tag:blogger.com,1999:blog-13967713.post-4600139285749965933</id><published>2011-09-03T16:17:01.202+02:00</published><updated>2011-09-03T16:17:01.202+02:00</updated><title type='text'>Carlo,

Interesting read as usual! The redundancy ...</title><content type='html'>Carlo,&lt;br /&gt;&lt;br /&gt;Interesting read as usual! The redundancy part immediately reminds me of Degree Of Freedom analysis, which I used to blog on, with influence from posts by Michael L. Perry: http://cyrille.martraire.com/2009/12/degrees-of-freedom-analysis &lt;br /&gt;Clearly we&amp;#39;d like to minimize, or at least be aware of any extra degree of freedom, and of the potential inconsistencies that could result from them.&lt;br /&gt;&lt;br /&gt;On invariants, Domain-Driven Design strongly suggests that looking for invariants is a strong guide to find out the right concepts, as explained by Alberto Brandolini teaching the course. This often leads to derived values instead of redundant values, that would be &amp;quot;extra&amp;quot; (useless and potentially harmful) degrees of freedom.&lt;br /&gt;&lt;br /&gt;Going further, the DDD concept of aggregates as a bigger boundary of consistency is an alternate way to discuss &amp;quot;entanglement&amp;quot;, with all the consequences in transaction, foreigh keys, Delete-Delete rule etc.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I find the idea of degrees of freedom more intuitive (taught at school) than entanglement which is evocative of quantum weirdness, frightening!&lt;br /&gt;&lt;br /&gt;These ideas are taking shape, I&amp;#39;m eager that all that gets consolidated soon into some consistent and affordable form. Ideally I&amp;#39;d prefer that existing vocabulary and concepts be reused whenever possible, but I understand that you&amp;#39;d like to borrow from the metaphor of physics to help reasoning. At the same time these metaphors exclude pure CS people with not enough exposure to physics, just like my beloved concept of DoF exclude people with no background in mechanical engineering...&lt;br /&gt;&lt;br /&gt;Anyhow such physics of software, whatever it&amp;#39;s called, could become more popular if it could help modernize our set of principles (SOLID etc.) now that functional programming ideas and alternate architectural styles (CQRS, Event Sourcing...) are getting traction.&lt;br /&gt;&lt;br /&gt;Cheers, (whenever you come to Paris we could share a beer)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13967713/2070094895947897718/comments/default/4600139285749965933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13967713/2070094895947897718/comments/default/4600139285749965933'/><link rel='alternate' type='text/html' href='http://www.carlopescio.com/2011/09/notes-on-software-design-chapter-15-run.html?showComment=1315059421202#c4600139285749965933' title=''/><author><name>Cyrille Martraire</name><uri>http://cyrille.martraire.com/</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.carlopescio.com/2011/09/notes-on-software-design-chapter-15-run.html' ref='tag:blogger.com,1999:blog-13967713.post-2070094895947897718' source='http://www.blogger.com/feeds/13967713/posts/default/2070094895947897718' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-291907841'/></entry></feed>
