Created
November 8, 2023 06:40
-
-
Save m0n0x41d/2d0cc002153e99e44c1ff8fd8470891f to your computer and use it in GitHub Desktop.
software / system design blog post ideas list
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Here is a list of some good software design and system design subjects I would like to cover in my blog: | |
https://wannahack.in/ | |
Software design topics: | |
1) General post about system documentation - diagrams, ADR, event-modeling. | |
2) General post about Software Architecture - what it is? What it is not? | |
3) Agile in software development and architerure. | |
4) Abstract data type - how to design classes correctly and based on which abstractions (ooap1) | |
5) Class as a module / Class as a Type - how to expand hierarchy (ooap2) | |
6) Formal OOP, its limitations, relationship design (ooap2) | |
7 - 9) Bertrand Meyer Modular Design Methodology (ooap3) | |
10) Cyclomatic complexity reduction as a software design method | |
11) Medium sized post covering all mainstream design patterns with code examples and easy explanations. | |
12) Hails to the best design pattern - Visitor. | |
13) An overview post of common architectural approaches in software development | |
14) Three base rools of good and easy designing | |
15) Analysis of nine formal OOP techniques, significantly improving everything ("Object Calisthenics" by Jeff Bay) | |
16) How to write tests and understand TDD in sane way | |
17) How and why to get rid of the conditional operator | |
18) compromise between features and convenience | |
19) 7 properties of good, quality code | |
20) 7 non-obvious design mistakes | |
21) The interface should be simpler than the implementation. Should it? (antipattern) | |
22) The meaning of the data in the project and modeling of this meaning | |
23) 4 Universal API Design Principles | |
24) Formalization of the concept of system reliability | |
25) Modules matter most | |
-------------------------------------- | |
System design general topics: | |
26) REST API vs. GraphQL | |
27) Coverage post about microservices and microservice architecture (pros and cons) | |
28) Monolith architecture (pros and cons) | |
29) What is K8S and when you do not need it | |
30) Cache - technology, solutions and strategies | |
31) What does API gateway do? | |
32) What is weebhooks? | |
33) CI/CD and development cycle | |
34) Clustering and Sharding | |
35) Transactions and Disturbuted Transactions | |
36) Message Brockers and Message Queues | |
37) N-tier architectures | |
38) Circuit breaker | |
39) Event sourcing vs Event-Driven Architecture | |
40) SQL vs NoSQL databases | |
42) Database Replication | |
43) Normalization and Denormalization | |
44) ACID and BASE consistency models | |
45) Load balancing | |
46) Forward Proxy vs. Reverse Proxy | |
47) How database indexes working | |
48) CAP theorem | |
49) PACELC Theorem | |
50) Geohashing and Quadtrees | |
51) Rate Limiting | |
52) Service Discovery | |
53) SLA, SLO, SLI | |
54) Disaster recovery | |
55) Virtual Machines (VMs) vs Containers | |
56) OAuth 2.0 and OpenID Connect (OIDC) | |
57) Single Sign-On (SSO) | |
58) SSL, TLS, mTLS | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment