دیزاین دریفت؛ وقتی فیگما از محصول عقب میمونه
خلاصهٔ کاملتر
اسپارکباکس این مقاله رو با یه مثال شروع میکنه: طراح سراغ فایل فیگمای نه ماه پیش میره و میبینه محصول زنده یه سری رادیو باتن داره که تو فایل نیستن، چون یه تغییر لحظهآخری بدون ریویو طراحی رفته رو پروداکشن. نویسنده اسم این فاصله رو design drift میذاره و میگه این باگ یا سهلانگاری نیست، آنتروپیه: هر سیستمی که سریعتر از مستندسازیش شیپ میکنه همین شکلی میشه.
استدلال اصلی مقاله اینه که canonical با correct یکی نیست. کد رکورد رسمی چیزیه که محصول همین الان هست، چون کاربر دقیقاً همون پیکسلها رو لمس میکنه؛ ولی همون کد پر از درخواستهای مارکتینگ و تغییر متن جمعهبعدازظهره. پس کد حقیقتِ «الان»ه و فیگما حقیقتِ «بعد». نویسنده میگه هرچی فیگما از «الان» دورتر میشه، اقتدارش روی «بعد» رو هم از دست میده.
مقاله دریفت رو دو دسته میکنه. دریفت صفحه یعنی محتوا، استایل یا چیدمان یه صفحه فرق کرده؛ پیدا کردنش سخته ولی درست کردنش راحته، چون کامپوننتها از قبل تو لایبرری هستن و فقط باید بذاریشون تو فایلی که عقب مونده. دریفت کامپوننت یعنی خود کامپوننت عوض شده یا جور دیگهای استفاده شده، مثلاً یکی سرخود یه ورینت جدید ساخته. پراپهای وابسته به state مثل hover و error هم راحت قایم میشن، چون فیگما کم پیش میاد همهٔ حالتها رو نشون بده.
برای دریفت صفحه نویسنده پیشنهاد میده هر دو نسخهٔ صفحه رو بدی به یه مدل تصویری و ازش بخوای همهٔ تفاوتها رو لیست کنه، مثل اسکیل compare-design-to-product که روی چهار محور تمرکز میکنه: متن، المانهای اضافه یا حذفشده، تغییر چیدمان، و تغییر استایل. ولی خروجی مدل خنثیه: اگه کد درسته فیگما آپدیت میشه، اگه کد غلطه فیکس ثبت میشه. این قضاوت کار آدمه.
برای تغییر کامپوننت هم چهار سطح اثر میشمره و میگه تا جای ممکن باید تغییر رو تو کامپوننت موجود جا داد. تو مثال مقاله، کامپوننت TicketTier همیشه یه قیمت داشت و حالا مارکتینگ قیمت Early Bird رو شیپ کرده، یعنی قیمت عادی، قیمت تبلیغاتی و تاریخ انقضا. چون هیچ پیشفرضی جواب نمیداد، تیم اون رو deprecated کرد و یه کامپوننت تازه ساخت. نویسنده آخرش میگه این مقایسه باید عادت باشه نه کار قهرمانانه.
نکات کلیدی:
- کد canonical هست ولی لزوماً correct نیست؛ فیگما حقیقتِ «بعد» رو نگه میداره
- دریفت صفحه مشکل دیدنه و خودکارشدنیه؛ دریفت کامپوننت مشکل قضاوته و آدم میخواد
- چهار سطح اثر تغییر کامپوننت: silently safe، mechanically migratable، تصمیم انسانی برای هر instance، و deprecate
- پراپهای وابسته به state مثل hover و error سختترین بخش تشخیصان، چون فیگما همهٔ حالتها رو نشون نمیده
- تو مثال مقاله TicketTier بهخاطر قیمت Early Bird و تاریخ انقضا deprecated و از نو ساخته شد




