gaurav.ece.nitw@gmail.com

What Is Immutability, and Why Does It Matter in Design?

A calm, thorough guide to immutability as a software design principle: the sealed-photograph vs. editable-document analogy, the formal definition (immutable object vs. unchangeable variable), a direct mutable-vs-immutable comparison table, the historical origins in 1950s functional programming and Java’s immutable String, a side-by-side building-blocks diagram of shared mutable vs. shared immutable…

Read More

What Is a Value Object?

A complete, friendly guide to the Value Object pattern from domain-driven design: the coin-versus-passport analogy, the formal definition and its 2002 Fowler / 2003 Evans origins, side-by-side comparison with entities, the four defining traits (equality by value, immutability, no identity, self-validation), a worked Money code example contrasting raw primitives with…

Read More

What Is Spaghetti Code?

A complete guide to the Spaghetti Code anti-pattern: the tangled-plate-of-spaghetti analogy, the formal definition (tangled control flow, structure not correctness), the historical origin in the GOTO instruction and Dijkstra 1968 letter “Go To Statement Considered Harmful,” the four common causes (deadline pressure, no upfront design, many hands without coordination, missing…

Read More