{"id":14,"date":"2015-04-26T14:00:28","date_gmt":"2015-04-26T12:00:28","guid":{"rendered":"http:\/\/ccd.ralfw.domainfactory-kunde.de\/?page_id=14"},"modified":"2021-12-21T09:45:26","modified_gmt":"2021-12-21T08:45:26","slug":"the-virtues","status":"publish","type":"page","link":"https:\/\/clean-code-developer.de\/en\/die-tugenden\/","title":{"rendered":"The virtues"},"content":{"rendered":"<h2>Principles<\/h2>\n<h3>1. estimates variation (Value Variation (VV))<\/h3>\n<p>Values: Changeability, Continuous improvement<\/p>\n<h3>2. do only what's necessary (DOWN)<\/h3>\n<p>Values: production efficiency, changeability<\/p>\n<p>Beware of optimizations! (Principle of the <a href=\"http:\/\/clean-code-developer.de\/en\/the-straight\/red-degree\/#Vorsicht_vor_Optimierungen\">red degrees<\/a>)<br \/>\nYou Ain't Gonna Need It (YAGNI) (Principle of the <a href=\"http:\/\/clean-code-developer.de\/en\/the-straight\/blue-degree\/#You_Aint_Gonna_Need_It_YAGNI\">blue grade<\/a>)<br \/>\nKeep it simple, stupid (KISS) (principle of the <a href=\"http:\/\/clean-code-developer.de\/en\/the-straight\/red-degree\/#Keep_it_simple_stupid_KISS\">red degrees<\/a>)<\/p>\n<h3>3. isolate aspects (IA)<\/h3>\n<p>Values: Changeability<\/p>\n<p>Don't Repeat Yourself (DRY) (principle of the <a href=\"http:\/\/clean-code-developer.de\/en\/the-straight\/red-degree\/#Dont_Repeat_Yourself_DRY\">red degrees<\/a>)<br \/>\nSeparation of Concerns (SoC) (principle of <a href=\"http:\/\/clean-code-developer.de\/en\/the-straight\/orange-degree\/#Separation_of_Concerns_SoC\">orange grade<\/a>)<br \/>\nSingle Level of Abstraction (SLA) (principle of <a href=\"http:\/\/clean-code-developer.de\/en\/the-straight\/orange-degree\/#Single_Level_of_Abstraction_SLA\">orange grade<\/a>)<br \/>\nSingle Responsibility Principle (SRP) (principle of <a href=\"http:\/\/clean-code-developer.de\/en\/the-straight\/orange-degree\/#Single_Responsibility_Principle_SRP\">orange grade<\/a>)<br \/>\nInterface Segregation Principle (ISP) (principle of <a href=\"http:\/\/clean-code-developer.de\/en\/the-straight\/yellow-degree\/#Interface_Segregation_Principle_ISP\">yellow grade<\/a>)<br \/>\nDesign and implementation do not overlap (principle of <a href=\"http:\/\/clean-code-developer.de\/en\/the-straight\/blue-degree\/#Entwurf_und_Implementation_berlappen_nicht\">blue grade<\/a>)<br \/>\nIntegration Operation Segregation Principle (IOSP) (principle of <a href=\"http:\/\/clean-code-developer.de\/en\/the-straight\/red-degree\/\">red degrees<\/a>)<\/p>\n<h3>4. minimize dependencies (Minimize Dependencies (MD))<\/h3>\n<p>Values: Changeability<br \/>\nDependency Inversion Principle<br \/>\nInformation Hiding Principle<br \/>\nLaw of Demeter<br \/>\nOpen Closed Principle<br \/>\nTell, don't ask<br \/>\nInterface Segregation Principle (ISP)<br \/>\nIntegration Operation Segregation Principle (IOSP) (principle of\u00a0<a href=\"http:\/\/clean-code-developer.de\/en\/the-straight\/red-degree\/\">red degrees<\/a>)<\/p>\n<h3>5. keep promises (Honor Pledges (HP))<\/h3>\n<p>Values: Changeability<\/p>\n<p>or also: Minimize Surprises<\/p>\n<p>Liskov Substitution Principle<br \/>\nPrinciple of Least Astonishment<br \/>\nImplementation mirrors design<br \/>\nFavour Composition over Inheritance (FCoI)<\/p>\n<h2>Practical<\/h2>\n<h3>1. embrace uncertainty (Embrace Uncertainty (EU))<\/h3>\n<p>Values: Changeability, Continuous improvement<\/p>\n<p>Use a version control system<br \/>\nAutomated integration tests<br \/>\nAutomated unit tests<br \/>\nMockups (test dummies)<br \/>\nContinuous Integration<br \/>\nInversion of Control Container<\/p>\n<h3>2. focus (Focus (F))<\/h3>\n<p>Values: Production efficiency<\/p>\n<p>Component orientation<br \/>\nTest first<br \/>\nLimit WIP \/\/ new<\/p>\n<h3>3. value quality (VQ)<\/h3>\n<p>Values: Production efficiency<\/p>\n<p>Accept only high quality \/\/ new<br \/>\nAutomated unit tests<br \/>\nReviews<\/p>\n<h3>4. get things done (GTD)<\/h3>\n<p>Values: Production efficiency<\/p>\n<p>Iterative development<br \/>\nContinuous Delivery<br \/>\nLimit WIP<\/p>\n<h3>5. stay clean (SC)<\/h3>\n<p>Values: Changeability, correctness, production efficiency<\/p>\n<p>Observe the scout rule<br \/>\nComplex refactoring<br \/>\nApply simple refactoring patterns<br \/>\nStatic code analysis (metrics)<br \/>\nCode Coverage Analysis<br \/>\nSource code conventions \/\/ formerly principle<\/p>\n<h3>6. keep the ball rolling (Keep Moving (KM))<\/h3>\n<p>Values: Continuous improvement<\/p>\n<p>Read, read, read<br \/>\nParticipation in specialist events<br \/>\nPassing on experience<br \/>\nReflect daily<br \/>\nRoot Cause Analysis<br \/>\nMeasuring errors<br \/>\nIssue Tracking<br \/>\nRegular retrospectives \/\/ new<\/p>","protected":false},"excerpt":{"rendered":"<p>Prinzipielles 1. Sch\u00e4tze Variation (Value Variation (VV)) Werte: Wandelbarkeit, Kontinuierliche Verbesserung 2. Tue nur das N\u00f6tigste (Do Only What\u00b4s Neccessary (DOWN)) Werte: Produktionseffizienz, Wandelbarkeit Vorsicht vor Optimierungen! (Prinzip des roten Grads) You Ain\u00b4t Gonna Need It (YAGNI) (Prinzip des blauen Grads) Keep it simple, stupid (KISS) (Prinzip des roten Grads) 3. Isoliere Aspekte (Isolate Aspects [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":3,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-14","page","type-page","status-publish","hentry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/clean-code-developer.de\/en\/wp-json\/wp\/v2\/pages\/14","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/clean-code-developer.de\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/clean-code-developer.de\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/clean-code-developer.de\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/clean-code-developer.de\/en\/wp-json\/wp\/v2\/comments?post=14"}],"version-history":[{"count":5,"href":"https:\/\/clean-code-developer.de\/en\/wp-json\/wp\/v2\/pages\/14\/revisions"}],"predecessor-version":[{"id":688,"href":"https:\/\/clean-code-developer.de\/en\/wp-json\/wp\/v2\/pages\/14\/revisions\/688"}],"wp:attachment":[{"href":"https:\/\/clean-code-developer.de\/en\/wp-json\/wp\/v2\/media?parent=14"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}