The words “coder” and “programming” are a bit loaded. For people working outside the technology field, these terms could conjure up a clichéd mental image. Like someone dressed in pajamas, sitting in a basement in front of a huge computer monitor at 2am, typing frantically on a keyboard in-between chugs of an energy drink. However, the reality is much different. Instead of that, picture this: a team of men and women with a wealth of knowledge on computer languages and mathematics, working together in a bright office full of natural light, to build useful websites, applications and software. This picture is much closer to the back-end web development reality. But how does the team go about actually creating these solutions?
The work of back-end developers involves mentally swimming around in some pretty complex concepts. And like the ocean, there are ever-changing conditions that can play havoc on a website’s data management and production. Our calling is to keep websites safely afloat, running swiftly, and avoid them being capsized by a rogue wave of data and visitors. Therefore, our priorities are system availability, efficiency, and security. Here’s how we wield this trident of priorities:
The performance level for each priority is not mutually-exclusive, and each prong of the trident influences the others. We work with integrated systems that aren’t shipwrecked on an island somewhere. It's necessary for team members to be thorough and consider each detail, so everything is as secure, efficient, and available as possible.
As mentioned in the beginning of this article, back-end web development involves a lot of coding. And libraries. But the libraries we work with aren’t full of books like you might imagine. The library we’re describing here is a gathering of code that we can reuse. Web developers essentially create re-useable computer code, like stacks, searches and queries, which is flexible for multiple purposes. These purposes are what drive our daily tasking.
We integrate databases, APIs, services and other third-party resources with the system. In the library of olden times, there were atlases, providing large maps of physical locations. Today, location-finding using modern maps doesn’t typically start in an atlas or roadmap. Instead, a mobile electronic device like a smartphone accesses a website, which collects location information of the user. Then the user enters the destination address, and the website uses a look-up function from the United States Postal Service database to perform numerous calculations. Calculations like the distance between points, the likely route desired if you are driving between points, the written instructions for logically navigating each step of that distance, and so on. Maps these days even pull from other databases, such as nearby restaurant locations, and more. None of that data resides on your website, it is pulled in from all the other sources that the back-end is programmed to access. Some of those sources provide paid data, in the form of a subscription, while others are free. This is what makes finding local search results possible.
Whenever a command is issued to the system, it is called a “call.” Every call that comes into the system is tracked, and these lists are each called a “log.” Imagine you are an online bookseller trying to decide what new inventory to purchase from your supplier. You have your actual sales data, but may also want to find out things like what people are searching for on your website (authors, genres, and other key terms). Back-end web development sets up the system to accept calls, generate logs, then output reports so that you can find out the different things you want to about your website. This is essentially the method for tracking interactions and data flow, and it can also trigger system processes, like automated reporting through an email. Common things that logs can enable include the system sending you an error message when a system error occurs, including where in the code the error occurred, so that it can be corrected (debugging).
As mentioned earlier, this means setting up system activities that will occur without any user interaction, while helping to expedite and economize data flow between the server and other services or resources. Remember that the back-end places high priority on system availability and efficiency. As a result, we have to program the system to re-order and queue demand properly, helping ensure there aren’t going to be too many calls at any given time that could blow out the system and cause it to error out of functionality.
For online e-commerce, that might look like an inventory report that runs the same time every day, or multiple times per day when demand isn’t high. Or maybe an automatic email message that the system sends to a sales manager at the end of each week, providing a summary of customer order demand in hourly increments. Back-end web development writes the report code, then integrates it to the system so that it triggers the desired outputs, on the correct day, at the correct time, based on a time reference service.
The information that a system and user (client) send back and forth over the internet are broken up into data packets. If a user logs onto your website, the back-end issues them a security token that is based on their login and password. Each time the user makes a request of the system, the data packets they send include the token right in front, whose code helps to validate they are who they say they are. All of the considerations and steps involved in this exchange are programmed into the system by the back-end web development team, so that high adherence to established security protocols can be maintained.
The evolving menu of programming languages and frameworks requires back-end web development teams to stay nimble, while maintaining a full understanding of pros or cons to each approach. Let’s use a dinner analogy to illustrate.
Imagine you are hosting close friends and family for a special meal, where you want to cook something everyone will like. You think about allergies, food restrictions, personal preferences, seasonality, and many other things to determine the ingredients needed. Similarly, for a back-end web development project, you consider key elements involved, including:
These define the environment, which is the who/what/when/where of our project, or in this analogy, the meal.
After you have sized up the key elements of the environment, then you consider the programming approach that will work best under those circumstances. This language or approach is like the raw materials of a certain dish, akin to ingredients. But instead of cheese, sauce, meat and pasta for spaghetti, you have programming languages like:
These languages each build a slightly different tasting spaghetti, depending on how you use them (like a recipe). The spaghetti recipe is a framework, like NodeJS, .NET and Angular to name a few. One calls for Italian sausage, one calls for ground beef, one is a shrimp scampi, and so on.
As you are cooking up your tasty spaghetti, the next consideration is where everyone will sit. After all, your meal has to be served on dishes on a table in order to be consumed. Similarly, data is accessed and written to database tables, accessible through queries. A key consideration now is whether to use a:
This is one of those decisions for back-end web development that can really make or break system performance. Be sure to select the right type of database, so that your data is available and can be served as efficiently and securely as possible.
The final item is where the system will be hosted. Imagine you are having that spaghetti dinner with friends in your living room, and a roommate keeps coming in and out of the front door, interrupting the conversation. Or let’s say you are having it in a dining room… but your daughter (who doesn’t like spaghetti) is over in the corner, loudly playing on her tablet, while your group is trying to enjoy the meal.
Like the meal, there are performance and preference considerations involved with where data will be served from. Dedicated hosting, whether it is on-premises or in a datacenter, may be more expensive but necessary for the particular needs of a company. However, a cloud web hosting platform at a data center may better meet all of the needs and be less expensive. By clearly understanding the benefits and challenges to hosting the site or app through Azure, Amazon Web Services (AWS) or Google Cloud Platform (GCP), back-end web development teams can build a system functioning at the prescribed standards of availability, efficiency and security.
As back-end web development engineers, we design, build, deploy and administer systems that move data according to a specification. Like a proud cook in the kitchen, we love getting rave review for the meals we make. But with all the requisite knowledge and a clear understanding of the initial environment, things can still change – especially over time. Therefore, we consider scalability and how user needs will evolve. To get things started on the right foot and help avoid issues down the road that require mitigation, these are four questions to ask at the onset of your project:
Keeping the system back-end’s data available, efficient and secure ultimately starts with the right build from the beginning. Effective back-end web development teams apply best practices for security and storage, including standards like OWASP (intrusion prevention), as well as recommended methodologies from suppliers and programming communities. Links to articles related to back-end web development are below for your convenience. If you are interested in learning more about how our back-end web developers build best-in-class websites and web applications, contact us today to schedule a call.
Published on: August 01, 2022 by Robert Glenn, Senior Software Developer