Tag: software craftsmanship
-
The 2 IDE Shortcuts You Should Know and Use – But Probably Don’t
There are two keyboard shortcuts that I recommend to other developers all the time. You don’t need to know every keyboard shortcut, and for things you rarely need the time saved compared to clicking is minimal, but these two really make a difference. I’m talking about Search Everywhere and Context…
-

Refactoring (Mis)understood
People refer to all kinds of changes to existing code as refactoring, which is a common case of semantic diffusion. Like many terms in software development, “refactoring” is often used very loosely by practitioners. Martin Fowler Refactoring: Improving the Design of Existing Code (p. 45).Pearson Education. Kindle Edition. If you…
-

Cargo Cult in Software Development
The phenomenon of cargo cult is very common in the software industry. With this article I want to raise awareness for the problem of cargo cult and provide some examples of topics that are (in my experience) especially prone to it. The goal here is not to educate about those…
-

The Purpose of Getters and Setters
First of all, I don’t advocate for getters and setters at all. Don’t use them (especially setters) if you find an alternative. There usually is a better design. I won’t go into that here. I want to focus on a bigger, very common problem: Many of the people who use…
-

Effective Git: Beyond the Basics
We all have to start somewhere. For most of us, our Git journey begins with about 5 commands and the mental model of a file-sharing tool like Dropbox or OneDrive: Upload my files, download my colleagues’ files, maybe resolve a conflict now and then (“use mine”). This is fine, we…
-

The CI/CD Misconception
The terms CI (continuous integration), CD (continuous delivery), and the umbrella term CI/CD are often misunderstood and misused. Many think that continuous integration is primarily about automation and tooling, i.e., having an automated build pipeline, often evidenced by them referring to their pipeline as “the CI”. They are unaware that…
