The book "App from scratch"
I wrote a book, a preliminary release, about building web applications from scratch.
I read a lot of books on programming, but, often, after reading, I had only one question left - How do I apply this knowledge in practice?
Suppose you are a developer of an automation system, a portal or an online store.
Adding new functionality is complicated by layering code. Running tests takes half an hour, and release takes an hour. The idea of switching to a new version of the framework causes nervous twitching. You learn that PostgreSQL has support for arrays, jsonb, full-text search and lateral join, but ORM does not allow them to be fully used. You read about TDD, but how to write in this style when the analyst describes scripts and the framework requires creating a model, controller and presentation?
How to apply SOLID if entities inherit from ORM?
How to get rid of pain?
Gradually, as I studied Clojure, and finally, after reading Clean Architecture, I realized how painlessly to write an application, where the subject area comes first, not the framework where I make decisions, not the creators of the frameworks impose their own.
To some extent, the book can be considered as a practical Clojure tutorial,
so knowledge of this language is not required.
The book will at least teach you how to read Clojure code.
We will analyze the fundamental moments, namely: polymorphism and state management.
As a practice, we implement the Either monad.
In the second chapter I will introduce the basic ideas of design:
- Object Oriented Design
- SOLID principles
- Clean architecture
- Domain Driven Design
- Dependency Injection
- Receptions for working with the database
In subsequent chapters, I will describe how to create an application based on these principles.
We will start with business logic, we will implement usage scenarios, we will postpone technical decisions using abstractions.
We realize the delivery of the application to the user using web technologies.
Let's sort work with forms, validation.
Consider the implementation of storage abstraction based on the patterns of Data Maper, Identity Map and Unit of Work.
I tried to focus on really important things, rather than reprint the documentation.
While reading you will have to look for and study additional material, for this I give links.
The book contains practical exercises. Available project , on the basis of which it was written.
It is important to understand that this is a preliminary release.
Surely there are problems with the presentation, and it is important for me to collect feedback as soon as possible.
At the moment, the book has no website, no pdf and epub.
Send your comments at firstname.lastname@example.org