related to a comparison of features and characteristics of products.“ „Quality is a precise measurable variable. Differences in quality reflect differences in quantity of some product attribute.“ „Quality is fitness for intended use.“ „Quality is conformance to specifications.“ „Quality is meeting or exceeding customer expectations.“ „A product that is free of defects.“
IV. Velocity and Agility Higher maintainability Adding new functionality more quickly More time for non-functional requirements like performance, scalability, security, reliability, etc.
Constantly evolve the design, and architecture Concurrently add new features Principles: Emergent Design, intentional architecture, design simplicity, design for testability, prototyping, domain modeling
Everyone can change every line No dependency on a single person Requirements: Proven, agreed to coding standards, simplicity in design, knowledge sharing
(just as much design as needed) Emergent Design Refactoring Knowledge of Design Patterns Application of design patterns: Not „the only solution to recurring problem“ Require a thought process Provide approaches to solve problems
can help decide when to refactor Many, many metrics exist Focus on most important: Complexity, Readability, Duplication Alternatives: Code that is annoying Scratch method
determining the AWS region 2. Code for generating image choices 3. Code for building the form Next: Extract the code for building up AWS instance launch data. 1. 2. 3.
the AWS region 2. Code for generating image choices 3. Code for building the form 4. Code for creating AWS launch data Simple refactorings made method intention revealing, and easy to read 1. 2. 4. 3.
language, and avoid writing tests for basic tasks. Scrutinizer is like a compiler for PHP - Control Flow Analysis - Data Flow Analysis - Abstract Interpretation - Variable Reachability - Call Graph Analysis - Live Variable Analysis Checking type safety Dead assignments/unused code Security analysis And more
- Check if variable was assigned Can only catch typos Scrutinizer‘s approach: - Run data flow analysis Different scope in each flow point - Check if variable is always defined in the flow point where it‘s used More accurate results, does not miss sometimes defined variables
to set-up a common coding style guide - Fixes many coding style issues automatically - Does not force a specific style on you - Does not depend on a specific IDE - Leaves you more time for reviewing other issues during manual review