web development – Building enterprise application from the top-down

I am bombarded with all these notions from OOAD to DDD, TDD, layered architecture and so on, at least for me this is too overwhelming.

So based on the divide-and-conquer strategy, I came up with the idea to build an Web application (and in the same time figure out what it takes and learn along the way ) from the highest level policy to the lowest, so instead of building the infrastructure, I first design and build the domain and application layers, then build the repository, presenter, web routing… all of this guided by TDD.

My question is, how did you learn about all this stuff? Is this a bad/good idea?

I argue that the application layer (and the domain layer within it ) is just an algorithm from the client’s point of view, it takes some input and spits out some output, like an (REST) API for example…