In the final instalment of our terminology guide, we delve into the world of web development. With many of us used to being on the end-user side of web development, some of these words can seem like they are a different language all together. To prevent information overload, we compiled a list that just scratches the surface of what is involved in developing a website.
The web development dictionary:
As with spoken languages, a programming language is designed to help humans and machines communicate. Each language has its strengths and is used for a particular type of software development – some are better for desktop applications while others are more suitable for web sites.
The acronym of Application Programming Interface. APIs allow programs to talk to each other, regardless of the programming language they were created in. For example, a mobile’s camera application might use the phone’s hardware API to request the current location and then use Facebook’s API to upload the photo and tag it with the location.
This describes the structure of the code within an application. Good applications have a well-defined structure divided into different layers. For example, web applications typically have presentation, logic and data storage layers.
This refers to the combination of operating system, programming language, server software and database used to create a web application. While there are hundreds of possible combinations, there are several common stacks that work well. Examples of web server setup includes a Microsoft stack of Windows, IIS, .Net and MSSQL and an open source stack consisting of Linux, Apache, PHP and MySQL (referred to as LAMP).
A reusable platform or skeleton used to develop applications. Frameworks provide programmers with tools to accomplish common tasks like accessing databases or displaying graphics, so they don’t have to write everything from scratch.
The abbreviation of Integrated Development Environment – it’s the software used by programmers to create applications. The right choice can save a lot of time.
A structured collection of data stored on disks. Typically, a database consists of a collection of linked tables, similar to sheets in a spreadsheet. It also includes an interface to query the data, which retrieves a particular set of data from the database.
This is where websites live. A web server is simply software that is used to host web applications and deliver content to web browsers. Around two-thirds of all websites run on an open source web server called Apache.
Way back in the old days (10 years ago), a server would typically be a powerful computer running a server operating system. These days, virtualisation means that the physical hardware is separated from the operating system and many different server instances can run simultaneously on the same hardware. This makes it easier to scale applications by adding more server resources and offers higher-availability by removing a single point of failure.
This term is used widely in the tech world and can be applied to many different things. Generally though, it refers to a service hosted on the Internet that provides some functionality for applications. This often includes things like file storage, email or data synchronisation. An example of a popular cloud service is Dropbox.
In order to detect and fix software faults and bugs, we need to invest time in writing and testing our code and applications. Tests not only assess whether an application behaves as expected in various situations, but they also analyse the performance when hundreds of concurrent users access it.
Agile Software Development
Rather than spend months or years developing a system, the agile method breaks the development process down into a series of what are commonly referred to as short sprints. This approach lets developers continuously deliver updates or new functions to end users, enabling them to receive feedback throughout the process and helps prevent large-scale failures in systems development programs that span a long time.
When a team of developers work on the same project, continuous integration refers to the practice of frequently combining the changes they make in order to prevent conflicts in the code they are working on. For this purpose, tools like version control are crucial. The aim is to automate the process of testing and committing the code, building the application and if everything passes the tests, deploying the application.