۱۸ ژوئیه ۲۰۲۲

سبک کدنویسی

کد ما باید تا حد امکان تمیز و خوانا باشد

این در واقع هنر برنامه نویسی است – گرفتن یک کار پیچیده و نوشتن کد آن به روشی که هم درست باشد و هم برای انسان قابل خواندن باشد. یک سبک کدنویسی خوب است که در آن بسیار کمک می‌کند.

سینتکس

این یک برگهٔ تقلب با قوانین پیشنهادی است(عکس زیر را برای جزئییات بیشتر مشاهده کنید)

خب حالا بیاید در مورد قوانین و علت آن باهم بحث کنیم

هیچ قوانین “بایدی” وجود ندارد

Nothing is set in stone here. These are style preferences, not religious dogmas. هیچ وحی منزلی درکار نیست.این ها ترجیحات سبک کد زنی است نه عقاید مذهبی

آکولاد

در اکثر پروژه‌های جاوااسکریپت آکولاد به روش «مصری» و با سبک باز کردن آکولاد در خط مشابه کلمه کلیدی متناظر و نه در خط جدید نوشته میشود. همچنین قبل از بازکردن یک آکولاد یک فاصله نیز باید وجود داشته باشد، مانند زیر:

if (condition) {
  // do this
  // ...and that
  // ...and that
}

یک سازه تک‌خطی ، مانند if (condition) doSomething() ، یک مورد بسیار مهم است. اصلاً باید از آکولاد استفاده کنیم؟

در اینجا انواع حاشیه‌نویسی آورده شده است تا بتوانید خوانایی آن‌ها را برای خود قضاوت کنید:

  1. تازه‌کارها بعضی اوقات اینکار را انجام میدهند.این خیلی بد است آکولاد کامنت لازم ندارد

    if (n < 0) {alert(`Power ${n} is not supported`);}
  2. شکاندن خط بدون آکولاد. هرگز اینکارو نکنید به علت اینکه براحتی با افزودن خط جدید با خطا مواجه می‌شوید.

    if (n < 0)
      alert(`Power ${n} is not supported`);
  3. یک خط بدون آکولاد قابل قبول است اگر کوتاه باشد 😏

    if (n < 0) alert(`Power ${n} is not supported`);
  4. بهترین نوع😃:

    if (n < 0) {
      alert(`Power ${n} is not supported`);
    }

برای یک کد بسیار مختصر، یک خطی نوستن مشکلی ندارد برای مثال if (cond) return null. ولی برای یک بلاک کد، آخرین مثال حالت خواناتری است

طول خط

هیچکس دوست ندارد یک خط طولانی افقی را بخواند. بهترین حالت آن است که آن‌ها را بشکنیم.

برای مثال :

// backtick quotes ` allow to split the string into multiple lines
let str = `
  ECMA International's TC39 is a group of JavaScript developers,
  implementers, academics, and more, collaborating with the community
  to maintain and evolve the definition of JavaScript.
`;

و برای if :

if (
  id === 123 &&
  moonPhase === 'Waning Gibbous' &&
  zodiacSign === 'Libra'
) {
  letTheSorceryBegin();
}

حداکثر طول خط باید در سطح تیم توافق شود. معمولاً 80 یا 120 کاراکتر است.

تورفتگی

دو نوع تورفتگی وجود دارد :

  • تو رفتگی افقی : ۲ یا ۴ فاصله

    یک تورفتگی افقی با استفاده از 2 یا 4 فاصله یا کلید تب ساخته می‌شود (کلید Tab).کدام یک را انتخاب کنید یک جنگ مقدس قدیمی است. امروزه فاصله بیشتر رایج هستند

    یکی از مزایای استفاده از فاصله به جای تب این است که فاصله از پیکربندی‌های انعطاف‌پذیرتری از تب‌ها استفاده می‌کنند.

    برای نمونه, مامی‌توانیم پارامترهای ورودی و آکولاد باز را باهم تراز کنیم، مانند زیر:

show(parameters, aligned, // 5 spaces padding at the left
one, after, another ) { // … } ```

  • تو رفتگی عمودی: خط های خالی برای شکستن کد به قسمت های منطقی.