More Software design [2d]
Software engineering principles
Read about the following software engineering principles:
- Single Responsibility Principle
- Law of Demeter
- Dependency Inversion Principle
- Also "Dependency Injection" or "Inversion of Control"
- For some example see part2 of the TDD lecture, slides #1 through #23
For each principle:
- Look at the repo for your MovieDB, look at the repo for Cards. Find some examples where the principle was used, find some examples where it was violated.
- What are some pros, what are some cons when applying this principle?
- Apply the principle to some code in either repo.
- Read about "Technical debt".
- Read this article: Are you experiencing technical drift
- Read this article: Moving Fast With High Quality
- Look at the repo for your MovieDB, look at the repo for Cards.
- Can you find examples for technical debt/drift?
- Why did it happen?
- Pay back some technical debt in either repo.
Read through the following articles:
How is the word "API" used in these articles as opposed to the same word in "Google Maps API"?
Talk with your mentor about the key points you took away from each article and how it relates to the code you yourself write every day.