برند تایپ یا همون New Type یعنی یه تایپ جدید بسازی رو همون تایپ قدیمی، بدون این که تو رانتایم هیچ خرجی داشته باشه. یه جورایی مثل اینه که سابکلس بسازی ولی واقعاً سابکلس نکردی.
فایدهش چیه؟ به تایپچکر میفهمونی مثلا UserId با یه string فرق داره. تو رانتایم هردوش استرینگن ولی تو تایپ دیگه یکی نیستن.
تو مثال ما، یه UserId درست میکنیم، بعد یه برند جنریک به اسم Locked<T>. اگه تو getUser(true) صدا بزنیم خروجیش میشه Locked<UserId>. حالا توابعی که میخوان یوزر لاک شده باشه فقط همینو قبول میکنن. یعنی دولوپر مجبوره قبل استفاده یوزر رو لاک کنه، وگرنه تایپچکر گیر میده و کدت دیپلوی نمیشه.
اگه اینو نداشتیم، باید تو هر تابع دوباره یوزر رو لاک میکردیم که هم تکراری میشه هم رانتایم گرونتر.
مزایا:
- جلوی خطا رو میگیره
- خودش یه جور داکیومنت زندهست
- یه بار لاک میکنی، رانتایم سریعتره
- نگه داری کدتون رو راحت تر میکنه (maintainability)
ضررش؟ فقط دو سه خط تایپ بیشتر مینویسی، همین. که البته مقایسه کنی با کدی که باید بیشتر مینوشتی چون این تایپا رو نداشتی هیچ بود.
@PyBackendHub
Post #264
3.08K
