2024
- 11 Oct Best Practice of Microservices Architecture
- 07 Oct What is the Relationship Between Microservices and SOA?
- 05 Oct Visitor Pattern: the Design Pattern Born from the Defect
- 18 Sep Why I Think Design Principles Are More Important Than Design Patterns?
- 16 Jul The CAP Theorem: A Crucial Concept for Architects
- 06 Jul High Performance Architecture: Load Balancing
- 05 Jul High Performance Architecture: Caching
- 04 Jul High Performance Architecture: Database Sharding & Partitioning
- 02 Jul High Performance Architecture: Read-Write Separation
- 01 Jul Three Principles of Architecture Design
- 30 Jun Why do We Need Software Architecture?
- 29 Jun Bitmap and Bloom Filter
- 19 Jun Comparison of Four Algorithmic Thinking
- 16 Jun Algorithmic Thinking: Dynamic Programming
- 14 Jun Algorithmic Thinking: Backtracking
- 11 Jun Algorithmic Thinking: Divide-and-Conquer
- 10 Jun Algorithmic Thinking: Greedy
- 09 Jun Common String Matching Algorithms: KMP
- 08 Jun Relatively Simple String Matching Algorithms: BF and RK
- 06 May B+ Tree: How is Indexing of Databases Implemented?
- 03 May Implementation of the Red-Black Tree
- 14 Apr Physical Plan in Databases Query Processing
- 10 Apr Execution Models in Databases Query Processing
- 09 Apr Query Optimisation in Databases
- 08 Apr Cost Estimation: The Basics of Query Optimisation in Databases
- 08 Apr Overview of Query Processing in Databases
- 07 Apr Relational Algebra in Databases
- 13 Mar Why I Don't Recommend Using the Singleton Pattern?
- 07 Mar Buffer Overflow Attacks
- 03 Mar Table Value Parameter (TVP)
- 25 Feb Getters/Setters Are Evil in OOP
- 25 Feb Big Refactoring
- 22 Feb Locks in Java
- 21 Feb Different Thread Pools in Java
- 21 Feb Multithreading in Java
- 19 Feb Clean Code: Concurrency
- 19 Feb Reverse Engineering
- 18 Feb Is the Index a Panacea?
- 18 Feb Understanding Databases
- 17 Feb Clean Code: Emergency
- 02 Feb Clean Code: Systems
- 31 Jan Clean Code: Classes
- 27 Jan OOP vs. POP vs. FOP vs. AOP
- 26 Jan Null in Java: A Bad Invention.
- 26 Jan Garbage Collection (GC) in JVM
- 25 Jan Common Commands in JDK
- 25 Jan What is TDD (Test-Driven Development)?
- 20 Jan Threat Modelling
- 20 Jan Software Testing
2023
- 28 Dec Bad Smells in Code
- 21 Dec Limitations in Refactoring
- 21 Dec Principles in Refactoring
- 15 Dec What is Refactoring? Why do We Need Refactoring?
- 11 Dec Why do We Need to Use More Composition and Less Inheritance?
- 10 Dec What gets inverted in DIP?
- 07 Dec Lists and Collections in Event-B
- 07 Dec Proof-Based Verification in Event-B
- 05 Dec For ISP, What Is an "Interface"?
- 05 Dec Does LSP Conflict with Polymorphism?
- 04 Dec For OCP, What Exactly Are "Extensions" and "Modifications"?
- 03 Dec For SRP, How Do We Determine If a Class Has a "Single" Responsibility?
- 28 Nov SOLID Principles
- 28 Nov Extension Refinement in Event-B
- 27 Nov What Exactly Are We Talking About When Talking About OOP?
- 25 Nov Hoare Logic
- 25 Nov Bounded Model Checking
- 25 Nov Clean Code: Unit Tests
- 24 Nov Collections in Java
- 20 Nov SAT Problem and DPLL
- 19 Nov Relations and Functions in Event-B
- 19 Nov Introduction to Event-B
- 19 Nov Introduction to Formal Methods & Event-B
- 18 Nov Just-In-Time (JIT) Compilation in Java
- 18 Nov Some Java basics
- 15 Nov Some Interesting Codes in Java
- 14 Nov NuSMV Model Checker
- 14 Nov Clean Code: Boundaries
- 13 Nov Planning Projects - Risk (Process Groups)
- 13 Nov Planning Projects - Communication (Process Groups)
- 13 Nov Planning Projects - Resource (Process Groups)
- 13 Nov Planning Projects - Quality (Process Groups)
- 13 Nov Security By Design
- 09 Nov Memory Management in JVM
- 09 Nov Binary Decision Diagrams
- 05 Nov Symbolic Model Checking
- 03 Nov Data Modelling
- 02 Nov Design Patterns
- 01 Nov How does Java code runs?
- 31 Oct Clean Code: Error Handling
- 30 Oct Introduction to JVM
- 30 Oct Planning Projects - Cost (Process Groups)
- 29 Oct Clean Code: Objects and Data Structure
- 28 Oct Architectural Design
- 27 Oct Explicit State Model Checking
- 26 Oct Three Java Platforms: SE, EE, and ME
- 26 Oct Java Version History
- 26 Oct Clean Code: Formatting
- 23 Oct Planning Projects - Schedule (Process Groups)
- 22 Oct Planning Projects - Scope (Process Groups)
- 22 Oct Activity Diagrams in UML
- 22 Oct Sequence Diagrams in UML
- 21 Oct State Machine Diagrams in UML
- 20 Oct Initiating Projects (Process Groups)
- 20 Oct Project Management Process Groups
- 18 Oct Clean Code: Comments
- 18 Oct Clean Code: Functions
- 17 Oct Class Diagrams in UML
- 17 Oct Use Case Diagrams in UML
- 17 Oct Unified Modelling Language (UML)
- 15 Oct Büchi Automaton
- 13 Oct Clean Code: Meaningful Names
- 12 Oct Excerpts from "Clean Code"
- 11 Oct What is Clean Code?
- 11 Oct Software Modelling and Design
- 08 Oct Linear Temporal Logic (LTL)
- 06 Oct Modelling Programs with Transition Systems
- 05 Oct Introduction To Agile Project Management
- 01 Oct Automated Software Verification
- 01 Oct Introduction to Project Management
- 01 Oct Computer Science Terminology in English and Chinese
- 30 Sep What is Software Engineering?
- 22 Sep 《万历十五年》摘录——李贽篇
- 19 Sep Graph Traversal: Breadth-First Search and Depth-First Search
- 18 Sep Graphs: Modelling Pairwise Relations
- 17 Sep Red-Black Tree: The Most Popular Balancing Binary Search Tree
- 16 Sep Binary Search Tree: Embodiment of Binary Search
- 13 Sep Binary Trees: The Most Common Tree
- 13 Sep LRU Cache: Synergy of Hash Tables and Linked Lists
- 13 Sep How to Design a Hash Table
- 12 Sep Hash Tables: The Backbone of Efficient Data Searching
- 11 Sep Skip Lists: Binary Search on Linked Lists
- 10 Sep Binary Search: The Power of O(log n)
- 09 Sep Designing a Generic, High-Performance Sorting Algorithm
- 08 Sep Recursive
- 07 Sep Stacks and Queues: Operation-Constrained Linear Lists
- 06 Sep Mastering Linked Lists: Avoiding Common Pitfalls
- 05 Sep Linked Lists: The Opposite of Arrays
- 04 Sep Arrays: The Cornerstone of Organized Data
- 03 Sep Sorting Algorithms
- 29 Aug 《万历十五年》摘录——戚继光篇
- 27 Aug Academic Essay Conclusions
- 27 Aug How to cite sources in academic essay?
- 27 Aug Academic Integrity
- 19 Aug 《万历十五年》摘录——海瑞篇
- 15 Aug How to find reliable sources for academic essay?
- 15 Aug Academic Essay Paragraphs
- 15 Aug Academic Essay Introductions
- 13 Aug Overview of Academic Essay
- 13 Aug 《皮囊》摘录
- 10 Aug 《万历十五年》摘录——申时行篇
- 10 Aug Academic Writing Checklist
- 01 Aug 《万历十五年》摘录——万历篇
- 23 Jul 关于《万历十五年》
- 12 Jul How to using effective visual aids in presentations?
- 12 Jul How to refer to the material in academic presentations?
2022
- 17 Oct 游戏引擎架构分层
2019
- 07 Feb 禅宗公案:六祖衣钵
- 17 Jan 如何区分诗词中的平仄声?