Article Overview

Software Architecture

I tend to think about two parts of the architecture that depend on each other: “structure” and “process”. The former is about statical snapshots and most patterns; the latter is about the design of information flow, control flow, and message passing.

Structure: Architectural Patterns

Process: Information Flow

Day-to-Day Coding

Learning to do things in Swift, the nice way:

Programming Principles

Design Patterns

I argue that design patterns are not software architecture. They are practical for your daily work, and to express the information exchange between a couple of objects in a succinct way. But they cannot inform you about the structure of your application, why and how to decouple modules, or what a module is in the first place. That’s higher-level thinking you need to do in a different kind of mind-set.

Solopreneurship and Indie Development

Behind the Scenes

The Archive

TableFlip

General Things About Programming and Stuff