Clean Architecture another аля дядя Боб
Clean Architecture : Layers ( from the most abstract to the most concrete ) : domain : abstract data structures uc : "use cases", the pure business logic implem : implementations of the interfaces used in the business logic (uc layer) infra : setup/configuration of the implementation Golden rules : a layer never imports something from a layer below it 3rd-party libraries are forbidden in the 2 topmost layers