JAVA CORE
- OOP
- Interface vs Abstract class: cần hiểu về trừu tượng, kế thừa
- Overriding vs Overloading: cần hiểu về đa hình
- Access modified
- String
- Mutable vs Immutable, String vs String Buffer vs String Builder
- String pool
- == và equals
- Passing Mechanism in Java
- Final variable, final method, final class
- Static variable, static method, static class (inner class vs nested class)
- Try/catch vs Throw Exception, try-catch resource
- Synchronize vs Asynchronize
- Multi-threading
- Lambda (Predicate, Function, Consumer, method reference ...)
- Collection
- Collection stream (filter, map, reduce, ...)
- Collections, hashmap, hashset (VD so sánh tốc độ khi add/access 1tr-10tr phần tử vào collection)
- ArrayList vs LinkedList
- Stream API
- Generic
- Enum
Spring Boot
- Spring Bean, Spring Component: cần phân biệt được @Bean & @Component
- Spring profile & configuration: biết cách get value từ file config, cần biết cách sử dụng nhiều file config (dev, alpha, beta, stg, prod)
- IOC Containers, DI: cần phân biệt được các cách Inject/Autowired
- Bean Scopes, Bean Life cycle
- Spring Data JPA, Entity, Relationship, Fetch Type (Lazy vs Eager): cần phân biệt được các loại Cascade, các FetchType, relationship
- Mapping DTO <-> Entity (Mapstruct, Mapper)
- Controller, HTTP Methods (POST, GET, PUT, DELETE): cần biết các thành phần request, response, các annotation của request (@Request Param và @PathVariable)
- Design Pattern trong Spring boot ( Singleton Bean, Factory Pattern,... )
- Authentication vs Authorization: Spring Security, tìm hiểu về tầng filter, generate/validate JWT, refresh token.
- Scheduler/Cronjob, Transactional, @Async
- Repository: hiểu các cách query data
- Automatic Custom Queries
- Manual Custom Queries (JPQL)
- Native query
- Customizing the Result with Class Constructors
- Customizing the Result with Spring Data Projection (open/close)
- Join table, Sort, Paging
- Cache query
- How to solve n+1 query problem?
- Mock, Unit test, Integration test: tìm hiểu về Mockito.mock() vs @Mock vs @MockBean, test controller, test service, test repo
- Spring resttemplate vs Webclient
SQL
- Distinct
- Group by, having
- Delete và Truncate
- Primary key và unique
- Subquery
- Transaction
- Constraint, Union
- Các loại Join
- Index
- Tăng tốc độ query trong SQL
- So sánh SQL và NoSQL