If one were interested in learning to develop on Salesforce Commerce Cloud (formerly Demandware) could they leverage knowledge in other frameworks to expedite their onboarding? If such other frameworks exist, which are they? What are some other ways a new developer in Salesforce Commerce Cloud could pick things up faster?
I am asking this question while keeping controllers, MFRA in mind. Please consider that when answering.
As a seven year veteran of Commerce Cloud (Demandware) development, a certified developer, support technician, and solution architect, as well as a two time subject-matter expert (SME) for Salesforce Trailhead's certification team, these are my recommendations:
Learn to code JavaScript with ECMAScript 5 syntax without relying upon frameworks nor ES6 features.
SFCC uses the Rhino engine and is not capable of using all the fancy ES6 features you may be used to with Node.js or browsers. For more information on this, see: Frequently Asked Questions (access can be gained by the following instructions here). Note: You will not be able to use jQuery in your controllers and modules. They execute on the server-side, but not the same way that Node.js does.
Express.js Controllers syntax
Storefront Reference Architecture (what they're calling MFRA now) uses a syntax and middleware pattern for its controllers that is similar to that used by Express.js.
CommonJS Module syntax
Understand how to define and use CommonJS modules. This pattern is used heavily within the SFRA architecture.
NPM Scripts
Understand how NPM Scripts are executed and configured. SFRA uses them for building all static assets (CSS, JavaScript, etc.), as well as unit tests, and deploying to a sandbox.
If you're completely new to SFCC development and you'll be building more than just the template layer, you should use as much of the Commerce Cloud eLearning content available as possible. You can find this content from within the Commerce Cloud Developer Center
Some suggested courses that were/are offered by Salesforce:
Finally, after all that learning, you may find that you're having trouble getting up to speed or that you're not getting answers to your questions on SFCC Developer Center Discussion Groups. You may also request an invitation to the SFCC Unofficial Slack community by submitting this application form. Please keep in mind that this Slack channel is operated and supported entirely by volunteer efforts from other developers, architects, and business users. We would ask that you do your part to give back when you feel comfortable doing so.