In my previous post, I introduced the SOLID design principles and looked at the Single Responsibility principle (SRP) in more detail. This week we’ll investigate the Open-Closed principle (OCP).Continue reading
You may have heard of SOLID. The SOLID design principles are well known design principles in object-oriented software design. The principles were first promoted by Robert C. Martin (also known as Uncle Bob). Later Michael Feathers introduced the SOLID acronym.Continue reading
In this final installment on modules, we’ll look at a simple example of compiling and packaging a module.Continue reading
Obfuscation: The action of making something obscure, unclear or unintelligible.
I had such fun with my last two words of the week that I decided to keep the theme today. (For the developers, now you know where the term “code obfuscation” comes from.)
Recently someone asked me about the concept of a “full-stack developer”. This is one of those buzz words that recruiters and managers love. So what, if anything, does the term “full-stack developer” mean?Continue reading
Everybody has a mobile phone. The chances are good that you are reading this on your phone. We do almost everything from our phones, and that means our phones have access to a lot of personal data.
Your smartphone is essentially a mini-computer. So most of the threats we face on our PCs apply to our phones too. Websites that contain malware can infect a mobile device and compromise both your data and device.Continue reading
We’ve all heard about ransomware attacks, and how they are increasing all the time.
Ransomware is a demand for payment in exchange for returned control over (your own) data or systems.Continue reading
One of the key design drivers of the Java module system was strong encapsulation. By default, a type in a module is not accessible to other modules unless it’s a public type and its containing package is exported. We can choose exactly which packages we want to expose; the rest are hidden.Continue reading
Crogglement: The state of being paralysed with shock or surprise.
That’s my word of the week. It is one way to describe my state of mind last week when I was doing some password hygiene. Other words would be more familiar to you, but less polite.
My experience overlaps two topics that are critical to all of us: security and privacy. I’ll recap on two essential principles, and then share my experience.Continue reading
Last week we looked at the
requires directives in more detail. This week we’ll cover services contained in modules. These are specified with the
If Lewis wasn’t such an outstanding Java lecturer, I’d want to hire him as a handyman. He enjoys DIY tasks, and does them with the same precision as he does everything else. (If you’ve attended one of his courses, you’ll know what I mean. I draw a vague shape on the whiteboard and ask my class to pretend it’s a square. Lewis draws a square.)
Apart from his natural enthusiasm for making things work, Lewis has two other qualities that make him an amazing handyman. The first is his attention to detail — because yes, the devil IS in the details. The second is his experience with his tools.
Now I am also a stickler for detail, but my handy(wo)man skills are woeful. And part of that is because I so seldom use a hammer or a screwdriver or a drill. So when I do, the holes I drill are skew and I hit my fingers with the hammer.
There is an important lesson in this.Continue reading