Design patterns
- Шпаргалка по шаблонам проектирования
- What major patterns do the Java APIs utilize?
- Pattern used in Java
- Which patterns do you use in a daily basis. Explain their principles.
- Give an insight into such patterns as Façade/Proxy/Decorator/Strategy/Observer (selectively)
- Can you please explain “bridge”, "singleton" design pattern?
- Can you please explain "FlyWeight" design pattern?
OOP
- Inheritance vs Composition
- Coupling & Cohesion (class & method level)
- SOLID
- DRY
- Law of Demeter
- Feature Envy
- CQRS: Command Query Responsibility Segregation
- Principle of Least Astonishment/Surprise
Domain driven design
- Building blocks: Entity, Value Object, Aggregate, Service, Repository, Factory
- Ubiquitous Language
- Anticorruption Layer
- Bounded context
Craftsmanship
- What is software craftsmanship?
- Books: Clean Code, GOOS, Working Effectively With Legacy Code, RSpec, etc
- How do you keep yourself up-to-date?
- Pet projects? Tell me more
- Katas? How do you practice?
Code
- How do you identify good and bad code?
- Multiple return statements
- Average lines per method & class
- What do you think about the “else” keyword. What are the alternatives?
- What is the problem with getters?
- why the switch statement is post-soviet construction?
- what is problem with comments in the code?