fbpx

Series: Introduction to the MEAN Stack

In a new article series, I would like to offer you an entry into the so-called MEAN Stack . This is a group of different technologies that facilitate the development of web applications. In the first article of this series, I will explain the term more closely and formulate the objectives of this series.

A stack is a collection of different technologies to solve a specific task. The goal of the MEAN stack is to improve and accelerate the development of web applications. The MEAN stack consists of the NoSQL database MongoDB , the server-side framework Express , the client-side framework AngularJS  and the server runtime environment Node.js . The initial letters of these four frameworks yield MEAN. All these frameworks are based on or communicate via JavaScript. The reduction to a primary development language is an essential part of the MEAN concept and is intended to speed up and improve the development process.

The MEAN stack is in direct competition with the classic LAMP stack, which stands for Linux, Apache, MySQL and PHP or Perl or Python. Optionally, Linux can also be replaced by Mac or Windows, so that one speaks of MAMP or WAMP. The main differences to LAMP are the choice of a NoSQL databaseand a non-blocking input-output model for running the server-side scripts. Both terms are explained in more detail in the following articles.

MEAN is essentially a marketing word. It can be understood as an allusion to the Lean concept , which is often referred to as Lean Management, Lean Startup or Lean Software Development. Lean generally describes a simplification of processes and the avoidance of unnecessary tasks. MEAN supports this concept.

The origin of the term MEAN goes back to Valeri Karpov who published the blog article ” The MEAN Stack: MongoDB, ExpressJS, AngularJS, and Node.js ” on April 29th, 2013 . One day later, the term got much more prominent through a second release on the official MongoDB blog . However, the idea of using JavaScript for the development of web applications is already older .

The term MEAN should not be viewed too strictly, but above all as concept and entry into a JavaScript-based technology stack. Individual components could be exchanged and adapted to suit their own preferences and knowledge. So the database MongoDB could easily be replaced by CouchDB or AngularJS by the similar framework Ember.js .

MEAN also does not refer to the complete technology stack. For example, Express is based on the server-side Framework Connect , which is also presented below. Many developers use a further abstraction layer, such as Mongoose , to communicate between Node.js and MongoDB . In addition, HTML and CSS are used for the presentation of the application, which  can also be simplified by additional frameworks such as bootstrap . As a result, testing frameworks, build systems and preprocessors still remain unaffected, but they are also part of a modern development workflow. You can also speak of MEAN + or MEAN * .

Even though all of these technologies and frameworks simplify the development of web applications, they are a complex network of different conventions and APIs, which can be very confusing to newcomers. The following articles will help you get started with the subject matter and lead you step by step through the aforementioned technologies. At the end of the article series we will develop a small web application using the presented technologies.

Finally, a few hints: The later examples I have developed under Mac OS X 10.8.5. While the MEAN Stack is generally platform-independent and also works on Linux, Windows or older versions of Mac OS X, I do not go into these platforms. However, apart from some differences in command line commands and installation instructions, the explanations should apply equally to each platform.

This series is also for advanced developers who have no experience with the MEAN stack. The functionality of a terminal or the syntax of JavaScript is therefore not explained in detail within this series. In the examples, not all of the code lines are explained individually, but only concepts or APIs that are relevant to the specific subject or are relevant for the subsequent explanation. I also often consciously omit best practices, so as not to convey too much information at once. The ultimate goal of this series is to provide a quick and practical introduction to the subject matter. For this reason, within this series a number of frameworks are used which simplify the development. This sometimes leaves some basic,

If you do not understand something, do not be afraid to ask in the comments.

In the next article, we will install Node and MongoDB before we start with the programming examples.

Have fun with the article series!

Categories: Knowledgebase

0 Comments

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.