<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Bookmarks tagged “thoughtworks” on Maceage's Blog</title><link>https://blog.maceage.com/bookmarks/tags/thoughtworks/</link><description>Recent content in Bookmarks tagged “thoughtworks” on Maceage's Blog</description><generator>Hugo</generator><language>en-au</language><copyright>© Graham Mace</copyright><lastBuildDate>Mon, 01 Apr 2024 03:44:12 +0000</lastBuildDate><atom:link href="https://blog.maceage.com/bookmarks/tags/thoughtworks/index.xml" rel="self" type="application/rss+xml"/><item><title>Bookmarks tagged “thoughtworks”</title><link>https://blog.maceage.com/bookmarks/tags/thoughtworks/page/2/</link><pubDate>Mon, 01 Apr 2024 03:44:12 +0000</pubDate><guid>https://blog.maceage.com/bookmarks/tags/thoughtworks/page/2/</guid><description>&lt;p&gt;33 bookmarks tagged “thoughtworks”&lt;/p&gt;&#10;&lt;div class="Box"&gt;&#10;&lt;p&gt;&lt;div class="Box-row"&gt;&#10; &lt;article class="d-flex flex-column flex-md-row"&gt;&#10; &#10; &#10; &#10; &lt;div class="mr-md-3 mb-2 mb-md-0" style="flex-shrink: 0;"&gt;&#10; &lt;a href="http://www.thoughtworks.com/insights/blog/are-test-coverage-metrics-overrated" target="_blank" rel="noopener noreferrer"&gt;&#10; &#10; &lt;img src="https://blog.maceage.com/bookmarks/page/54/images/1055997543.jpg" alt="Are Test Coverage Metrics Overrated?" loading="lazy" class="rounded-2 post-list-image bookmark-card__image"&gt;&#10; &#10; &lt;/a&gt;&#10; &lt;/div&gt;&#10; &#10; &lt;div class="flex-auto"&gt;&#10; &lt;h2 class="f3 lh-condensed mb-1"&gt;&#10; &lt;a href="http://www.thoughtworks.com/insights/blog/are-test-coverage-metrics-overrated" class="Link--primary" target="_blank" rel="noopener noreferrer"&gt;Are Test Coverage Metrics Overrated?&lt;/a&gt;&#10; &lt;/h2&gt;&#10; &lt;div class="d-flex flex-items-center color-fg-muted f6 mb-2"&gt;&#10; &#10; &lt;time datetime="2014-12-09"&gt;Saved on 2014-12-09&lt;/time&gt;&#10; &lt;span class="mx-2"&gt;&amp;middot;&lt;/span&gt;&#10; &lt;span&gt;thoughtworks.com&lt;/span&gt;&#10; &lt;/div&gt;&#10; &#10; &lt;p class="color-fg-muted mb-2"&gt;I know a certain developer whose level of anxiety rises to disproportionate levels when his test coverage report returns a less-than-100% coverage. Whenever this happens, he will fiddle with his tests until he achieves the glorious 100% statistic - after which he will have earned&lt;/p&gt;&#10; &#10; &#10; &lt;div class="d-flex flex-wrap"&gt;&#10; &#10; &#10; &lt;a href="https://blog.maceage.com/bookmarks/tags/programming/" class="Label Label--secondary mr-1 mb-1"&gt;programming&lt;/a&gt;&#10; &#10; &#10; &lt;a href="https://blog.maceage.com/bookmarks/tags/tech/" class="Label Label--secondary mr-1 mb-1"&gt;tech&lt;/a&gt;&#10; &#10; &#10; &lt;a href="https://blog.maceage.com/bookmarks/tags/testing/" class="Label Label--secondary mr-1 mb-1"&gt;testing&lt;/a&gt;&#10; &#10; &#10; &lt;a href="https://blog.maceage.com/bookmarks/tags/thoughtworks/" class="Label Label--secondary mr-1 mb-1"&gt;thoughtworks&lt;/a&gt;&#10; &#10; &lt;/div&gt;&#10; &#10; &lt;/div&gt;&#10; &lt;/article&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;div class="Box-row"&gt;&#10; &lt;article class="d-flex flex-column flex-md-row"&gt;&#10; &#10; &#10; &#10; &lt;div class="mr-md-3 mb-2 mb-md-0" style="flex-shrink: 0;"&gt;&#10; &lt;a href="http://martinfowler.com/bliki/SnowflakeServer.html" target="_blank" rel="noopener noreferrer"&gt;&#10; &#10; &lt;img src="https://blog.maceage.com/bookmarks/page/54/images/1055997492.png" alt="SnowflakeServer" loading="lazy" class="rounded-2 post-list-image bookmark-card__image"&gt;&#10; &#10; &lt;/a&gt;&#10; &lt;/div&gt;&#10; &#10; &lt;div class="flex-auto"&gt;&#10; &lt;h2 class="f3 lh-condensed mb-1"&gt;&#10; &lt;a href="http://martinfowler.com/bliki/SnowflakeServer.html" class="Link--primary" target="_blank" rel="noopener noreferrer"&gt;SnowflakeServer&lt;/a&gt;&#10; &lt;/h2&gt;&#10; &lt;div class="d-flex flex-items-center color-fg-muted f6 mb-2"&gt;&#10; &#10; &lt;time datetime="2013-08-24"&gt;Saved on 2013-08-24&lt;/time&gt;&#10; &lt;span class="mx-2"&gt;&amp;middot;&lt;/span&gt;&#10; &lt;span&gt;martinfowler.com&lt;/span&gt;&#10; &lt;/div&gt;&#10; &#10; &lt;p class="color-fg-muted mb-2"&gt;a bliki entry for Snowflake Server&lt;/p&gt;&#10; &#10; &#10; &lt;div class="d-flex flex-wrap"&gt;&#10; &#10; &#10; &lt;a href="https://blog.maceage.com/bookmarks/tags/design-patterns/" class="Label Label--secondary mr-1 mb-1"&gt;design patterns&lt;/a&gt;&#10; &#10; &#10; &lt;a href="https://blog.maceage.com/bookmarks/tags/programming/" class="Label Label--secondary mr-1 mb-1"&gt;programming&lt;/a&gt;&#10; &#10; &#10; &lt;a href="https://blog.maceage.com/bookmarks/tags/tech/" class="Label Label--secondary mr-1 mb-1"&gt;tech&lt;/a&gt;&#10; &#10; &#10; &lt;a href="https://blog.maceage.com/bookmarks/tags/thoughtworks/" class="Label Label--secondary mr-1 mb-1"&gt;thoughtworks&lt;/a&gt;&#10; &#10; &lt;/div&gt;&#10; &#10; &lt;/div&gt;&#10; &lt;/article&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;div class="Box-row"&gt;&#10; &lt;article class="d-flex flex-column flex-md-row"&gt;&#10; &#10; &#10; &#10; &lt;div class="mr-md-3 mb-2 mb-md-0" style="flex-shrink: 0;"&gt;&#10; &lt;a href="http://martinfowler.com/bliki/PhoenixServer.html" target="_blank" rel="noopener noreferrer"&gt;&#10; &#10; &lt;img src="https://blog.maceage.com/bookmarks/page/54/images/1055997491.png" alt="PhoenixServer" loading="lazy" class="rounded-2 post-list-image bookmark-card__image"&gt;&#10; &#10; &lt;/a&gt;&#10; &lt;/div&gt;&#10; &#10; &lt;div class="flex-auto"&gt;&#10; &lt;h2 class="f3 lh-condensed mb-1"&gt;&#10; &lt;a href="http://martinfowler.com/bliki/PhoenixServer.html" class="Link--primary" target="_blank" rel="noopener noreferrer"&gt;PhoenixServer&lt;/a&gt;&#10; &lt;/h2&gt;&#10; &lt;div class="d-flex flex-items-center color-fg-muted f6 mb-2"&gt;&#10; &#10; &lt;time datetime="2013-08-24"&gt;Saved on 2013-08-24&lt;/time&gt;&#10; &lt;span class="mx-2"&gt;&amp;middot;&lt;/span&gt;&#10; &lt;span&gt;martinfowler.com&lt;/span&gt;&#10; &lt;/div&gt;&#10; &#10; &lt;p class="color-fg-muted mb-2"&gt;Why you should regularly smash your servers with a baseball bat (figuratively)&lt;/p&gt;&#10; &#10; &#10; &lt;div class="d-flex flex-wrap"&gt;&#10; &#10; &#10; &lt;a href="https://blog.maceage.com/bookmarks/tags/design-patterns/" class="Label Label--secondary mr-1 mb-1"&gt;design patterns&lt;/a&gt;&#10; &#10; &#10; &lt;a href="https://blog.maceage.com/bookmarks/tags/programming/" class="Label Label--secondary mr-1 mb-1"&gt;programming&lt;/a&gt;&#10; &#10; &#10; &lt;a href="https://blog.maceage.com/bookmarks/tags/tech/" class="Label Label--secondary mr-1 mb-1"&gt;tech&lt;/a&gt;&#10; &#10; &#10; &lt;a href="https://blog.maceage.com/bookmarks/tags/thoughtworks/" class="Label Label--secondary mr-1 mb-1"&gt;thoughtworks&lt;/a&gt;&#10; &#10; &lt;/div&gt;&#10; &#10; &lt;/div&gt;&#10; &lt;/article&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;div class="Box-row"&gt;&#10; &lt;article class="d-flex flex-column flex-md-row"&gt;&#10; &#10; &#10; &#10; &lt;div class="mr-md-3 mb-2 mb-md-0" style="flex-shrink: 0;"&gt;&#10; &lt;a href="http://martinfowler.com/bliki/ConfigurationSynchronization.html" target="_blank" rel="noopener noreferrer"&gt;&#10; &#10; &lt;img src="https://blog.maceage.com/bookmarks/page/54/images/1055997509.png" alt="ConfigurationSynchronization" loading="lazy" class="rounded-2 post-list-image bookmark-card__image"&gt;&#10; &#10; &lt;/a&gt;&#10; &lt;/div&gt;&#10; &#10; &lt;div class="flex-auto"&gt;&#10; &lt;h2 class="f3 lh-condensed mb-1"&gt;&#10; &lt;a href="http://martinfowler.com/bliki/ConfigurationSynchronization.html" class="Link--primary" target="_blank" rel="noopener noreferrer"&gt;ConfigurationSynchronization&lt;/a&gt;&#10; &lt;/h2&gt;&#10; &lt;div class="d-flex flex-items-center color-fg-muted f6 mb-2"&gt;&#10; &#10; &lt;time datetime="2013-08-24"&gt;Saved on 2013-08-24&lt;/time&gt;&#10; &lt;span class="mx-2"&gt;&amp;middot;&lt;/span&gt;&#10; &lt;span&gt;martinfowler.com&lt;/span&gt;&#10; &lt;/div&gt;&#10; &#10; &lt;p class="color-fg-muted mb-2"&gt;a bliki entry for Configuration Synchronization&lt;/p&gt;&#10; &#10; &#10; &lt;div class="d-flex flex-wrap"&gt;&#10; &#10; &#10; &lt;a href="https://blog.maceage.com/bookmarks/tags/design-patterns/" class="Label Label--secondary mr-1 mb-1"&gt;design patterns&lt;/a&gt;&#10; &#10; &#10; &lt;a href="https://blog.maceage.com/bookmarks/tags/programming/" class="Label Label--secondary mr-1 mb-1"&gt;programming&lt;/a&gt;&#10; &#10; &#10; &lt;a href="https://blog.maceage.com/bookmarks/tags/tech/" class="Label Label--secondary mr-1 mb-1"&gt;tech&lt;/a&gt;&#10; &#10; &#10; &lt;a href="https://blog.maceage.com/bookmarks/tags/thoughtworks/" class="Label Label--secondary mr-1 mb-1"&gt;thoughtworks&lt;/a&gt;&#10; &#10; &lt;/div&gt;&#10; &#10; &lt;/div&gt;&#10; &lt;/article&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;div class="Box-row"&gt;&#10; &lt;article class="d-flex flex-column flex-md-row"&gt;&#10; &#10; &#10; &#10; &lt;div class="mr-md-3 mb-2 mb-md-0" style="flex-shrink: 0;"&gt;&#10; &lt;a href="http://martinfowler.com/bliki/ImmutableServer.html" target="_blank" rel="noopener noreferrer"&gt;&#10; &#10; &lt;img src="https://blog.maceage.com/bookmarks/page/54/images/1055997508.png" alt="ImmutableServer" loading="lazy" class="rounded-2 post-list-image bookmark-card__image"&gt;&#10; &#10; &lt;/a&gt;&#10; &lt;/div&gt;&#10; &#10; &lt;div class="flex-auto"&gt;&#10; &lt;h2 class="f3 lh-condensed mb-1"&gt;&#10; &lt;a href="http://martinfowler.com/bliki/ImmutableServer.html" class="Link--primary" target="_blank" rel="noopener noreferrer"&gt;ImmutableServer&lt;/a&gt;&#10; &lt;/h2&gt;&#10; &lt;div class="d-flex flex-items-center color-fg-muted f6 mb-2"&gt;&#10; &#10; &lt;time datetime="2013-08-24"&gt;Saved on 2013-08-24&lt;/time&gt;&#10; &lt;span class="mx-2"&gt;&amp;middot;&lt;/span&gt;&#10; &lt;span&gt;martinfowler.com&lt;/span&gt;&#10; &lt;/div&gt;&#10; &#10; &lt;p class="color-fg-muted mb-2"&gt;Immutable servers cannot have their configuration changed once deployed, instead they are torn down and replaced with a new server based on an updated (version-controlled) definition.&lt;/p&gt;&#10; &#10; &#10; &lt;div class="d-flex flex-wrap"&gt;&#10; &#10; &#10; &lt;a href="https://blog.maceage.com/bookmarks/tags/design-patterns/" class="Label Label--secondary mr-1 mb-1"&gt;design patterns&lt;/a&gt;&#10; &#10; &#10; &lt;a href="https://blog.maceage.com/bookmarks/tags/programming/" class="Label Label--secondary mr-1 mb-1"&gt;programming&lt;/a&gt;&#10; &#10; &#10; &lt;a href="https://blog.maceage.com/bookmarks/tags/tech/" class="Label Label--secondary mr-1 mb-1"&gt;tech&lt;/a&gt;&#10; &#10; &#10; &lt;a href="https://blog.maceage.com/bookmarks/tags/thoughtworks/" class="Label Label--secondary mr-1 mb-1"&gt;thoughtworks&lt;/a&gt;&#10; &#10; &lt;/div&gt;&#10; &#10; &lt;/div&gt;&#10; &lt;/article&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;div class="Box-row"&gt;&#10; &lt;article class="d-flex flex-column flex-md-row"&gt;&#10; &#10; &#10; &#10; &lt;div class="mr-md-3 mb-2 mb-md-0" style="flex-shrink: 0;"&gt;&#10; &lt;a href="http://martinfowler.com/eaaDev/EventSourcing.html" target="_blank" rel="noopener noreferrer"&gt;&#10; &#10; &lt;img src="https://blog.maceage.com/bookmarks/page/55/images/1055997441.png" alt="Event Sourcing" loading="lazy" class="rounded-2 post-list-image bookmark-card__image"&gt;&#10; &#10; &lt;/a&gt;&#10; &lt;/div&gt;&#10; &#10; &lt;div class="flex-auto"&gt;&#10; &lt;h2 class="f3 lh-condensed mb-1"&gt;&#10; &lt;a href="http://martinfowler.com/eaaDev/EventSourcing.html" class="Link--primary" target="_blank" rel="noopener noreferrer"&gt;Event Sourcing&lt;/a&gt;&#10; &lt;/h2&gt;&#10; &lt;div class="d-flex flex-items-center color-fg-muted f6 mb-2"&gt;&#10; &#10; &lt;time datetime="2013-08-05"&gt;Saved on 2013-08-05&lt;/time&gt;&#10; &lt;span class="mx-2"&gt;&amp;middot;&lt;/span&gt;&#10; &lt;span&gt;martinfowler.com&lt;/span&gt;&#10; &lt;/div&gt;&#10; &#10; &lt;p class="color-fg-muted mb-2"&gt;Capture all changes to an application state as a sequence of events.&lt;/p&gt;&#10; &#10; &#10; &lt;div class="d-flex flex-wrap"&gt;&#10; &#10; &#10; &lt;a href="https://blog.maceage.com/bookmarks/tags/design-patterns/" class="Label Label--secondary mr-1 mb-1"&gt;design patterns&lt;/a&gt;&#10; &#10; &#10; &lt;a href="https://blog.maceage.com/bookmarks/tags/tech/" class="Label Label--secondary mr-1 mb-1"&gt;tech&lt;/a&gt;&#10; &#10; &#10; &lt;a href="https://blog.maceage.com/bookmarks/tags/thoughtworks/" class="Label Label--secondary mr-1 mb-1"&gt;thoughtworks&lt;/a&gt;&#10; &#10; &lt;/div&gt;&#10; &#10; &lt;/div&gt;&#10; &lt;/article&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;div class="Box-row"&gt;&#10; &lt;article class="d-flex flex-column flex-md-row"&gt;&#10; &#10; &#10; &#10; &lt;div class="mr-md-3 mb-2 mb-md-0" style="flex-shrink: 0;"&gt;&#10; &lt;a href="http://martinfowler.com/articles/injection.html" target="_blank" rel="noopener noreferrer"&gt;&#10; &#10; &lt;img src="https://blog.maceage.com/bookmarks/page/55/images/1055997423.png" alt="Inversion of Control Containers and the Dependency Injection pattern" loading="lazy" class="rounded-2 post-list-image bookmark-card__image"&gt;&#10; &#10; &lt;/a&gt;&#10; &lt;/div&gt;&#10; &#10; &lt;div class="flex-auto"&gt;&#10; &lt;h2 class="f3 lh-condensed mb-1"&gt;&#10; &lt;a href="http://martinfowler.com/articles/injection.html" class="Link--primary" target="_blank" rel="noopener noreferrer"&gt;Inversion of Control Containers and the Dependency Injection pattern&lt;/a&gt;&#10; &lt;/h2&gt;&#10; &lt;div class="d-flex flex-items-center color-fg-muted f6 mb-2"&gt;&#10; &#10; &lt;time datetime="2013-08-05"&gt;Saved on 2013-08-05&lt;/time&gt;&#10; &lt;span class="mx-2"&gt;&amp;middot;&lt;/span&gt;&#10; &lt;span&gt;martinfowler.com&lt;/span&gt;&#10; &lt;/div&gt;&#10; &#10; &lt;p class="color-fg-muted mb-2"&gt;Explaining the Dependency Injection pattern, by contrasting it with Service Locator. The choice between them is less important than the principle of separating configuration from use.&lt;/p&gt;&#10; &#10; &#10; &lt;div class="d-flex flex-wrap"&gt;&#10; &#10; &#10; &lt;a href="https://blog.maceage.com/bookmarks/tags/code/" class="Label Label--secondary mr-1 mb-1"&gt;code&lt;/a&gt;&#10; &#10; &#10; &lt;a href="https://blog.maceage.com/bookmarks/tags/design-patterns/" class="Label Label--secondary mr-1 mb-1"&gt;design patterns&lt;/a&gt;&#10; &#10; &#10; &lt;a href="https://blog.maceage.com/bookmarks/tags/programming/" class="Label Label--secondary mr-1 mb-1"&gt;programming&lt;/a&gt;&#10; &#10; &#10; &lt;a href="https://blog.maceage.com/bookmarks/tags/tech/" class="Label Label--secondary mr-1 mb-1"&gt;tech&lt;/a&gt;&#10; &#10; &#10; &lt;a href="https://blog.maceage.com/bookmarks/tags/thoughtworks/" class="Label Label--secondary mr-1 mb-1"&gt;thoughtworks&lt;/a&gt;&#10; &#10; &lt;/div&gt;&#10; &#10; &lt;/div&gt;&#10; &lt;/article&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;div class="Box-row"&gt;&#10; &lt;article class="d-flex flex-column flex-md-row"&gt;&#10; &#10; &#10; &#10; &lt;div class="mr-md-3 mb-2 mb-md-0" style="flex-shrink: 0;"&gt;&#10; &lt;a href="http://martinfowler.com/articles/mocksArentStubs.html" target="_blank" rel="noopener noreferrer"&gt;&#10; &#10; &lt;img src="https://blog.maceage.com/bookmarks/page/55/images/1055997429.png" alt="Mocks Aren&amp;#39;t Stubs" loading="lazy" class="rounded-2 post-list-image bookmark-card__image"&gt;&#10; &#10; &lt;/a&gt;&#10; &lt;/div&gt;&#10; &#10; &lt;div class="flex-auto"&gt;&#10; &lt;h2 class="f3 lh-condensed mb-1"&gt;&#10; &lt;a href="http://martinfowler.com/articles/mocksArentStubs.html" class="Link--primary" target="_blank" rel="noopener noreferrer"&gt;Mocks Aren&amp;#39;t Stubs&lt;/a&gt;&#10; &lt;/h2&gt;&#10; &lt;div class="d-flex flex-items-center color-fg-muted f6 mb-2"&gt;&#10; &#10; &lt;time datetime="2012-11-27"&gt;Saved on 2012-11-27&lt;/time&gt;&#10; &lt;span class="mx-2"&gt;&amp;middot;&lt;/span&gt;&#10; &lt;span&gt;martinfowler.com&lt;/span&gt;&#10; &lt;/div&gt;&#10; &#10; &lt;p class="color-fg-muted mb-2"&gt;Explaining the difference between Mock Objects and Stubs (together with other forms of Test Double). Also the difference between classical and mockist styles of unit testing.&lt;/p&gt;&#10; &#10; &#10; &lt;div class="d-flex flex-wrap"&gt;&#10; &#10; &#10; &lt;a href="https://blog.maceage.com/bookmarks/tags/code/" class="Label Label--secondary mr-1 mb-1"&gt;code&lt;/a&gt;&#10; &#10; &#10; &lt;a href="https://blog.maceage.com/bookmarks/tags/programming/" class="Label Label--secondary mr-1 mb-1"&gt;programming&lt;/a&gt;&#10; &#10; &#10; &lt;a href="https://blog.maceage.com/bookmarks/tags/talks/" class="Label Label--secondary mr-1 mb-1"&gt;talks&lt;/a&gt;&#10; &#10; &#10; &lt;a href="https://blog.maceage.com/bookmarks/tags/tech/" class="Label Label--secondary mr-1 mb-1"&gt;tech&lt;/a&gt;&#10; &#10; &#10; &lt;a href="https://blog.maceage.com/bookmarks/tags/testing/" class="Label Label--secondary mr-1 mb-1"&gt;testing&lt;/a&gt;&#10; &#10; &#10; &lt;a href="https://blog.maceage.com/bookmarks/tags/thoughtworks/" class="Label Label--secondary mr-1 mb-1"&gt;thoughtworks&lt;/a&gt;&#10; &#10; &lt;/div&gt;&#10; &#10; &lt;/div&gt;&#10; &lt;/article&gt;&#10;&lt;/div&gt;&#10;&lt;/p&gt;&#10;&lt;/div&gt;</description></item></channel></rss>