Tdd

Stop hand-refactoring and learn your automated refactoring tool

6 minute read Published:

Refactoring is the lifeblood of a nimble codebase, but we need to stop hand-refactoring via Ctrl-C/V and start using our automated refactoring tool. Prepare to be convinced, then watch in amazement as you memorize your favorite refactoring tools’ keyboard shortcuts in two hours flat – and remember them forever. You need an automated refactoring tool Refactoring without tests is dangerous Refactoring without tests and without an automated tool is like walking a tightrope over Niagara falls without a safety net - with your product and entire team standing on your shoulders.

Brute-force all the things?

6 minute read Published:

These days it’s hard to tell whether the computer saves us more time than it wastes. However recently I had an experience programming in Ruby that demonstrated to me that the computer can be our modern time-saving friend, especially when wielding a language like Ruby, delicately designed to just “get out of your way” and let you program. The story involves number crunching, eyebrow scrunching, and in the end, an unabashed brute-force beauty.

IOP vs OOP? -- No contest.

2 minute read Published:

In the ring today we have Interface Oriented Programming (IOP) vs Object Oriented Programming (OOP). What’s the difference? TL;DR: In my opinion there is no difference. IOP is merely clarifies OOP, a reminder to program to interfaces, not implementations. Object oriented programming has always been about interfaces. That’s the whole idea. You take a cluster of data, encapsulate it, infuse it with behavior, and it’s ready to interact with other objects as long as they respect the interface’s contract.