Backend code, even though it’s not something that end user interacts with directly, is a crucial part of modern application development. A typical user is usually oblivious to what’s happening behind the UI but without the data in the back even the best UI possible is nothing but a shiny exterior.
Let’s look at what are the main parts of backend development are. For a second, let’s assume we’re talking about a full blown desktop or web application and not a standalone “glue type” script, though those are much more common nowadays, especially with the rise of cloud technologies.
Origins of data and where it’s stored. No matter where the data is coming from (APIs, files, streams) it usually ends up in a database of sorts. Database usually serves two main purposes: persistent storage (for retaining historical data) and retrieval engine. RDBMS (Relational Database Management Systems) comprise the most common type of databases used.
We have our data, now what? This is where the fun starts – you take the data (that “take” part is something that is usually referred to as “I/O”), process it (business logic), maybe display it on UI and either save it back to the database or send it out. Both db writes and sending data out are part of I/O functionality as well.
From above description you can see that a lot is going on besides the actual “work”,i.e. a lot of I/O code is running behind the scenes. Even though it’s supposed to be invisible to the end user it is absolutely not the case if it’s poorly developed and not performance tested. How many times have you encountered a web site which seems to be acting normally until the moment you press “buy” or “process” button and suddenly seconds turn into minutes and minutes turn into hours....
In our future posts we’ll look at specific issues and multiple ways of resolving them based on our extensive experience in the field.