mediamonks / muban

A backend-agnostic framework to enhance server-rendered HTML using a modern webpack development setup.
https://mediamonks.github.io/muban/
39 stars 15 forks source link

Group by feature not by type: remove app/data/interface and app/data/enum #153

Open skulptur opened 4 years ago

skulptur commented 4 years ago

As the title says, I think those 2 directories can be gone. IAbstractComponentMixin should be moved to where it's used if really needed at all.

ThaNarie commented 4 years ago

While I agree that it's good to move things where they belong as much as possible (like the IAbstractComponentMixin in this case), I find that there is still use to have project-wide folders for things that don't fit anywhere specifically.

We have the same issue with hooks and utils.

Although, having the folders there by default gives people an easy-way-out. So not having them forces them to think where to put something. Downside is that people will still add those generic folders, but name them differently between projects.

I think the smaller projects will use the global folders more often (since there is a less defined internal structure/separation, because of the initial overhead), and larger project that need more structure in general to organise the code, will have automatically have a place to put those files.

Happy to hear your opinions on the above, and your real-life experience :)

ThijsTyZ commented 4 years ago

I agree. We should not separate based on type.

And IAbstractComponentMixin is an interface for components, so it should move to the component directory.