background preloader

Pattern/Practices & Principles

Facebook Twitter

Die Testpyramide. Seit einigen Monaten stosse ich immer wieder auf das Konzept der Testpyramide.

Die Testpyramide

Ich finde dieses Bild sehr passen, da es die wesentlichen Aspekte auf den Punkt bringt. Um ein System wirklich zu testen gilt es mehrere Ebenen anzuschauen. Die Testpyramide zeigt diese auf und vermittelt auf eine leicht verständliche Weise wie sich die Anzahl der Testfälle staffeln soll: Unit-Tests als Grundlage Unit-Tests bilden die Basis der Testpyramide. Damit Tests so schnell sind dürfen sie nur wenig testen. Die Geschwindigkeit alleine kann aber nicht das einzige Kriterium für einen Unit-Test sein. FIRE: Fast, Informative, Reliable and Exhaustive Integrationstests Zu wissen dass der eigene Code für sich alleine funktioniert ist ein Anfang. Auf dieser Ebene werden all die Abhängigkeiten angeschaut die man bei den Unit-Tests entfernt hat.

Da weniger Tests mit den Umsystemen nötig sind wirkt sich deren Ausführungsdauer nicht so stark auf die Länge des gesamten Testlaufs aus. Akzeptanztests Gefällt mir: Become a Programmer, Motherfucker. If you don't know how to code, then you can learn even if you think you can't.

Become a Programmer, Motherfucker

Thousands of people have learned programming from these fine books: Learn Python The Hard Way Learn Ruby The Hard Way Learn Code The Hard Way I'm also working on a whole series of programming education books at learncodethehardway.org. Learn C The Hard Way Learn SQL The Hard Way Learn Regex The Hard Way Graphics Programming Language Agnostic NerdDinner Walkthrough Assembly Language Bash Clojure Clojure Programming ColdFusion CFML In 100 Minutes Delphi / Pascal Django Djangobook.com Erlang Learn You Some Erlang For Great Good Flex Getting started with Adobe Flex (PDF) Forth Git Grails Getting Start with Grails Haskell Java JavaScript JavaScript (Node.js specific) Latex The Not So Short Introduction to LATEX (perfect for beginners)

Testdriven

How to Become a Software Architect. 9inShare I often get asked by up-and-coming technologists, "what things should I be doing to work towards becoming an architect"?

How to Become a Software Architect

Of course, as is often the case when asking an architect a question, the answer is "it depends". However, I've found the following list to be a good starting point. What items would you add or remove? What advice would you give to someone seeking to become an architect? Here's the list that I've come up with: You must continuously seek to improve. CQRS – neues Architekturprinzip zur Trennung von Befehlen und Abfragen. CQRS ist ein erfolgreicher Gegenentwurf zum klassischen Schichtenmodell für Systeme mit parallelem Nutzerzugriff.

CQRS – neues Architekturprinzip zur Trennung von Befehlen und Abfragen

Das Prinzip fordert eine Aufteilung in Verhaltens- und Abfragemodelle, mit der man die Geschäftslogik als wertvollsten Bestandteil einer Anwendung von der Datenbereitstellung für Benutzerschnittstellen und Reporting entkoppelt entwickeln kann. Das Architekturprinzip CQRS (Command Query Responsibility Segregation) fordert im Kern die Aufteilung der Softwarearchitektur in zwei Teile [1, 2, 3, 4]. Diese haben klar getrennte Verantwortlichkeiten: einerseits für das Ausführen von Befehlen (Commands), die eine Zustandsänderung des Softwaresystems nach sich ziehen, andererseits für das seiteneffektfreie Bedienen von Abfragen (Queries).

Diese Trennung ist eine Weiterführung von Bertrand Meyers CQS-Prinzip (Command Query Separation) [5, 6], das eine analoge Trennung für einzelne Methoden eines Interfaces verlangt. CQRS ist durchaus keine neue Idee. Eine prototypische Architektur.