learning-notes
learning-notes copied to clipboard
Notes regarding things I have learned
Project status:
- ✅ Actively maintained
- 🐢 Limited bandwidth
- 🔒 Not looking for contributions from others
Learning notes
These are some notes regarding things I have learned.
You can read the notes at learning-notes.mistermicheels.com or directly on GitHub. If you prefer to read them on GitHub, you can use the overview below to navigate (generated by markdown-notes-tree).
- Architecture and design
- Architectural boundaries
- Architectural fitness functions
- Architecture and people
- Circular dependencies
- Deletes
- Deployable components
- Duplication
- Exception handling
- Humble Object pattern
- Inversion of control
- Names
- Separation of concerns
- Architectural boundaries details
- Boundaries and the database
- Boundaries and duplication
- Boundaries and third-party dependencies
- Boundaries and the web
- Horizontal versus vertical separation
- Separation mechanisms
- Object-oriented design
- Avoiding fat service classes
- Composition over inheritance
- SOLID principles
- Reference architectures
- Clean Architecture
- Layered architecture
- Microservices
- Package by feature or component
- Visualizing architecture
- C4 model
- Visual dependency analysis tools
- Data
- CAP theorem
- Data schema migration
- SQL, NoSQL, NewSQL
- SQL
- ACID properties
- Database normalization
- Optimistic and pessimistic locking in SQL
- Transaction isolation levels
- Java
- Concurrency
- Date and Time API
- Equals
- Exceptions
- Generics
- Interfaces
- Java Platform Module System
- Lambda expressions
- Optional type
- Overloading, overriding and method hiding
- Streams
- Concurrency details
- Locking
- Thread safety
- Threads
- JavaScript
- Event loop
- Object prototypes and classes
- Scope and closures
- Spread syntax, rest parameters and destructuring
- The this keyword
- TypeScript
- Compiler API
- Conditional types
- Index types
- Nullable types and optional parameters/properties
- Runtime type checking in TypeScript
- Type guards
- Mindset
- Ask the dumb questions
- Concepts, not code
- Fail fast
- Hammock-driven development
- It depends
- It's about people
- Keep it simple
- Pragmatism and imperfectionism
- Work-life balance
- Processes and techniques
- Branch By Abstraction and application strangulation
- Client-first design
- Code review and collaboration workflows
- Dealing with uncertainty
- Feature flags
- Issue troubleshooting
- Managing technical debt
- Refactoring
- Small commits and pull requests
- Static analysis
- Team decision-making
- Testing
- Trunk Based Development
- Testing details
- Testing after production
- Testing patterns
- Soft skills
- Expectation management
- Web
- Cookies and Web Storage
- CSS
- Box model
- Browser compatibility
- Flexbox
- Grids
- Inheritance, the cascade and specificity
- Naming classes
- Positioning
- Responsive design
- Sass/SCSS
- Selectors
- Units
This work is licensed under a Creative Commons Attribution 4.0 International License.
