Kurs i

Clean Code and Software Craftmanship

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 på kursen
  • 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
Innehå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

Genomgång och diskussion av några egna projekt och deras tillkortakommanden

Design Patterns

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

Refactoring

  • What it is
  • Tools
  • Extract ***
  • 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
Namn
Clean Code and Software Craftmanship
Längd
2 dagar
Nivå
Intermediate
Målgrupp
Java-programmerare
Förkunskaper
Rutinerad i Java programmering
Teknisk miljö
  • Java JDK 8
  • JetBrains Intellij IDEA
Relaterade Kurser
KursLängdNivå
Modern Design Patterns2 dagarIntermediate
Java Basics 4 dagarBeginner
Java 81 dagarIntermediate
Schemalagd Kurs

Pris

14000 kr + moms

Vi ger 20% rabatt för tillkommande deltagare från samma företag på samma kurstillfälle. Läs mer om vår samma-företags-rabatt.

Just nu har vi inga kursdatum planerade för denna kurs. Vi lägger ut kursdatum löpande, så titta förbi denna sida litet senare.

Du kan också välja att prenumerera på vårt nyhetsbrev för att bli notifierad om nya kursdatum.

Företagsintern Kurs

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

Prisexempel för NN deltagare

PPP kr + moms

Antal
Område

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