Posts

Showing posts with the label codemanship

Saving the SOLID posters for Posterity

Image
Back in 2009, a fine developer for Los Techies produced a set of mocked up motivational posters representing the SOLID principles . She was even kind enough to release them under a Creative Commons license. But as is the way of all things, internet rust has set in and the images have been unlinked from the original article during an archive exercise - but they live on throughout the internet! I have collected the images here - and would like to say " Thank you, River Lynn Bailey ". This is a great, amusing and educational resource for everyone.

Ethical Development: The responsibility of software developers in society

Image
“ May you live in interesting times ”, or so goes the ancient Chinese curse. That certainly seems to be applicable to the past few years, arguably even decades. Technology marches on apace, creating a razor sharp double-edged sword that is capable of holding governments to account, yet also capable of slicing into our personal privacy and stifling dissent. Social media has now moved on from an innocent way of staying in touch with remote friends, encouraging collaboration, tolerance and discussion, and has now been weaponised in order to influence opinions, support corrupt organisations, and manipulate the Overton Window . We now have wannabe dictators attempting to force online platforms to treat speculation and lies the same as undisputed truths. We even have leaders of hugely influential companies abdicating their social responsibility to act against bad actors, allowing their platform to be taken over by fascist and racist agendas, presumably to protect bottom line profit.

It's time to make immutability the default

Right. I have to get this off my chest. A follow-on from my habitual coding observation in my previous article . How many people habitually write Java code like this? (Clue: I see it a lot) public class Article { private String title; private String author; private List tags; public void setTags(List tags) { this.tags = tags; } public void setAuthor(String author) { this.author = author; } public void setTitle(String title) { this.title = title; } public String getTitle() { return title; } public String getAuthor() { return author; } public List getTags() { return tags; } } Then you can create an object an use it with something like: Article article = new Article(); article.setAuthor("Cam M. Bert"); article.setTitle("French Cheeses"); article.setTags(Collections.asList("cheese", "food")); // etc etc G