

Think about menus on web sites … anything deeper than 2 should take serious consideration. Why?: Nobody wants to search 7 levels of folders to find a file.

When you get to 7+ files, begin considering separation. Keep a flat folder structure as long as possible. There are deviations of the 1 per file rule when I have a set of very small features that are all related to each other, they are still easily identifiable. Avoid files with multiple controllers, multiple services, or a mixture. Be descriptive with file names and keeping the contents of the file to exactly 1 component. If this means you want longer file names, then so be it.

Why?: You spend less time hunting and pecking for code, and become more efficient. When you look at a file you should instantly know what it contains and represents. A descriptive folder structure can help with this. You may not know the file name or where its related files are, so putting them in the most intuitive locations and near each other saves a ton of time. If the team cannot find the files they need to work on quickly, they will not be able to work as efficiently as possible, and the structure needs to change. Why?: I find this to be super important for a project.
PRINCIPLE APP MEDIUM CODE
Make locating your code intuitive, simple and fast.
