Categories
Engineering

Simplified Folder Structure

Another brain dump.

Discovered Laravel Actions which brings the kind of developer experience that I like which makes coding a little more fun and easier to reason about.

I thought about taking it a step further and seeing if there is a way to continue this simplicity for the rest of the application structure.

Here is what I came up with

Processes – Business Logic

Actions – Single Responsibility Traits (used by processes)

Libraries – Collection of classes that encapsulates a rich set of functionalities – generally meant to be reused across processes, e.g. user::sendMessage($recipient, $message)

Models – as you know them – interacts with the data store

DataTransferObjects – as the name suggests – medium by which data is passed around throughout the applications

Services – Collection of classes used to interact with third-party interfaces

That’s it nothing else to add or take away

Looks something like this:

app

—Processes

——Actions

—DataTransferObjects

—Libraries

—Models

—Services

— OR —

app

— Domain

——Foo

———Processess

————Actions

———DataTransferObjects

———Libraries

———Models

———Services

Leave a Reply

Your email address will not be published.