1. Home
  2. Courses
  3. Jvm
  4. Clean-code-java

Online Kurs omClean Code

Kurs i hur du systematiskt rensar i befintlig programkod

Fakta om kursen

Kursens namn
Clean Code
Längd
2 dagar
Nivå
Advanced
Målgrupp
Javautvecklare
Förkunskaper
Rutinerad i Java programmering
Verktyg
  • Java JDK 8+, JetBrains Intellij IDEA

Online

Du sitter bekvämt hemma och deltar i kursen över internet.
Pris: 8,000 kr

Klassrum

Våra klassrum finns centralt i Stockholm.
Pris: 15,000 kr

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

Företagsinternt

Du kan också beställa kursen som företagsintern. Då kommer vi till er och håller kursen i era lokaler. Alternativt så håller vi kursen online om ni så önskar. Skicka en kurs-förfrågan via knappen nedan.

Företagsintern Kurs

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 kod-kvalité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)