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.
It mostly depends on the project what you get.
Old Demandware uses pipelines, which look like algorithms and uses DemandwareScript, which is ECMAScript 4 and programming part is very easy. Frontend part saves states for some objects.
New Demandware uses controllers and has more code, I think currently it is ECMAScript 5. Grunt is generally used for continuous integration, with a lot of NodeJS modules. It is also more testable and Mocha, Chai and Jasmine is also used for testing. Frontend part is stateless, contrary to Angular or React and introduces promises.
I heard that learning AngularJS and reactjs would help alot to excel in Demandware.
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 or browsers. For more information on this, see: Frequently Asked Questions (Access can be gained by applying 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 NodeJS does.
ExpressJS Controllers syntax
Storefront Reference Architecture (What they're calling MFRA now) uses a syntax & middleware pattern for its controllers that is similar to that used by Express.
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, JS, 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 University section of the XChange Portal. (Note: Salesforce Trailhead is currently restructuring the education components developed by Demandware prior to the acquisition. These resources may move to Trailhead at some point in the near future.)
Some suggested courses are:
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 XChange or the Salesforce Chatter. Then you may request an invitation to the SFCC Unofficial Slack community by submitting this application form. Please keep in mind that this Slack 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.