Torsdag 5:e mars 2020
Denna lektion handlar om hur vi kan producera kod som är lätt att läsa och underhålla, också kallat Clean Code. För att uppnå Clean Code kommer vi i denna lektion att fokusera på best practice för kod, enhetstestar och SOLID principen. Detta bygger på lektion 18 och lektion 22 i C#-kursen.
Lektion från kl. 8:30 till kl. 16:30
- 8:30 Uppsamling från förra lektion
- Boarding card
- 9:00 Introduktion av dagens ämnen
- 9:30 Grupp diskussion av dagens ämnen
- Mindmaps (30 min)
- Rotation av mindmaps 5 min per grupp (40 min)
- Förberedelse av presentation (10 min)
- Presentation 2 min per grupp (20 min)
Lunch 12:00 till 13:00
- 13:00 Programmeringsövning i grupp, Barista försatt
- Finns i GitHub classroom
- 16:00 Avslutning och frågor i klassen
- Landing card
- 16:30 Slut på lektion
Teorin inför denna lektion är det som finns i Viktig kurslitteratur eftersom det mesta innehåll till denna lektion primärt är teoretisk.
Detta är litteratur som är bas för denna lektion, detta bör läses innan man går på gång med lektionsteorin.
- 5 Tips for Junior C# Developers to Write Cleaner C# Code
- Video (54 min): Clean Code, Episode 1
- Summary of 'Clean code' by Robert C. Martin
- The Boy Scout Rule, se bakgrunds litteratur som innehåller hela denna artikelserie
- Architectural principles
- The different types of software testing
- You Still Don’t Know How to Do Unit Testing
- C#-Fluent Interfaces for Unit Testing, kanske inte den bästa artikel om precis test av Fluent API, men den bästa som jag har hittat tills vidare.
- The Principles of OOD
- S.O.L.I.D. Software Development, One Step at a Time
- SOLID Principle with C# Example
Detta är litteratur som är frivillig, och som kan kan används till at få en djupare insikt i ämnen i klassen.
What is clean code?, från artiklen av Grady Booch:
Clean code is simple and direct. Clean code reads like well-written prose. Clean code never obscures the designer's intent but rather is full of crisp abstractions and straightforward lines of control.
Martin Fowler in Refactoring: Doing Design After the Program Runs:
Any damn fool can write code that a computer can understand, the trick is to write code that humans can understand.
-
Microsoft: Naming Guidelines
-
When should I choose inheritance over an interface when designing C# class libraries?
Inheritance describes an is-a relationship.
Implementing an interface describes a can-do relationship.
- SOLID architecture principles using simple C# examples
- SOLID Principle with C# Example
- S.O.L.I.D: The First 5 Principles of Object Oriented Design
- Principles of Object-Oriented Design
Inversion of Control (IOC) och Dependency Injection (DI):
- Kapitel 11 - Adapting to Inversion of Control: C# Smorgasbord (pdf)
- Kursbok: Kapitel: 10 Service configuration with dependency injection
- Adding decorated classes to the ASP.NET Core DI container using Scrutor