Как правильно организовать приложение?

Здравствуйте, я пишу свое первой front-end прилодение с использованием фреймворка Marionette.js Сейчас у меня есть один модуль - BlogApp, в котором содержится 2 метода list (показать все посты) и show (показать пост по id):

@MainApp.module "BlogApplication", (BlogApplication, App, Backbone, Marionette, $, _) ->
    
    	class BlogApplication.Router extends Marionette.AppRouter
    		appRoutes:
    			"blog"			    : "list"
    			"posts/:id" 		: "showPost"
    
    	API =
    
    		list: ->
    			BlogApplication.List.Controller.list()
    
    		showPost: (id, post) ->
    			BlogApplication.Show.Controller.showPost id, post
    
    	App.addInitializer ->
    		new BlogApplication.Router
    			controller: API
    
    	App.vent.on "blog:post:clicked", (post) ->
    		App.navigate Routes.post_path(post.id)
    		API.showPost post.id, post
    
    	App.on "blog:list": ->
    		App.navigate("blog")
    		API.list()


Приложение имеет такой вид:

--blog
      -blog_app.js
      --list
        --templates
         -blog_sidebar.template
         -blog_panel.template
         -blog_layout.template
         -blog_post.template
        -list_controller.js
        -list_view.js
      --show
        --templates
         -blog_sidebar.template
         -blog_panel.template
         -blog_layout.template
         -blog_post.template
        -show_controller.js
        -show_view.js


Все работает хорошо.
Однако сейчас у меня 2 контроллера и я дублирую шаблоны для `show` и `list` методов, что очевидно не хорошо. Можно перенести метод 'show' в `List.Controller` - тогда я смогу использовать те же шаблоны, но это сильно испортит архитектуру приложения, например когда придется добавлять функционал. К примеру - комментарии к посту, тэги и т.д. Как лучше представить эти 2 метода?
  • Вопрос задан
  • 2474 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы