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: Fluent Types

I expect us all to be aware of the anti-pattern Primitive Obsession. If not - there are some quick resources available. Now that we have an idea of Primitive Obsession; I'll give my reason(s) for not using primitives. The core of Primitive Obsession is to not represent a concept…

µObjects: Where our code meets the user

There's a couple types of places where the code we write interacts with the code someone else wrote. This could be another team, a 3rd party library, or the operating system. When we interact with these components, we're tying our code to their code in some fashion. The more these…

µObjects: Where code meets Operating System

There's a couple types of places where the code we write interacts with the code someone else wrote. This could be another team, a 3rd party library, or the operating system. When we interact with these components, we're tying our code to their code in some fashion. The more these…

µObjects: Composition over Inheritance

Inheritance is a code smell. Composition over Inheritance This is a known suggestion to improve the maintainability of software. How does this play into microObjects? Everything has a single responsibility. It's doing A thing; as I talk about in µObjects: Principles to code by. Composition over inheritance allows µObjects to…

µObjects: When to instantiate

In object oriented programming we need to create objects. It's kinda how things get done. Here's a high level question for you - When do we instantiate an object? Pull up a few source files - Where do you see object creation happening? Is it scattered through the file? No…

µObjects: Small and Focused

Our goal as software developers is to produce code that can be easily maintained. This is frequently a challenge; as writing good code is hard. µObjects is a way of Object Oriented Programming that I've found gives us this. There are a number of ways that µObjects improve the maintainability…

µObjects: Principles to code by

How do we improve the quality of code produced by our industry? That's what I want to see happen. It's a young industry which is largely trying to figure out how to produce high quality code. It's fairly effortless to make a computer do something. This is where most engineers…