OOP
- Object-Oriented ProgrammingOOD
- Object-Oriented DesignOOA
- Object-oriented Analysis
- Що таке SOLID? Що означає кожен з цих принципів?
- Розкажіть про патерни проєктування.
- Що таке Dependency Injection? Наведіть приклад.
- Які переваги та недоліки функціонального підходу?
- Що таке принцип RAII (Resource Acquisition Is Initialization)?
- Що таке принцип DRY?
- Що таке принцип KISS?
- Які переваги композиції перед успадкуванням?
- Поясніть принципи SOLID.
- Поясніть принципи KISS.
- Поясніть принципи YAGNI.
- Які є підходи до оптимізації коду?
- На що варто звертати увагу під час code review?
- Які є патерни проєктування? Чому не радять використовувати Singleton?
- Що таке статичний поліморфізм?
- Multiple inheritance (know for what, where can help)
- RAII idioms
- Singleton, abstract fabric, publisher-subscriber and other popular patterns
- PIMPL idiom
- Virtual destructors (for what, how can help, where need to be careful)
- Exceptions in custom constructors
- All details about C++ exceptions in destructors
- The initialization order of class members
- Implicit inline methods
- Which methods each C++ class has implicitly
- All circumstances with methods overlapping
- rvalue, lvalue
- Close work with move-semantic
- std::forward understanding
- Order of calling constructors\destructors
- limitations of conts methods
- Cases of calls copy-constructor
- Difference between raw and smart pointers
- Difference malloc and new
- Using 'delete' operator for zero-pointers
- An order of passing function/method arguments
- C++ operators overlapping
- Familiar with "slicing" C++ objects
- Detailed steps of handling C++ exception and actions applied in case of exception handler was not found
- Where it is not recommended to use exceptions?
- The order of handling C++ exceptions in case blocks
- Exceptions in custom constructors
- All details about C++ exceptions in destructors
- Writing custom memory allocators
- Details of using different new operators (placement, std::nothrow, new [])
- Experience of creating custom C++ polymorph objects
- Familliar with details of using pure virtual methods, classes
- Has strong understaning details of using virtual methods, internals of virtual tables, performance issues and lowel implementation
- Knows all differences of type casts operators: dynamic_cast, const_cast, reinterpret_cats, static_cast and cases when bad_cast exception can arise
- Solid experince with C++ lambdas
- Common cache optimization problems (read ahead, volatile key-word)
- Understanding of basic spin-lock implementation
- Static / Dynamic polyformism