Clean Code i Java program
Kurs om hur du rensar upp i gammal Java kod
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 kod-fö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 kod-modulen, 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.
Snabbfakta
Namn
Clean Code i Java programÄmne
Java & JVM språkURI
jvm/clean-code-in-java
Längd
2 dagarNivå
AdvancedMålgrupp
Java programmerareFörkunskaper
Rutinerad i Java programmeringProgramvara & Verktyg
Här ser du vilka kursdatum som är tillgängliga. Klicka på en av datumknapparna för att anmäla dig till ett kurstillfälle. På kursen pratar läraren svenska, medan vårt kursmaterial alltid är författat på engelska.
Missa inte vår samfaktureringsrabatt! Är ni fler personer från samma företag/organisation som går på samma kurs, rabatteras tillkommande personer med 25%
. Ni anmäler er till kursen en och en, men uppger samma företag, så ordnar vi resten. Samtliga deltagare från samma företag ingår på samma faktura, den första till fullt pris och resterande till rabatterat pris.
Du sitter bekvämt i ett av våra klassrum, vilka finns centralt placerade i Stockholms innerstad.
I priset ingår tryckt kursmaterial (och som PDF), samt kaffe/te med smörgås på förmiddagen och kaffe/te med bulle på eftermiddagen. Pris: 17 000 kr + moms
Du sitter bekvämt framför datorn och deltar i kursen via internet. Vi använder programvaran Zoom för alla våra fjärrkurser. I priset ingår kursmaterial som PDF. Pris:
11 000 kr + moms
Om ni är tre eller fler personer från samma företag eller organisation, kan ni beställa en företagsanpassad kurs. Då håller vi kursen på ett datum som passar er. Antingen på plats i era lokaler eller som en fjärrkurs. Vi kan också hålla den muntliga framställningen på engelska. Klicka på knappen nedan för att be om en offert.
Kursdatum
Kurs i Klassrum
Kurs via Zoom
Kurs hos Er
Här är ett sammandrag i punktform av vad du får lära dig på kursen. Eftersom kursmaterialet är författat på engelska, så återger vi sammandraget också på engelska.Detta får du lära dig
Eftersom kursmaterialet är författat på engelska, så återger vi innehållet också på engelska.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
- The 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
- Loosely 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)