Hacker News with Generative AI: Design Patterns

Standard patterns in choice-based games (2015) (wordpress.com)
When I was analysing the structures of CYOA works a few years back, I began to recognise some strong recurring design patterns.
How to Write Complex Software (grantslatton.com)
Suppose you are implementing some complex piece of software — a database, a word processor, a filesystem, a web browser, whatever. How do you get started? How do you actually organize the code?
Systems ideas that sound good but almost never work (learningbyshipping.com)
Some engineering patterns that sound good but almost never work as intended
Enum of Arrays (tigerbeetle.com)
A popular data-oriented design pattern is a Struct of Arrays. Is an Array of Enums also useful? Yes! But let’s do a refresher on struct of arrays (SoA) first:
Enum of Arrays (tigerbeetle.com)
A popular data-oriented design pattern is a Struct of Arrays. Is an Array of Enums also useful? Yes! But let’s do a refresher on struct of arrays (SoA) first:
Visitor Pattern Considered Pointless – Use Pattern Switches Instead (nipafx.dev)
In modern Java, the visitor pattern is no longer needed. Using sealed types and switches with pattern matching achieves the same goals with less code and less complexity.
Functional Core, Imperative Shell – Scott Wlaschin (youtube.com)
Thinking in Actors – Challenging your software modelling to be simpler (jeremycarterau.substack.com)
Challenging your software modelling techniques to be simpler
A C++ Mixin System (jennyjams.net)
I've had this idea in the back of my head for a while of pervasively using mixins to add code and logic for more high level concepts, although this gets somewhat close to Rust style traits (and C++ concepts). This has existed in the back of my head for a long time as a way to model a framework or standard library implementaiton while also providing it for user types.
Traits are a local maximum (thunderseethe.dev)
Traits are one of the few programming language concepts beloved enough to earn multiple names.
Killing the Command message: should we use Events or Documents? (2007) (microsoft.com)
If we want to decouple a SOA system, we must get away from the notion of the remote procedure call.  In other words, our services need to have as few "command" messages as we can get away with.  This is a design philosophy but it is easier said than done.
State-shift: Macros for implementing Type-State-Pattern on your structs and met (github.com/ozgunozerk)
Go and my realization about what I'll call the 'Promises' pattern (utoronto.ca)
Over on the Fediverse, I had a belated realization:
"Design It Twice"? (16elt.com)
Designing software is tough. I think we can all agree on that. No matter how much experience you have, your first idea about how to structure a module or system is usually not the best one. I had to learn this lesson the hard way, and I really wish I knew about the “design it twice” concept earlier in my career.
Design Patterns Are Temporary, Language Features Are Forever (ptrtojoel.dev)
Design patterns are these cool things that make you go 'hell yeah' because they make a certain problem easier to deal with. Whether it's applicable to all languages, or due to a language constraint, they're pretty nice. Of course, some people go crazy with them rather than doing the simple thing that works. Other times, you'll naturally do a design pattern without even knowing about it.
Dysfunctional Options Pattern in Go (rednafi.com)
Why package by feature first and then by layer? (garrettdbates.com)
What to do if you don't want a default constructor? (sandordargo.com)
C++ Design Patterns for Low-Latency Applications (hackaday.com)
Big Ball of Mud (1999) (laputan.org)
Proxy Objects in Python (crowdalert.com)
The plan-execute pattern (mmapped.blog)
Decent Patterns (decentpatterns.com)
Anti-patterns in event-driven architecture (codeopinion.com)
Shu Ha Ri (2014) (martinfowler.com)
A Pattern Language (patternlanguage.cc)
Pattern Forms (wiki.c2.com)
Object oriented design patterns in the Linux kernel (2011) (lwn.net)
In software architecture you have to recognize when you're adding a rocket stage (toot.cat)
Rust Design Patterns (rust-unofficial.github.io)