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. I very strongly disagree with it. When it's all about the prefix, then you're not effectively encapsulating behavior. If you're [Read More]

µ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 of those links are going to be useful to understanding what I'm striving for here in the big picture. Possibly [Read More]

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 in the project at work. public class CacheFoo : IFoo{ private ICache<IFoo> _cache: Private IFooer _fooer: //Berevity [Read More]

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 the MicroObject concept to where it is now. One of the practices in Object Oriented Programming is Composition over Inheritance. [Read More]

µ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 this? As an industry, we're pretty lacking on encapsulating things. At the most basic level; µObjects want a single behavior. [Read More]