M:TG Game - Event Bussing

I've been pondering how to do some µObjects in a more intelligent system for a while. I'm going to try to use Magic: The Gathering for this. Much like the poke one; the idea here is to explore µObjects and how they can be applied in…

µObjects: Fluent Types

I expect us all to be aware of the anti-pattern Primitive Obsession. If not - there [http://wiki.c2.com/?PrimitiveObsession] are [https://refactoring.guru/smells/primitive-obsession] some [http://blog.thecodewhisperer.com/permalink/primitive-obsession-obsession] quick [http://blog.ploeh.dk/2011/05/25/DesignSmellPrimitiveObsession/] resources [https://lostechies.com/jimmybogard/2007/12/…

µObjects: Code Free Constructors

One of the big practices I got from Elegant Objects [https://quinngil.com/2017/08/06/book-review-elegant-objects-vol-1/] is the concept of a code free constructor. Your constructor should have zero logic. Let's see why! Always born My favorite reason for this is that you can never fail to…

µObjects: Being CLEAN

Beyond Legacy Code's CLEAN I've read David Bernstein [https://twitter.com/ToBeAgile]'s Beyond Legacy Code [https://www.amazon.com/Beyond-Legacy-Code-Practices-Software/dp/1680500791] and clearly enjoyed it. :) One of the concepts he expands on in the book is "Clean Code". He takes this…

µObjects: Being Nonredundant

Redundant code is code that changes at the same time for the same reason. Part of object oriented programming is limiting change to a single place. If it changes, it should change in one place. How do µObjects encourage being nonredundant? By focusing on doing one thing. Let's…

µObjects: Being Assertive

Being assertive is about being self-responsbile. Being assertive is about an object being lazy. This also has the object doing all behaviors for the state it holds. It follows from encapsulation that an object will be assertive. How do µObjects encourage this? µObjects do a single thing, and you need…

µObjects @ AONW

I went to Agile Open Northwest [http://www.agileopennorthwest.org/2018/]. IT WAS AMAZING! I don't go to a lot of conferences; but this was a wonderful experience. Super friendly, super welcoming, super supportive. I've been developing the µObjects idea for about 7 months now; and…

µObjects: Being Encapsulated

Encapsulation for objects is, IMO, how well the data is hidden. Encapsulation is only acting via behavior from an object. Never getting data and doing something. A well encapsulated object is also a very cohesive object. These traits tend to enhance each other. µObjects encourage this. How do µObjects encourage…