Understanding Simplicity is a new, in-progress series of ebooks/guides with a strong focus on simplicity and clarity. They are longer than blog posts, but still very concise (I'm trying to keep each part under 25 pages).
In the first guide of the series (Functional Core, Imperative Shell), we are going to create an elegant, general-purpose build tool and use it to build an example website.
By going through this process, we are going to explore many important topics like combining imperative and functional programming (i.e. by isolating the imperative parts into the outer shell, and keeping our inner core pure), creating a flexible, storage-agnostic architecture, and writing clean and testable code in general.
We are going to build everything from the scratch, and use external dependencies only where it's really necessary.
In the first part of this guide, we're going to go through all the relevant concepts, and build the outer shell. The second part will be focused on the inner core.
For now, early preview is available to supporters of this site, but I'm going to publish on more more platforms (like Leanpub) soon.
- Implementation language
- Creating the project
- Filesystem vs database
- Example pages
- Run time vs build time generation
- Building things
- Reading files
- Data structure
- Writing files
- Build script
- Async versions
- Test-driven approach
- Unit testing support
- Integration testing
- Next steps