Ответ 1
я бы пошел с измененной версией второй... в основном, отбрось папки для m, v и c в каждом разделе вашего сайта. там действительно нет необходимости разделять их на подпапки, когда имена файлов и имена классов уже будут отражать то, что они есть.
js
+- search
| +- result.js
| +- results.js
| +- resultRow.js
| +- ...
+- cart
| +- item.js
| +- items.js
| +- itemRow.js
| +- ...
+- routers
| +- search
| +- cart
| ...
глядя на этот макет, я все еще знаю, что "элемент" - это модель, "элементы" - это коллекция, а "itemRow" - это представление, потому что это соглашение, которое вы настроили. добавление дополнительного слоя имен папок просто добавляет сложности и не добавляет никакой ценности, на мой взгляд.
также - (вы, вероятно, знаете это, но в случае, если другие читают это сообщение, не...) обязательно используйте что-то вроде require.js для консолидации/минимизации всех ваших js в один файл перед развертыванием на вашем производственных условиях. поддерживающий код, подобный этому, отлично подходит для разработки и отладки. но когда приходит время, когда производственная система использует код, разделение его на несколько файлов вызывает значительные задержки для конечного пользователя. require.js решает эту проблему, предоставляя простой способ иметь обе - организованные файлы во время работы dev и один минитипированный файл для производства.