Controller Control: Designing Domains for Web Applications
summary
Live Phoenix app demo: a noughts-and-crosses web game backed by a GenServer that works, plus concrete refactor recipes — remove Repo from controllers with before/after controller snippets, use contexts and Ecto.Multi for transactional account+player creation, and convert to umbrella with git subtree preserving commit history. Claims a single-tweeter-backed "100% success rate" from the change. Includes exact filenames, SQL/ecto calls moved into domain modules, npm/build notes and test isolation benefits so you can judge effort versus payoff.
AI-written summary · about
chapters (38)
- 0:00Intro
- 0:16Web Structure
- 1:10Controller
- 2:37Repo
- 4:00Why Reapers
- 5:43Whats evolved
- 7:05Speaker notes
- 8:31How not to repo
- 9:23Registering a user
- 10:57Registering a player
- 12:49Accounts
- 13:15Benefits
- 14:07Open Challenges
- 16:35Close Challenges
- 17:51Summary
- 18:53Models
- 19:20Domain Model
- 19:52Schema
- 20:34Schemas
- 21:35Application
- 21:50Move Application
- 22:36Umbrella Applications
- 24:07Umbrella Applications Downsides
- 25:17Umbrellafication
- 25:39Moving Code
- 26:08Creating a New Application
- 26:32Renaming an Application
- 26:51Setting up Git
- 27:21Get History
- 28:25Get Subtree
- 29:25Umbrella Mode
- 30:31Check Everything Works
- 30:57Split Application
- 31:59Create New Application
- 32:28Move Database Configurations
- 33:16Move Tests
- 33:57Directory Structure
- 35:05Applications
related talks
39mBuilding beautiful systems with Phoenix contexts...
37mBuilt to last: A domain-driven approach to beautiful systems
01h 05mDDD, event sourcing and CQRS – theory and practice
36mBuilding Beautiful Systems with ...
45mDomain-Driven Design in Micro Frontends
35mBuilding Multiplayer Games with Phoenix and Phaser
01h 13mKeynote: Phoenix LiveView - Interactive Apps without Javascript
51mBuilding Amazing Single Page Applications the Right Way
