Home » Software Development » Page 3

Software Development

Attacking Your Inputs

While I’ve rallied against painting all code with final in Java, and have accepted that it’s handy to have const in JavaScript as it generally forces some discipline into free-for-all code, there’s an underlying rule which could be used to make me want more constants everywhere. The rule is that a function should return something. This can be enforced, to ...

Read More »

Where Is This Coming From?

In enterprise software the top one question you have to answer as a developer almost every day is “Where is this coming from?”. When trying to fix bugs, when developing new features, when refactoring. You have to be able to trace the code flow and to figure out where a certain value is coming from. And the bigger the codebase ...

Read More »

How Do I Know If I’m Testing Behaviour?

Throughout the Test Smells catalogue, there are signs you may be testing your code, rather than its behaviour. Even in the humblest of unit tests, the overriding rule should be: Make your code perform its job and see what the result is. Developers who write code and its tests can often misunderstand this as produce tests for each line and ...

Read More »

Do I Need an API Gateway if I Use a Service Mesh?

This post may not be able to break through the noise around API Gateways and Service Mesh. However, it’s 2020 and there is still abundant confusion around these topics. I have chosen to write this to help bring real concrete explanation to help clarify differences, overlap, and when to use which. Feel free to @ me on twitter (@christianposta) if ...

Read More »

Clientside Search With ElasticLunr.js

Any blog or documentation website needs Search functionality. You can achieve this in many ways, and most likely a server-side solution will be chosen. However, if you don’t want to deal with any backend, you can implement it all on the clientside, thanks to lunr.js. I first discovered Lunr.js a few years ago, but I didn’t use it since I ...

Read More »

The Scope Of Automation Testing In The Intelligent Digital Mesh

Intelligent Digital Mesh is the entwining of people, devices, content, and services enabled by digital models, business platforms and a rich, intelligent set of services to support digital business. We have witnessed the implementation of AI in every technology to leverage the benefits of autonomous systems. Enterprises are now focusing on using AI with technologies like blockchain and immersive technology ...

Read More »

Create Git patches from command line

Git patches are an easy way to apply changes to a project if you don’t want to go through the regular commit-pull-request flow. Patches are files that contain an equivalent diff of a Git commit. You can create a patch of your modified working state using git diff. The diff output is in the correct patch format. $> git status ...

Read More »

Object Cohesion: Why It Matters

You most probably know about Elegant Objects (EO), an alternative object-oriented paradigm, which claims that objects must be immutable, have no static methods, never use NULL in their code, use no annotations, and so on. We, the EO adepts, claim many things, but not so many people believe us. Those non-believers say that we are trolls, at best. Their main ...

Read More »