I'm looking for feedback on best practices for avoiding hardcoding store field names.

I'll use http://docs.sencha.com/ext-js/4-1/#!...n_architecture as an example:
Code:
Ext.define('AM.model.User', {
    extend: 'Ext.data.Model',
    fields: ['name', 'email']
});

editUser: function(grid, record)  {
        var email = record.get( 'email' ); // hardcoded field usage
I have devised one scheme, among others that seems to work:

Code:
Ext.define('AM.model.UserModelNames', { 
    FIELD: { NAME: 'name', EMAIL: 'email'  },
    singleton: true
});

// The model becomes:
Ext.define('AM.model.User', {
    extend: 'Ext.data.Model',
    fields: [ AM.model.UserModelNames.FIELD.NAME, AM.model.UserModelNames.FIELD.EMAIL ]
});

// The editUser becomes:
editUser: function(grid, record) {
        var email = record.get( AM.model.UserModelNames.FIELD.NAME );
What do you think?

Thanks. Thierry.