Technical Practices: Low Coupling

Low coupling can mean a few flavors of things depending on your context. My general definition of Low Coupling is "Not knowing what it is, just what it does". This allows us to interact with objects without knowing the underlying implementation, and unable to make any assumptiosn about…

Technical Practices: No Primitives

No Primities. My idea with not using the default data types centers around them being data storage. Working on object oriented langauges, we don't need to be concerned about the raw data storage mechanism. We deal with objects that communicate with each other, not raw data we process. Then how…

Beneficial Results: Code Reuse

I don't remember exactly where or who, but writing re-usable code was impressed upon me as an important thing I now completely disagree with that. Do not write reusable code. One of the worst things you can do when writing code is to make it "re-usable" before you…

Teach Yourself MicroObjects: Add Two Ints

I'm working on ways I can share the practices and mindset that allows me to create MicroObjects. One of the suggestions I've gotten from a co-worker, John, was to create as simple of a project as possible and show my steps to breaking it into MicroObjects. FizzBuzz as a project…

Technical Practices: Never Return Your Data

No Getters That's the normal form of this technical practice. No Getters There's some uncertainity around what "No Getters" means. OK, there's two versions of it. Yegor Bugayenko in Elegant Objects Vol. 1 says, It's all about prefixes That's section 3.5.3 in Elegant Objects Vol. 1.…

µObjects: Unit Testable UI Interactions

This is a follow up to the Hotel Pattern which I've pretty much abandoned, though it's concepts and ideas have evolved into my current practices. It ties into the Interface Overload mechanism I discovered as well. Though, neither fit well into the new µObject paradigm that I'm developing in. Both…

My Thoughts: Pass through vs Base class

A conflict that has come up a few times is using composition and a pass through or a base class I favor pass through; I write it that way Everytime. The other engineer on the project favors a base class. Here's an example of what we've encountered a few times…

My Thoughts: 'Interface' isn't harmful

My thoughts about Object Oriented Programming has evolved over the years. Especially in the past 6 months. My development of MicroObjects has caused a lot of thinking about Object Oriented Programming and how to develop better and more maintainable software. A lot of great discussions that have certainly helped drive…