Clean Code

Hur du systematiskt rensar i befintlig programkod

Har du någon gång jobbat i ett katastrofprojekt? Ett programutvecklingsprojekt där utvecklingen helt stannat av och gruppen är paralyserad av rädsla för att minsta kodförändring ska utlösa en kanonad av nya buggar. Ett sådant projekt utgör slutpunkten för en lång resa som började med att man inte hade tid att städa upp den där kodmodulen, för att just denna vecka var det så extra mycket att göra i projektet. Känns det igen?

Förekomsten av dålig kod i programsystem ska jämföras med förekomst av mögel i hus. Det kommer bara att bli värre och värre. Denna kurs tar sikte på att det finns mycket att göra i förebyggande syfte och hur man systematiskt kan göra dålig kod mindre dålig och till slut göra den bra.

Detta får du lära dig
  • Hur du gör systematisk refactoring för att förbättra kodkvalitén
  • Hur du ökar kodens läsbarhet, för att göra koden mer underhållsvänlig
  • Hur du skapar meningsfulla enhetstester
Kursinnehåll

Software Design

  • Principles of software design
  • Cost of fixing bugs
  • The knowledge transfer dilemma
  • Code smell
  • The danger of complexity

Design Principles

  • Broken windows
  • Screaming monkeys
  • DRY
  • Single responsibility
  • Separation of concern
  • Least astonishment
  • SOLID

Case Studies

  • GSM/GPRS system
  • 3-tier client-server-backend system
  • Credit-card processing batch system

Design Patterns

  • Patterns and anti-patterns
  • Singleton
  • Template method
  • Decorator
  • Composite
  • Builder
  • and more...

Refactoring

  • What it is
  • Tools
  • Extract variable/method/class
  • Pull/push members
  • Renaming
  • and more...

Clean Code Basics

  • What it is
  • How to do it

Comments and Formatting

  • How to deal with comments
  • General advice
  • Different categories of comments

Meaningful Names

  • Naming matters
  • What about encodings

Functions

  • Function size
  • Return policy
  • Side effects
  • Parameters

Classes

  • Class size
  • What is a cohesive class
  • Open-closed principle
  • Loosly coupled classes
  • Class organization

Data Structures

  • Data structures vs. objects
  • Law of demeter

Error Handling

  • Return codes
  • Null returning
  • Null arguments
  • The exception debate is over
  • Assertions

Unit Testing

  • Test FIRST
  • Clean tests
  • The given-when-then idiom
  • Intro to Spock

System Architecture

  • Separation of concern
  • Constructions vs. usage
  • Dependency injection

Build Tools

  • Overview of build tools
  • Repositories
  • Proxies
  • Work flow

Continuous Integration and Deployment

  • What is Continuous Integration (CI)
  • How is it related to clean code
  • CI servers
  • What is Continuous Deployment (CD)
SnabbFakta
NamnClean Code
Längd2 Dagar
NivåIntermediate
MålgruppJavautvecklare
FörkunskaperRutinerad i Java programmering
Verktyg
  • Java JDK 8, or later
  • JetBrains Intellij IDEA
Pris15 000 kr + moms 15000
KursDatum
DatumPlats
Hämtar kursschema...
Samma-Företags Rabatt

Vi ger 20% rabatt för tillkommande deltagare från samma företag vid samma kurs-tillfälle. Läs mer här.

Företagsintern Kurs

Om du beställer en företagsintern kurs kommer vi till er och håller kursen i era lokaler. Priset bestäms av vår prismodell och baseras på antalet kursdagar, antalet deltagare, samt i förekommande fall resa och logi.

Läs mer om vår prismodell och beställningsvillkor här.

Relaterade Kurser
KursDagarNivå
Modern Design Patterns2IntermediateVisa
Java Grundkurs5BeginnerVisa
Java 8/9/10 och senare 3IntermediateVisa