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?

Remy van Duijkeren

Remy van Duijkeren

Power Platform Advisor

Microsoft Power Platform Advisor with over 25 years of experience in IT with a focus on (marketing) automation and integration.

Helping organizations with scaling their business by automating processes on the Power Platform (Dynamics 365).

Expert in Power Platform, Dynamics 365 (Marketing & Sales) and Azure Integration Services. Giving advice and strategy consultancy.

Services:
– Strategy and tactics advise
– Automating and integrating

Subscribe to
The Daily Friction

A daily newsletter on automation and eliminating friction

Related Content

Progressive Enhancement for JS is overrated.

Progressive Enhancement for JS is overrated. In today’s web, HTML + CSS + JS is a package deal. Almost every browser supports the trio, and let’s be real: users expect apps to work smoothly with JavaScript. 95%+ of users have JS enabled – why build for the exception?...

read more

Alpine.js just clicked. 🎯

Alpine.js just clicked. 🎯 Its declarative syntax—attributes on HTML tags—is perfect for simple UI logic. Most of the time, I don’t even need to touch JavaScript. And when I do? I can write just a little bit, and it fits right in. What’s even better? The declarative...

read more

HTMX + ASPNET Core Razor = magic. ✨

HTMX + ASPNET Core Razor = magic. ✨ But HyperScript? Not so much. 😅 As a developer, I gave HyperScript a try for client-side interactions. I really wanted to love it—especially since it’s from the same creator as HTMX. But every time I used it, I spent way too much...

read more