Fakta om kursen
- Kursens namn
- Clean Code
- Längd
- 2 dagar
- Nivå
- Advanced
- Målgrupp
- Javautvecklare
- Förkunskaper
- Rutinerad i Java programmering
- Verktyg
Online
Du sitter bekvämt hemma och deltar i kursen över internet. Läraren undervisar på svenska. Om du önskar du kursen på engelska, kontakta oss så skapar vi ett kursdatum för dig där kursen ges på engelska via Zoom.
Pris: 8,000 kr (€759)
Klassrum
Våra klassrum finns centralt i Stockholm. Läraren undervisar på svenska.
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. Ni väljer om ni vill ha kursen på svenska eller engelska. 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
- 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
- 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)