Home
Chang Wan
Cancel
Preview Image

Visitor Pattern: the Design Pattern Born from the Defect

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...

Preview Image

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...

Preview Image

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? ...

Preview Image

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 ...

Preview Image

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...

Preview Image

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 ...

Preview Image

Sorting Algorithms

Algorithm Time Complexity (Average Case) Best Time Complexity Worst Time Complexity Space Complexity Is Stable Is In-place B...

ip