The Visitor Pattern is one of the most complex design patterns, and the code that uses this pattern is often difficult to understand. In that blog, I will go over the Visitor Pattern, which will al...
Visitor Pattern: the Design Pattern Born from the Defect
The CAP Theorem: A Crucial Concept for Architects
In the realm of distributed systems, the CAP theorem is a cornerstone principle that every software architect should understand. Formulated by computer scientist Eric Brewer in 2000, the CAP theore...
Comparison of Four Algorithmic Thinking
The four algorithmic thinking (Greedy, Divide-and-Conquer, Backtracking, and Dynamic Programming) is essential for solving complex problems efficiently. But what’s the difference between them? Whic...
B+ Tree: How is Indexing of Databases Implemented?
Contents Introduction to B+ Tree Structure of B+ Trees Key Features Advantages of B+ Trees in Database Why Use B+ tree for Database Indexing? ...
Query Optimisation in Databases
In this blog, I will discuss how a database engine optimises a SQL query statement with multiple relations (tables), from the database execution plan perspective. Contents How Many Quer...
Does LSP Conflict with Polymorphism?
In my opinion, LSP is the simplest and easiest principle to be used. It expresses only one thing: A superclass object should be replaceable by its subclass object without affecting the correctness ...
What Exactly Are We Talking About When Talking About OOP?
OOP stands for Object-Oriented Programming, which is a programming paradigm based on the concept of “objects”. But OOP is more than just a paradigm; it’s a continuous process of pursuing better, mo...
Clean Code: Meaningful Names
There are only two hard things in Computer Science: cache invalidation and naming things. —— Phil Karlton Names are everywhere in software. We name our variables, our functions, our argu...
Linear Temporal Logic (LTL)
When it comes to reasoning about the behavior of systems over time, especially in the domain of formal verification, Linear Temporal Logic (LTL) stands out as a powerful tool. Contents ...
Sorting Algorithms
Algorithm Time Complexity (Average Case) Best Time Complexity Worst Time Complexity Space Complexity Is Stable Is In-place B...