Composer is a dependency manager for PHP, the programming language is written in. It allows to automatically install and update third-party packages and libraries that are used in an application together with their dependencies. Composer can also be used to update Drupal core and contributed modules. Reusing third-party code from other developers reduces costs and provides access to mature solutions that have been tested and improved by many programmers.
Short for Command Line Interface. A software that has no . The user issues commands to the program in the form of successive lines of text. There has been one very popular CLI tool for for many years: , short for Drupal Shell. Starting with Drupal 8 a second CLI tool has been introduced called Drupal Console. Those CLI tools are used by developers and administrators, ordinary Drupal users will most likely never get in touch with them.
Short for Graphical User Interface. This is the part of software which is visible on the screen and allows the user to interact with the software and to display content, depending on what the purpose of the software with that happens to be.
Working in teams, but also for individuals, it is helpful if not required to define the key processes, especially those that will be repeated, in a structured way. Such a definition is then called a workflow and it serves multiple purposes. First of all it can be used as a checklist such that the people in charge of a task can walk through the workflow and followed the previously specified sequence. In addition, a workflow definition improves quality of output as it almost guarantees the final result of such a process to meet the standards previously defined. And last but not least, such a workflow specification is excellent input for somebody who is in charge of developing the automation of very regular tasks.
The process of initially setting up or later updating a live website. There are lots of components (server configuration, code, database, files, permissions) and steps involved so that such a deployment task can take a while and needs to be executed very carefully to make sure it doesn't break anything. can be done manually - which is not recommended - or automatically. With automation it is very easy to also include additional tasks like testing and pre-processing into the task and the expected result is always going to be the same. Nothing gets missing and it will only always happen, if all conditions (tests, coding standards, etc.) are met.
Testing has become an essential part in software development. Testing tries to identify and prevent defects in software before it is delivered to customers. Tests should be conducted frequently (i.e. on every single change of the underlying code) and provide objective information about the quality of software. Both are difficult to achieve manually. Hence testing should be automated. For web projects, there are a number of test types: , , User Interface Tests.
at the smallest granularity. Ideally, for every single function in a software project there should be a corresponding test routine, which makes sure that the function really delivers what it should be doing by setting some context and then calling the function in both meaningful but also wrong ways to see if the function returns what's expected for each of those tries. It is actually as important to also test "stupid" function calls just to make sure that the function is able to handle them too and doesn't crash the whole project.