DO_NOT_TRACK: یک متغیر برای خاموش کردن همه تلمتریها
خلاصهٔ کاملتر
خیلی از ابزارهای خط فرمان (CLI)، SDKها و فریمورکها بهصورت پیشفرض داده جمع میکنن — از گزارش خطا گرفته تا آمار استفاده و ردیابی ناشناس. مشکل اینه که هر ابزار روش opt-out (انصراف از جمعآوری داده) خودش رو داره و کاربر باید برای هر کدام جداگانه اقدام کنه.
نگاهی به چند نمونه: .NET از DOTNET_CLI_TELEMETRY_OPTOUT=1 استفاده میکنه، AWS SAM CLI از SAM_CLI_TELEMETRY=0، Gatsby از GATSBY_TELEMETRY_DISABLED=1، و Homebrew از HOMEBREW_NO_ANALYTICS=1. هیچ استاندارد مشترکی وجود نداره.
پیشنهاد DO_NOT_TRACK یه متغیر محیطی (environment variable) واحد و استاندارد معرفی میکنه. هدف اینه که کاربر با یه بار تنظیم این متغیر، به همه ابزارها اعلام کنه که نمیخواد هیچکدام از موارد زیر انجام بشه: ردیابی تبلیغاتی، گزارش استفاده (ناشناس یا غیر آن)، تلمتری، گزارش کرش، و هر درخواست شبکهای که برای کارکرد اصلی نرمافزار ضروری نیست.
برای فعال کردن این متغیر کافیه یه خط به فایل تنظیمات شل خودت اضافه کنی. مثلاً در Bash یا Zsh:
export DO_NOT_TRACK=1در Fish Shell هم به این شکل نوشته میشه: set -x DO_NOT_TRACK 1 و در PowerShell: $env:DO_NOT_TRACK = "1".
برای توسعهدهندههای نرمافزار هم توصیه روشنیه: اگه ابزارت تلمتری جمع میکنه، وضعیت این متغیر رو بررسی کن — اگه روی ۱ بود، همه ردیابیها رو خاموش کن. بهتر از اون، به جای opt-out پیشفرض، تلمتری رو opt-in (نیاز به رضایت صریح کاربر) طراحی کن.
این ایده الهام گرفته از استانداردهای مشابهیه که قبلاً جا افتادن: NO_COLOR برای غیرفعال کردن رنگ در خروجی ترمینال و FORCE_COLOR برای اجبار به نمایش رنگ.
نکات کلیدی:
- ابزارهای زیادی بهصورت پیشفرض داده جمع میکنن و هر کدام روش opt-out متفاوتی دارن
- DO_NOT_TRACK=1 یه استاندارد پیشنهادیه که میخواد این پراکندگی رو حل کنه
- با تنظیم این متغیر در فایل شل، تمام ترمینالسشنها تحت پوشش قرار میگیرن
- توسعهدهندهها تشویق میشن تلمتری رو opt-in طراحی کنن، نه opt-out




