Refactorings I always do in JavaScript

by Sep 21, 2022

In the past 10 years I have updated a lot of JavaScript in Dynamics 365 CRM.

These are the 5 refactorings I always do:

✅ Adding executionContext to functions;
Passing the executionContext is the new way to access Xrm.Page. Make sure you flag ‘Pass execution context as first parameter’. Waiting patiently for Microsoft to make this the default 🥱.

✅ Replacing var with let or const;
Using let or const prevents stupid bugs where you re-declare or overwrite variables when you didn’t mean to.

✅ Better names for variables;
While I’m replacing var, I also improve the names of the variables to make it clear what their intension is.

✅ Invert if statements and use early returns;
Remove all those nested if statements and make your code clearer to understand by returning immediately when a condition doesn’t apply or inverting the check in a if statement.

✅ Use async/await;
Remove promises and .then methods that are nesting your code and replace it with the async/wait pattern to improve your code readability.

What are the refactorings you do when touching JavaScript code in Dynamics 365 CRM?

Subscribe to
The Daily Friction

A daily newsletter on automation and eliminating friction

Related Content

SpecFlow: Great concept, flawed execution.

SpecFlow: Great concept, flawed execution. SpecFlow, a BDD framework designed to make writing scenarios a breeze for requirement analysts. The problem: It falls short of its promise. ❌ The reality? Analysts rarely, if ever, write the specs themselves. Instead,...

read more

What if…? Production has a Staging slot.

What if...? Production has a Staging slot. Staging or QA environment needs to be the same or as close to production as it can be. Preferably, you want to restore a recent backup 💾 from Production as Staging and then deploy your changes 🔄. Kudos 👏 if you've fully...

read more

UUID v7 coming in .NET 9

UUID v7 coming in .NET 9 For those that didn't know, you can create Guids in different ways (algorithms). System.Guid supports UUID v4 out-of-the-box, the most used version. UUID v7 is now added, which creates Guids based on the current time. This means Guids can be...

read more