1. #1
    Sencha User
    Join Date
    Dec 2012
    Posts
    77
    Answers
    6
    Vote Rating
    2
    azamatoak is on a distinguished road

      0  

    Default Answered: One large controller vs many smaller controllers for performance

    Answered: One large controller vs many smaller controllers for performance


    I am building an app that has about 40 screen in it amongst 4 tabs. I am trying to figure out what is the best way to structure the controllers. 40 views and matching 40 controllers? Or does it make sense to have 4 controllers and then all the logic for views under that tab to be consolidated in each controller?

    Which is better from a performance perspective?

    How does Sencha Touch map controllers to views? Is there a convention to follow that will automate this (similar to EmberJS or other Javascript frameworks)? Or, do I have to always use the refs property of the controller config object to define which objects I want to listen for/work with?

  2. Having a 1:1 relationship of view to controller is wasteful. You should organize your controllers in features instead.

    /app/controller/FeatureA.js
    /app/controller/FeatureB.js
    /app/controller/FeatureC.js

    If a controller is getting too big it will be harder to maintain so then you can suborganize your controller.

    /app/controller/FeatureA.js
    /app/controller/featureB/SubFeatureA.js
    /app/controller/featureB/SubFeatureB.js
    /app/controller/FeatureC.js

  3. #2
    Sencha - Senior Forum Manager mitchellsimoens's Avatar
    Join Date
    Mar 2007
    Location
    Gainesville, FL
    Posts
    37,073
    Answers
    3500
    Vote Rating
    853
    mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute

      0  

    Default


    Having a 1:1 relationship of view to controller is wasteful. You should organize your controllers in features instead.

    /app/controller/FeatureA.js
    /app/controller/FeatureB.js
    /app/controller/FeatureC.js

    If a controller is getting too big it will be harder to maintain so then you can suborganize your controller.

    /app/controller/FeatureA.js
    /app/controller/featureB/SubFeatureA.js
    /app/controller/featureB/SubFeatureB.js
    /app/controller/FeatureC.js
    Mitchell Simoens @SenchaMitch
    Sencha Inc, Senior Forum Manager
    ________________
    Check out my GitHub, lots of nice things for Ext JS 4 and Sencha Touch 2
    https://github.com/mitchellsimoens

    Think my support is good? Get more personalized support via a support subscription. https://www.sencha.com/store/

    Need more help with your app? Hire Sencha Services services@sencha.com

    Want to learn Sencha Touch 2? Check out Sencha Touch in Action that is in print!

    When posting code, please use BBCode's CODE tags.

  4. #3
    Sencha User
    Join Date
    Dec 2012
    Posts
    77
    Answers
    6
    Vote Rating
    2
    azamatoak is on a distinguished road

      0  

    Default


    Great suggestion mitchell. Exactly what I was looking for.