موضوع مقاله: متمایزکننده | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # متمایزکننده | مقدمه: برای مثال فرض کنید یک برنامه باید دو شی منحصر به فرد را در حافظه ذخیره کند که foo شناسه هردوی آنهاست. | ## بخش 1: متمایزکننده | برای جلوگیری از یکی در نظر گرفتن این دو شی برنامه ممکن است متمایزکننده‌ای به فرم عددی به آنها نسبت دهد، مثلا foo(1) و foo(2) این دو شی همنام را از هم متمایز می‌کند. این روش در زبان‌های برنامه‌سازی و پلتفرم‌های دیجیتال برای پیام‌رسانی فوری و بازی‌های آنلاین چندنفره به کار گرفته شده است. در پیام رسانی سریع از متمایزکننده برای تفکیک یک کاربر از دیگر کاربرانی که می‌خواهند با همان نام کاربری احراز هویت کنند، استفاده می‌شود. دیسکورد (Discord) در دیسکورد متمایزکننده یک پسوند ۴ رقمی است که به انتهای یک نام کابری اضافه می‌شود. این امر به ۱۰۰۰۰ حساب کاربری اجازه داده است که از یک نام کاربری یکسان استفاده کنند. گذر از متمایزکننده‌ها در سال ۲۰۲۳ یکی از بنیان‌گذاران دیسکورد، استانیسلاو ویشنوسکی در یک پست وبلاگی شرکت درباره بدهی فنی حاصل از استفاده از سیستم متمایزکننده نوشت و بیان کرد که این امر منجر به شکست خوردن نیمی از درخواست‌های دوستی شرکت شده است. در زمان معرفی اولیه اولویت توسعه‌دهندگان دیسکورد این بوده است که به کاربران اجازه دهند تا نام کاربری دلخواه خود را بدون دریافت خطای "نام کاربری مورد نظر شما موجود نیست و قبلا انتخاب شده است" انتخاب کنند. | ## بخش 2: متمایزکننده | در ابتدا دیسکورد هیچ سیستم دوستی نداشت، به همین دلیل به کاربران اجازه میداد نام‌هایشان را با حروف کوچک و بزرگ انتخاب کنند که باعث حساسیت نام‌های کاربری به حروف بزرگ و کوچک شد. دیسکورد همچنین یک سیستم نام جهانی معرفی کرد که در آن کاربران می‌توانستند از یک نام مستعار به جای نام کاربری خود استفاده کنند و این نام در بالای پیام ها ظاهر شود. این پلتفرم یک فرآیند انتقال به یک سیستم مبتنی بر نام مستعار ایجاد کرد که در آن تمامی نام‌های کاربری به حروف بزرگ و کوچک حساس بودند و فقط محدود به کاراکترهای ASCII حروف A-Z و اعداد ۹-۰و نقطه و خط زیر بودند. این انتقال طی چندین ماه انجام شد و به کاربران قدیمی‌تر و کاربران با حساب پولی اجازه داده شد تا زودتر نام کاربری مورد نظر خود را رزرو کنند. این تغییر در فضای مجازی با انتقادات گسترده‌ای مواجه شد زیرا آن را قدمی به عقب و منجر به خطر جعل هویت کاربران توصیف کردند. یک استودیوی معروف بازی‌های ویدیویی اعلام کرد که دیگر نمی‌تواند نام خود را در این پلتفرم ثبت کند. دیسکورد در پاسخ اعلام کرد که فرآیندهایی برای کاربرانی با شناخت عمومی بالا و روابط کاری طولانی‌مدت با شرکت وجود دارد تا بتوانند نام کاربری خود را تحت سیستم جدید رزرو کنند. | ## بخش 3: متمایزکننده | سیستم قدیمی مبتنی بر متمایزکننده‌ها همچنین از هجوم کاربران برای گرفتن نام‌های کاربری منحصربه‌فرد جهت فروش در بازار سیاه جلوگیری می‌کرد، که این مسئله از این منجر به سواتینگ و آزار و اذیت آنلاین شد. این فیلد به عنوان تعاریف نوع و مقدار از اتحادیه‌های(union) برچسب‌دار است و تعیین می‌کند که کدام عضو اتحادیه در نمونه‌ی فعلی انتخاب شود. این کار با استفاده از سازه‌ی کلاسیک switch در زبان C به‌عنوان بخشی از اتحادیه‌ی کلاسیک C انجام می‌شود. برخلاف برخی زیان‌های برنامه‌نویسی که از اتحادیه‌ها پشتیبانی می‌کنند، متمایزکننده در IDL با نام فیلد انتخاب شده یکی نیست. بنابراین، IDL اطلاعات مربوط به نام فیلد انتخاب‌شده و مقدار اتحادیه را از اطلاعات مربوط به مقدار متمایزکننده جدا می‌کند. سایر زبان‌های تعریف رابط زبان تعریف رابط مایکروسافت نیز از اتحادیه‌های دارای برچسب پشتیبانی می‌کند و این امکان را فراهم می‌کند تا مقدار متمایزکننده را از طریق یک ویژگی درون یک ساختار محصورکننده و یا یک تابع تعیین کرد. | ## جمع‌بندی | این کد از یک شناسه منحصربه‌فرد برای کپی بازی و یک شناسه UIUD برای دستگاه کاربر تولید می‌شود.