• همه۶٬۶۰۱
  • اخبار منتخب۱٬۵۲۰
  • جاوااسکریپتجاوااسکریپت۷۵۵
  • فرانت‌اندفرانت‌اند۹۷۱
  • ری‌اکتری‌اکت۲۵۴
  • لاراوللاراول۱۸۶
  • پی‌اچ‌پیپی‌اچ‌پی۱۶۹
  • نود جی‌اسنود جی‌اس۲۱۰
  • مهارت‌های نرم۹۸۱
  • پایتونپایتون۱۶۰
  • زیرساخت۱٬۹۳۶
  • دواپس۱٬۳۸۴
  • پایگاه داده۲۶۵
  • امنیت۱٬۷۱۱
  • هوش مصنوعیهوش مصنوعی۳٬۹۵۵
  • اپل۲۳۶
  • گوگلگوگل۲۶۷
  • درباره ما
  • تماس با ما
  • حریم خصوصی
  • قوانین استفاده

تمامی محتوای این سایت توسط هوش مصنوعی تولید شده و ممکنه حاوی خطا باشه. مسئولیت استفاده از این اطلاعات بر عهده کاربر هست.

Telegram
دیتی خبر

‏راهنمای نام‌گذاری خوب در برنامه‌نویسی

۲۵ تیرمهارت‌های نرمClaude Opus 4.8Claude
آدام تورن‌هیل تو این مقاله سبک شخصی‌اش برای نام‌گذاری تو کد رو می‌گه؛ معتقده اسم خوب یه جور فشرده‌سازی ذهنیه که کار بازسازی معنی کد رو کم می‌کنه. می‌گه اسم تابع رو باید برای جای صدازدنش بهینه کنی، و طول اسم متغیر باید به اندازهٔ محدوده‌اش باشه. عادت‌های رایجی مثل پیشوند I، getter/setterها و کلاس‌های کلی مثل Utils رو هم رد می‌کنه.
این محتوا به‌صورت خودکار با استفاده از هوش مصنوعی تولید شده، و بررسی نهایی اون پیش از استفاده توصیه میشه. مسئولیت استفاده به‌عهده کاربر هست. برای مطالعه متن اصلی خبر، اینجا رو کلیک کن

خلاصهٔ کامل‌تر

آدام تورن‌هیل نام‌گذاری رو دومین مسئلهٔ سخت علوم کامپیوتر می‌دونه، ولی می‌گه این کار خیلی فراتر از سلیقه و زیباییه. به گفتهٔ نویسنده اسم‌ها یه جور «فشرده‌سازی ذهنی» هستن؛ وقتی اسم‌ها قوی باشن اطلاعات بیشتری تو ذهنت جا می‌گیره و راحت‌تر می‌فهمی یه کد ناآشنا چی‌کار می‌کنه. حتی به عدد هم اشاره می‌کنه: اسم‌های شفاف‌تر به‌تنهایی زمان دیباگ رو حدود ۱۹٪ کم می‌کنن و مدل‌های زبانی هم با اسم‌های بهتر، کد رو بهتر می‌فهمن.

یکی از نکته‌های اصلی مقاله اینه که اسم تابع رو باید برای «جای صدازدنش» بهینه کنی نه جای تعریفش، چون ما جای صدازدن یه تابع رو خیلی بیشتر از جای تعریفش می‌خونیم. نویسنده می‌گه بذار اسم‌ها کنار هم یه جمله بسازن تا کل اون فراخوانی مثل یه تیکهٔ معنایی تو ذهن جا بیفته:

notify_all(registered_clients, about=the_new_version)

برای رسیدن به همچین اسم‌هایی، ترفند موردعلاقه‌اش «تفکر آرزومندانه» (Wishful Thinking) هست که از کتاب کلاسیک SICP یاد گرفته: کد رو جوری بنویس انگار اون انتزاع از قبل وجود داشته، اول جملهٔ ایده‌آل رو بساز، بعد برو توابعش رو پیاده کن. یعنی اسم‌گذاری اول میاد، پیاده‌سازی بعد.

نویسنده به «وسواس نوع‌های اولیه» (primitive obsession) هم گیر می‌ده؛ وقتی مفهومی مثل زبان یا خبر رو با یه int خام مدل می‌کنی، هم سیستم نوع ضعیف می‌شه هم اسم پارامتر بی‌معنی می‌مونه. اگه نوع‌های دامنه‌ای درست بسازی، خود نوع می‌گه آرگومان چیه و اسم پارامتر آزاد می‌شه که بگه «چرا» اونجاست. یه قاعدهٔ دیگه‌اش هم اینه که طول اسم باید با محدوده‌اش جور باشه: تو یه حلقهٔ کوتاه یه i کافیه، ولی برای متغیر نمونه یا API عمومی باید اسم رو کامل بنویسی.

بخش دوم مقاله دربارهٔ عادت‌هاییه که به نظر نویسنده ضرر می‌زنن. می‌گه پیشوند I روی اینترفیس‌ها رو بردار، چون این‌که یه چیز اینترفیسه کم‌اهمیت‌ترین ویژگیشه و کاربر نباید درگیر نحوهٔ پیاده‌سازی بشه. سراغ getter و setter هم می‌ره و می‌گه پیشوندهای get و set معمولاً ارزشی اضافه نمی‌کنن و آدم رو به‌جای «گفتن»، به «پرسیدن» می‌کشونن؛ مثل این کد:

customer = get_customer(customer_id)
set_customer_status(customer, SUSPENDED)

به گفتهٔ نویسنده همین منطق رو بهتره ساده‌تر و مثل suspend(a_customer) مدل کرد. آخرین هشدارش هم دربارهٔ اسم‌های کلی و مبهم مثل Utils، Misc و Helper هست؛ می‌گه این اسم‌ها مثل سطل آشغال، کد بی‌کیفیت رو به خودشون جذب می‌کنن و هر بار وسوسه شدی یه کلاس Utils بسازی، یعنی داری از طراحی درست کوتاه میای.

نکات کلیدی:

  • اسم خوب کار بازسازی ذهنی معنی کد رو کم می‌کنه، هم برای آدم هم برای ابزار هوش مصنوعی
  • اسم تابع رو برای جای صدازدنش بهینه کن تا فراخوانی‌ها مثل جمله خونده بشن
  • با نوع‌های دامنه‌ای، اسم پارامتر آزاد می‌شه که «چرا» رو بگه
  • طول اسم باید با محدوده‌اش جور باشه: محدودهٔ کوچیک، اسم کوتاه
  • از پیشوند I، getterها/setterها و کلاس‌های کلی مثل Utils دوری کن
منبع: TLDR Dev — https://adamtornhill.substack.com/p/an-opinionated-and-mainly-correct
اشتراک‌گذاری:TelegramXWhatsApp

اخبار مرتبط

  • شاخص اقتصادی Anthropic: ریتم زندگی توی مصرف Claude
    ۵ هفته پیش۴ دقیقهanthropic.com
  • قرارداد تصویرسازی رو چطور مذاکره کنیم؟
    ۵ هفته پیش
۴ دقیقه
creativeboom.com
  • ADR؛ ثبت یک تصمیم معماری در یک صفحه
    ۵ هفته پیش۳ دقیقهmartinfowler.com
  • عاشقِ چیزِ اشتباه می‌شی
    ۵ هفته پیش۳ دقیقهkarlkoch.me
  • هرچی اتوپایلوت بهتر، خلبان ضعیف‌تر
    ۵ هفته پیش۲ دقیقهjulienreszka.com