برنامه نویسی

تسلط بر بهینه سازی: نوشتن کارآمدترین کد جاوا اسکریپت

بهینه سازی در قلب ایجاد یک تجربه کاربری روان، کارآمد و لذت بخش است. وقتی صحبت از جاوا اسکریپت می شود، زبانی که به پویایی و تطبیق پذیری اش معروف است، نوشتن کد بهینه به یک کار جالب تبدیل می شود. این مقاله نحوه نوشتن کد جاوا اسکریپت کارآمد، از جمله برخی از مشکلات رایج برای اجتناب از آن و شیوه‌هایی که باید اتخاذ شود را بررسی می‌کند. ما این را از طریق چندین مثال کد، مقایسه راه‌حل‌های بهینه‌تر با همتایان بهینه‌ترشان نشان خواهیم داد.

1. به حداقل رساندن متغیرهای جهانی

یکی از اصول اساسی نوشتن کد جاوا اسکریپت بهینه، محدود کردن دامنه متغیرها است. متغیرهای سراسری، در حالی که راحت هستند، می توانند به سرعت فضای نام جهانی را به هم ریخته و به طور بالقوه منجر به تداخل نامگذاری و نشت حافظه شود. علاوه بر این، آنها می توانند درک و نگهداری کد شما را سخت تر کنند.

کد زیر بهینه:

var globalVar = "I am global!";

function showGlobalVar() {
  console.log(globalVar);
}

showGlobalVar();  // Outputs: "I am global!"
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

کد بهینه شده:

function showLocalVar() {
  var localVar = "I am local!";
  console.log(localVar);
}

showLocalVar();  // Outputs: "I am local!"
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

با استفاده از متغیرهای محلی، می‌توانیم کد خود را تمیزتر نگه داریم، از تضادهای احتمالی جلوگیری کنیم و منابع حافظه را حفظ کنیم.

2. استفاده از const و let بر فراز var

قبل از ES6، جاوا اسکریپت فقط داشت var برای اعلام متغیرها با این حال، var دارای برخی ویژگی‌های عجیب و غریب است که می‌تواند منجر به باگ‌هایی در کد شما شود. به طور خاص، محدوده عملکرد است، نه محدوده بلوک، که می تواند منجر به رفتار غیرمنتظره شود.

کد زیر بهینه:

var x = 10;
if (true) {
    var x = 20;  // Same variable!
    console.log(x);  // 20
}
console.log(x);  // 20 - Oops, not what we expected!
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

کد بهینه شده:

let x = 10;
if (true) {
    let x = 20;  // A different variable
    console.log(x);  // 20
}
console.log(x);  // 10 - That's more like it!
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

با استفاده از let و const برای تعیین محدوده، ما اطمینان می‌دهیم که متغیرهای ما فقط در جایی که قرار است وجود داشته باشند، از بروز اشکال جلوگیری می‌کند و خواندن و درک کد ما را آسان‌تر می‌کند.

3. انتخاب برای بررسی دقیق برابری

در جاوا اسکریپت، به طور کلی استفاده از برابری دقیق کارآمدتر است (===) بیش از برابری سست (==). برابری ضعیف می تواند منجر به نتایج گمراه کننده بالقوه ناشی از اجبار نوع شود. علاوه بر این، بررسی‌های دقیق برابری معمولاً سریع‌تر اجرا می‌شوند زیرا نیازی به تبدیل نوع ندارند.

کد زیر بهینه:

var x = '5';
if (x == 5) {  // This will execute
    console.log('Loose equality');
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

کد بهینه شده:

var x = '5';
if (x === 5) {  // This won't execute
    console.log('Strict equality');
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

با استفاده از برابری دقیق، از تبدیل‌های غیر ضروری نوع جلوگیری می‌کنیم و مقایسه‌های خود را سریع‌تر و کمتر مستعد اشکالات می‌کنیم.

4. انتخاب ساختار داده مناسب

جاوا اسکریپت ساختارهای داده مختلفی را ارائه می دهد که هر کدام مزایا و معایب خود را دارند. دانستن زمان استفاده از آن برای نوشتن کد عملکردی بسیار مهم است. بیایید آرایه را مقایسه کنیم و ساختارهای داده را برای یک عملیات بررسی وجودی تنظیم کنیم.

کد زیر بهینه:

let arr = [1, 2, 3, 4, 5];
if (arr.includes(4)) {  // O(n) time complexity
    console.log

('Number exists in array');
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

کد بهینه شده:

let mySet = new Set([1, 2, 3, 4, 5]);
if (mySet.has(4)) {  // O(1) time complexity
    console.log('Number exists in set');
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در این مثال، Set برای بررسی وجود کارآمدتر است زیرا پیچیدگی زمانی O(1) برای آن دارد .has() روش، در مقایسه با یک آرایه .includes() که پیچیدگی زمانی O(n) دارد. البته این بدان معنا نیست که همیشه باید از یک مجموعه به جای آرایه استفاده کنید، اما مهم است که ابزار مناسب را برای کار مناسب انتخاب کنید.

5. اجتناب از حلقه های غیر ضروری

حلقه ها می توانند پرهزینه باشند، به خصوص اگر در حال تکرار روی مجموعه داده های بزرگ هستید. بیایید سناریویی را مقایسه کنیم که در آن می‌توانیم یک حلقه را با یک متد جاوا اسکریپت داخلی جایگزین کنیم.

کد زیر بهینه:

let arr = [1, 2, 3, 4, 5];
let sum = 0;
for (let i = 0; i < arr.length; i++) {
    sum += arr[i];
}
console.log(sum);  // Outputs: 15
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

کد بهینه شده:

let arr = [1, 2, 3, 4, 5];
let sum = arr.reduce((a, b) => a + b, 0);
console.log(sum);  // Outputs: 15
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در این مثال، reduce این روش کد ما را خواناتر و مختصرتر می کند. با این حال، شایان ذکر است که در حالی که این رویکرد کد شما را پاک‌تر می‌کند، عملکرد تقریباً یکسان است. گاهی اوقات، بهینه‌سازی بیشتر به نوشتن کدهای پاک‌تر و قابل نگهداری‌تر مربوط می‌شود تا آخرین افت عملکرد.

در نتیجه، نوشتن جاوا اسکریپت بهینه سازی شده ترکیبی از درک تفاوت های ظریف زبان، استفاده هوشمندانه از ویژگی های مدرن و انتخاب ساختارها و ساختارهای داده مناسب است. عملکرد بسیار مهم است، اما نوشتن کد تمیز، قابل نگهداری و قابل درک به همان اندازه مهم است. بچه ها برنامه نویسی مبارک، از خواندن این مطلب متشکرم!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا