We discuss many resources in the Building Evolutionary Architectures workshops, and we continue to find more tools that fall into our categorization of fitness functions.
Allowing for change is especially important when designing your frontend applications, where ever higher user expectations meet the fast-paced JavaScript ecosystem.
In this talk, we will show how the principles of evolutionary architecture can be applied to UI to prioritize changeability. We’ll consider several approaches to making a modern UI application more evolvable, such as the microfrontends pattern, and examine specific “fitness functions” that will keep you and your team honest to your requirements without sacrificing evolvability. We’ll also discuss the tradeoffs you make when you choose a more evolutionary frontend architecture, and provide a framework for thinking about how much future change you’ll need to account for.
ArchUnit
ArchUnit is a free, simple and extensible library for checking the architecture of your Java code using any plain Java unit test framework.
CKJM
The program ckjm calculates Chidamber and Kemerer object-oriented metrics by processing the bytecode of compiled Java files. The program calculates for each class the following six metrics proposed by Chidamber and Kemerer.
WMC: Weighted methods per class
DIT: Depth of Inheritance Tree
NOC: Number of Children
CBO: Coupling between object classes
RFC: Response for a Class
LCOM: Lack of cohesion in methods
ESLint
ESLint is an open source project that provides a pluggable linting utility for JavaScript.
JavaNCSS
Metrics suite for Java.
Nagios
State-of-the-art commercial monitoring tool.
NetArchTest
A fluent API for .Net that can enforce architectural rules in unit tests.
Netflix Simian Army
Tools for keeping your cloud operating in top form. Chaos Monkey is a resiliency tool that helps applications tolerate random instance failures.
Pa11y.org
A command-line interface which loads web pages and highlights any accessibility issues it finds. Useful for when you want to run a one-off test against a web page.
PMD
An extensible cross-language static code analyzer.
Supported Languages:
Apex
Ecmascript
Java
Java Server Pages
Maven POM
PLSQL
Salesforce VisualForce
VM
XML
XSL