design businessMay 10, 202613 min read

تولید صحنه‌سازی توسعه برای طراحان: راهنمای ۲۰۲۶

توسعه، صحنه‌سازی، تولید. سه محیطی که هر طراح در آنها کار می‌کند اما تعداد کمی آنها را درک می‌کنند. توضیح ساده، با ابزارهای واقعی و اشتباهاتی که باید از آنها اجتناب کرد.

By Boone
XLinkedIn
dev staging prod for designers

بیشتر طراحان، توسعه، صحنه‌سازی و تولید را با شکستن چیزی روی یک دستگاه اشتباه یاد می‌گیرند. یک دستگاه بافندگی ارسال می‌شود. یک مهندس جا می‌خورد. یک تاپیک Slack با «صبر کن، این کدام URL است؟» شروع می‌شود. این کل فرآیند آشنایی اولیه است.

این توضیحی است که باید از روز اول دریافت می‌کردید. بدون اصطلاحات تخصصی، بدون تکان دادن دست، فقط سه محیط، چه کسی در هر کدام زندگی می‌کند و شما به عنوان یک طراح قرار است در آنها چه کاری انجام دهید.

اگر تا به حال هنگام نگاه کردن به تب اشتباه پرسیده‌اید «آیا این هنوز فعال است؟»، این مقاله برای شماست.

چرا اصلاً سه محیط وجود دارد

نرم‌افزار مشکلی دارد که محصولات فیزیکی ندارند. پس از ارسال، بلافاصله و همزمان برای همه ارسال می‌شود. هیچ کارخانه، بازار آزمایشی یا انتشار کندی به طور پیش‌فرض وجود ندارد. یک تغییر بد می‌تواند در مدت زمانی که برای تازه کردن یک صفحه لازم است، یک میلیون کاربر را تحت تأثیر قرار دهد.

سه محیط وجود دارد تا به تیم جایی برای اشتباه بدهد قبل از اینکه کاربران اشتباه را ببینند. توسعه جایی است که به شما اجازه داده می‌شود خیلی اشتباه کنید. مرحله‌ی آماده‌سازی جایی است که به شما اجازه داده می‌شود کمی اشتباه کنید. تولید جایی است که به هیچ وجه اجازه ندارید اشتباه کنید، زیرا افراد واقعی در حال تماشای آن هستند.

می‌توانید آن را به عنوان یک مقاله‌ی یکسان در نظر بگیرید که سه مرحله‌ی ویرایشی را پشت سر می‌گذارد. پیش‌نویس اول خام است، نسخه‌ی آشپزخانه تقریباً تمیز است، مجله‌ی چاپ شده توسط ده نفر خوانده شده است. هیچ کس پیش‌نویس اول را منتشر نمی‌کند و هیچ کس به همین دلیل مستقیماً به مرحله‌ی تولید نمی‌رود.

تیم‌هایی که مراحل را رد می‌کنند این کار را می‌کنند زیرا کوچک، سریع یا بی‌ملاحظه هستند. گاهی اوقات هر سه. ساختار وجود دارد تا تیم بتواند بدون کند شدن، از بی‌ملاحظگی رشد کند.

برگه‌ی تقلب سه محیطی

قبل از اینکه عمیق‌تر شویم، در اینجا برگه‌ی تقلبی وجود دارد که می‌توانید از آن اسکرین‌شات بگیرید و دیگر هرگز نیازی به پرسیدن در مورد آن نداشته باشید.

محیطهدفمخاطبدادهالگوی URLماشه استقرارسبک بررسی
توسعهساخت و شکستن آزادانهیک مهندس، گاهی اوقات شماجعلی یا بذرپاشی شده، اغلب خرابlocalhost:3000 یا yourname.dev.appتغییرات کد محلیجفت‌سازی، اشتراک‌گذاری صفحه

اگر فقط یک ردیف را به خاطر دارید، ردیف داده‌ها را به خاطر داشته باشید. توسعه دارای داده‌های جعلی است، مرحله‌بندی دارای داده‌های واقع‌بینانه است، تولید دارای داده‌هایی است که اگر با آن اشتباه کنید، از شما شکایت می‌شود. با هر سه به طور مناسب رفتار کنید.

توسعه: جایی که مهندسان زندگی می‌کنند، جایی که همه چیز به طور هدفمند اتفاق می‌افتد

توسعه هر چیزی است که یک مهندس روی لپ‌تاپ خود یا در یک فضای ابری شخصی اجرا می‌کند. معمولاً به آن localhost می‌گویند. روی دستگاه آنها اجرا می‌شود، با یک پایگاه داده جعلی ارتباط برقرار می‌کند و دقیقاً برای یک نفر در یک زمان وجود دارد. شما تقریباً هرگز این محیط را نمی‌بینید و این درست است.

وقتی یک مهندس می‌گوید "روی دستگاه من کار می‌کند"، در مورد توسعه صحبت می‌کند. نیمی از مواقع آنجا کار می‌کند زیرا داده‌ها جعلی هستند، شبکه سریع است و هیچ اتفاق دیگری نمی‌افتد. نیمی دیگر از مواقع آنجا کار می‌کند زیرا آنها پنج دقیقه پیش آن را تمام کرده‌اند و در برابر هیچ چیز شبیه واقعیت آزمایش نشده است.

توسعه همچنین جایی است که اجزای جدید برای اولین بار ظاهر می‌شوند. اگر یک الگوی کارت را در Figma تحویل داده باشید، اولین باری که در کد واقعی وجود دارد، در محیط توسعه یک مهندس است. آنها احتمالاً شما را با یک اسکرین شات یا دستگاه بافندگی از localhost پینگ می‌کنند. این آنها هستند که برش اولیه را به شما نشان می‌دهند، نه نهایی.

شما توسعه را برای پرداخت پیکسل بررسی نمی‌کنید. شما توسعه را بررسی می‌کنید تا ساختار، رفتار و هدف را تأیید کنید. یادداشت‌های پیکسل را برای مرحله‌بندی نگه دارید.

چارچوب وکسل که سه پلتفرم برچسب‌گذاری شده را نشان می‌دهد DEV STAGING PROD با رنگ‌ها و حس متمایز، dev نامرتب و کوچک، staging mid fidelity با چک لیست، prod صیقل داده شده و محافظت شده، پاستل نرم
چارچوب وکسل که سه پلتفرم برچسب‌گذاری شده را نشان می‌دهد DEV STAGING PROD با رنگ‌ها و حس متمایز، dev نامرتب و کوچک، staging mid fidelity با چک لیست، prod صیقل داده شده و محافظت شده، پاستل نرم

مرحله‌بندی: تمرین نهایی

مرحله‌بندی جایی است که تیم قبل از مشتریان، خود را بررسی می‌کند.

این برنامه روی زیرساخت واقعی، با داده‌های واقعی، روی یک URL که معمولاً با کلمه staging در مقابل دامنه معمولی شما شروع می‌شود، اجرا می‌شود.

هر کسی در تیم می‌تواند آن را ببیند. مشتریان نمی‌توانند.

اینجا جایی است که شما بیشتر بررسی طراحی خود را انجام می‌دهید. شما آن را با فایل Figma مقایسه می‌کنید. شما روی جریان روی یک دستگاه واقعی کلیک می‌کنید. چیزهایی را که همیشه در Figma خوب به نظر می‌رسند و در کد عجیب هستند، می‌بینید: ارتفاع خطوط، حالت‌های فوکوس، وقتی یک نام چهل کاراکتر طول دارد چه اتفاقی می‌افتد، وقتی اصلاً داده‌ای وجود ندارد چه اتفاقی می‌افتد.

مرحله‌بندی معمولاً تا جایی که تیم می‌تواند از عهده آن برآید، تولید را منعکس می‌کند. همان ساختار پایگاه داده، همان سرویس‌های شخص ثالث در حالت تست، همان پرچم‌های ویژگی، همان جریان احراز هویت. هرچه مرحله‌بندی به تولید نزدیک‌تر باشد، هنگام ارسال چیزی با غافلگیری‌های کمتری مواجه می‌شوید. تیم‌هایی که اجازه می‌دهند مرحله‌بندی از تولید فاصله بگیرد، در نهایت اشکالاتی را که می‌توانستند به صورت رایگان دریافت کنند، ارسال می‌کنند.

مرحله‌بندی همچنین جایی است که متوجه می‌شوید آیا مهندس، طراحی شما را آنطور که منظور شما بوده تفسیر کرده است یا خیر. نیمی از مواقع این کار را انجام می‌دهند. نیمی دیگر جایی است که مکالمه واقعاً شروع می‌شود.

تولید: جایی که افراد واقعی زندگی می‌کنند

تولید، سایت زنده است. این چیزی است که مشتریان شما هنگام تایپ URL شما در مرورگر می‌بینند. روی زیرساخت واقعی اجرا می‌شود، با داده‌های واقعی، پول واقعی که از طریق آن جابجا می‌شود، و پیامدهای واقعی برای هر تغییر. وقتی روی آن کلیک می‌کنید، با همان سیستمی که کاربران شما هستند، تعامل دارید.

این محیطی است که در آن شما دیگر طراح نیستید و شروع به مهمان بودن می‌کنید. شما در تولید برای آزمایش ایده‌ها کلیک نمی‌کنید. شما چیزها را امتحان نمی‌کنید. شما به عنوان یک کاربر جعلی وارد نمی‌شوید تا ببینید چه اتفاقی می‌افتد، زیرا در تولید هیچ کاربر جعلی وجود ندارد، فقط کاربران واقعی با سوابق واقعی وجود دارند که می‌توانید به طور تصادفی آنها را خراب کنید.

تولید برای نظارت، برای بررسی‌های موردی پس از استقرار، برای گرفتن اسکرین‌شات از چیزهایی است که از قبل فعال هستند. اگر نیاز به آزمایش چیزی داشته باشید، به مرحله‌ی تولید برمی‌گردید. اگر مرحله‌ی تولید نتواند آن چیز را به شما نشان دهد، درخواست پیش‌نمایش می‌کنید. به مرحله‌ی تولید سرک نمی‌کشید.

آزمون بلوغ برای هر تیمی این است که چقدر به این قانون پایبند هستند. تیم‌های جوان دائماً روی پروداکشن کلیک می‌کنند. تیم‌های ارشد با آن مانند یک اتاق تمیز رفتار می‌کنند.

چرخه‌ی حیات یک تغییر واحد

یک تغییر طراحی واحد قبل از اینکه کاربر آن را ببیند، از هر محیطی عبور می‌کند. دانستن این چرخه‌ی حیات چیزی است که طراحانی را که مهندسان را ناامید می‌کنند از طراحانی که آنها را خوشحال می‌کنند، جدا می‌کند.

در اینجا نحوه‌ی حرکت یک تغییر در واقع آمده است:

  1. شما طرح را در Figma، همراه با حاشیه‌نویسی‌ها، حالت‌ها و موارد حاشیه‌ای، تحویل می‌دهید.

  2. یک مهندس تغییر را به محیط توسعه‌ی خود می‌برد و آن را به صورت محلی می‌سازد.

سپس کار به صورت عمومی برای تیم ارسال می‌شود:

  1. آنها یک درخواست pull باز می‌کنند که یک پیش‌نمایش استقرار را با یک URL منحصر به فرد نمایش می‌دهد. ۴. شما پیش‌نمایش را بررسی می‌کنید، نظر می‌دهید، درخواست تغییر می‌دهید، تأیید می‌کنید.

و در نهایت به دست کاربران می‌رسد:

۵. PR ادغام می‌شود و تغییر برای آخرین بررسی تیمی به staging ارسال می‌شود.

۶. پس از تأیید staging، تغییر به production ارسال می‌شود و کاربران آن را می‌بینند.

مراحل سه و چهار ابرقدرت جدید هستند. استقرارهای پیش‌نمایش به این معنی است که شما منتظر staging نیستید تا کار خود را در کد ببینید. شما آن را به محض اینکه مهندس شاخه خود را push می‌کند، می‌بینید. این قبلاً یک تجمل بود و اکنون به یک امر ضروری تبدیل شده است.

اگر تیم شما استقرارهای پیش‌نمایش ندارد، این تنها چیزی است که می‌تواند بیشترین تأثیر را داشته باشد. برای آن تلاش کنید.

نمودار وکسل که یک مکعب کوچک را نشان می‌دهد که از لپ‌تاپ محلی به پیش‌نمایش PR، به مرحله‌ی اجرا و به تولید حرکت می‌کند، هر ایستگاه برچسب‌گذاری شده، فلش‌های شاخه‌ای، پاستل نرم
نمودار وکسل که یک مکعب کوچک را نشان می‌دهد که از لپ‌تاپ محلی به پیش‌نمایش PR، به مرحله‌ی اجرا و به تولید حرکت می‌کند، هر ایستگاه برچسب‌گذاری شده، فلش‌های شاخه‌ای، پاستل نرم

استقرارهای پیش‌نمایش همه چیز را تغییر داد

ده سال پیش، بررسی طراحی به معنای پرواز به سمت میز مهندس یا انتظار تا staging push سه‌شنبه آینده بود. امروزه، هر پلتفرم میزبانی مدرن به هر درخواست pull، URL مخصوص به خود را می‌دهد. Vercel آنها را پیش‌نمایش استقرارها می‌نامد، Netlify آنها را پیش‌نمایش‌های استقرار می‌نامد، Render و Cloudflare و AWS Amplify همگی نسخه‌هایی از یک چیز هستند.

این در عمل به چه معناست: هر شاخه، هر PR، هر تغییر در پرواز، یک URL زنده و قابل کلیک دارد که می‌توانید بدون انتظار برای چیزی آن را بررسی کنید. مهندس شاخه خود را push می‌کند، پیش‌نمایش در دو دقیقه ساخته می‌شود و یک ربات URL را برای شما در PR قرار می‌دهد. شما روی آن کلیک می‌کنید، بررسی می‌کنید، نظر می‌دهید و به کار خود ادامه می‌دهید.

پیش‌نمایش استقرارها، حلقه بررسی طراحی را از چند روز به چند دقیقه کاهش می‌دهند. آنها همچنین ویدیوهای Loom را بسیار کمتر ضروری می‌کنند، زیرا URL پیش‌نمایش، یک ویدیوی Loom است که می‌توانید با آن تعامل داشته باشید. اگر از آنها استفاده نکرده‌اید، از مهندس خود بخواهید که در مورد هر PR باز، نظر ربات را به شما نشان دهد. لینک همینجاست.

چند نکته که باید در مورد پیش‌نمایش‌ها بدانید. آنها با داده‌های مرحله‌بندی یا آزمایشی اجرا می‌شوند، هرگز با داده‌های تولید. آنها موقتی هستند و پس از بسته شدن PR از بین می‌روند. آنها برای هر شاخه URL مخصوص به خود را دارند، بنابراین می‌توانید ده عدد از آنها را به طور همزمان برای ده ویژگی مختلف باز کنید.

متغیرهای محیطی، پیکربندی‌ها و دلیل مشاهده "حالت تست"

هر محیط کد یکسانی را اجرا می‌کند اما با سرویس‌های مختلف در ارتباط است. توسعه از یک پایگاه داده تست، مرحله‌بندی از یک پایگاه داده مرحله‌بندی و تولید از پایگاه داده واقعی استفاده می‌کند. هر محیط همچنین از نسخه‌های مختلف هر ابزار شخص ثالث استفاده می‌کند: Stripe در حالت تست در توسعه و مرحله‌بندی، Stripe در حالت زنده در تولید. همین امر در مورد فرستنده‌های ایمیل، تجزیه و تحلیل، احراز هویت و هر وابستگی خارجی نیز صدق می‌کند.

روشی که تیم‌ها همه این موارد را مرتب نگه می‌دارند، متغیرهای محیطی هستند که پیکربندی یا رمز نیز نامیده می‌شوند. اینها مقادیر کوچکی مانند DATABASE_URL یا STRIPE_KEY هستند که در هر محیط تغییر می‌کنند. ابزارهایی مانند Doppler، Vercel env vars، AWS Secrets Manager یا 1Password Connect آنها را مدیریت می‌کنند.

چرا این موضوع برای شما به عنوان یک طراح مهم است: وقتی می‌بینید که Stripe شماره کارت‌های آزمایشی را در مرحله‌بندی نشان می‌دهد، این کلید Stripe در مرحله‌بندی است. وقتی تصویر پروفایل توسعه‌دهنده خود را می‌بینید اما یک کارت اعتباری کاملاً جعلی در مرحله‌بندی است، این در حال کشیدن اطلاعات از یک پایگاه داده جعلی اما یک مجوز Clerk واقعی است. وقتی چیزی در مرحله‌بندی کار می‌کند اما در مرحله تولید خراب می‌شود، نود درصد اوقات یک متغیر محیطی گم شده یا متفاوت است.

شما نیازی به مدیریت این موارد ندارید. فقط باید بدانید که آنها وجود دارند، بنابراین وقتی یک مهندس می‌گوید "صبر کنید، این با استفاده از کلید Stripe در مرحله تولید است، روی آن دکمه کلیک نکنید"، می‌دانید منظور آنها چیست.

صحنه وکسل از سه URL پیش‌نمایش که در کنار سه PR باز شناور هستند، هر کدام سطح برنامه کوچک و مستقل خود را دارند، مانند جهان‌های موازی موقت، با رنگ‌های پاستلی ملایم
صحنه وکسل از سه URL پیش‌نمایش که در کنار سه PR باز شناور هستند، هر کدام سطح برنامه کوچک و مستقل خود را دارند، مانند جهان‌های موازی موقت، با رنگ‌های پاستلی ملایم

برابری داده‌ها: آنچه در واقع خواهید دید

داده‌های درون هر محیط تعیین می‌کنند که چه چیزی را می‌توانید آزمایش کنید و چه چیزی را نمی‌توانید. این چیزی است که طراحان اغلب از دست می‌دهند.

توسعه‌دهندگان معمولاً داده‌های اولیه دارند، مجموعه‌ای کوچک از کاربران جعلی، محصولات جعلی، همه چیز جعلی، که اغلب هر روز صبح حذف و دوباره بارگذاری می‌شوند. نام‌ها احمقانه خواهند بود، آدرس‌ها از اسپرینگفیلد خواهند بود، آواتارها مربع‌های خاکستری کوچکی خواهند بود. سعی نکنید حالت‌های خالی یا موارد حاشیه‌ای را با این داده‌ها ارزیابی کنید، زیرا برای عملی کردن مسیر شاد ساخته شده‌اند.

مرحله‌بندی معمولاً یا داده‌های تولید ناشناس یا یک مجموعه داده واقع‌بینانه و گزینش‌شده دارد. شکل‌های واقعی، طول‌های واقعی، موارد حاشیه‌ای واقعی، اما نام‌ها و ایمیل‌ها پاک شده‌اند. اینجاست که شما واقعاً می‌بینید طرح‌های شما با مشتری به نام کریستوفر حسن-ویلیامسون سوم یا سفارشی با شصت و سه خط کالا چگونه به نظر می‌رسند. اینجا تنها جایی است که می‌توانید QA طراحی واقعی انجام دهید.

تولید داده‌های واقعی دارد، به همین دلیل است که به آن سر نمی‌زنید. می‌توانید به دنبال عکس‌های فوری و داشبورد باشید، اما هرگز نباید از تولید به عنوان زمینه آزمایش خود استفاده کنید.

نقش طراح در هر محیط

ساده‌ترین راه برای فکر کردن به شغلتان در هر محیط، اختصاص دادن یک حالت متفاوت به خودتان در هر محیط است.

در توسعه، شما یک هم‌تیمی هستید. شما بررسی‌های سریعی را در طول اشتراک‌گذاری صفحه انجام می‌دهید، تأیید می‌کنید که مهندس طراحی را درک کرده است، و مشکلات ساختاری بزرگ را زود تشخیص می‌دهید. شما در توسعه چیزی را خط قرمز نمی‌گذارید زیرا مهندس هنوز در حال ساخت است.

در مرحله‌بندی، شما تضمین کیفیت طراحی هستید. شما با فایل Figma مقایسه می‌کنید، حالت‌ها را بررسی می‌کنید، لیست نکات را می‌نویسید. اینجا جایی است که بررسی جدی خود را انجام می‌دهید، نظرات ساختاریافته می‌گذارید و تغییر را تأیید یا مسدود می‌کنید. مرحله‌بندی دامنه شماست.

در تولید، شما یک مهمان هستید. شما تغییر ارسال شده را تأیید می‌کنید، از صفحه عکس می‌گیرید، اگر کار شما این است، تجزیه و تحلیل‌ها را تماشا می‌کنید. شما در تولید، روی آزمایش چیزها کلیک نمی‌کنید یا "فقط یک چیز را خیلی سریع امتحان کنید" را انجام نمی‌دهید.

این سه حالت را در ذهن خود نگه دارید و یکی از طراحان آسان‌تری خواهید بود که تیم مهندسی شما با آنها کار کرده است.

اشتباهاتی که طراحان دائماً مرتکب می‌شوند

من شاهد بوده‌ام که طراحان همه این موارد را انجام می‌دهند. خودم هم برخی از آنها را مرتکب شده‌ام. هیچ‌کدام از آنها آخر دنیا نیستند، اما همه آنها تیم شما را کند می‌کنند و حسن نیت مهندسی را از بین می‌برند.

موارد کلاسیک:

  • ارسال یک URL توسعه‌دهنده به مشتری. توسعه‌دهنده روی لپ‌تاپ کسی است، بنابراین مشتری روی لینک کلیک می‌کند، خطای اتصال دریافت می‌کند و می‌پرسد که آیا شما اصلاً چیزی ارسال می‌کنید یا خیر.

  • گزارش یک "باگ زنده" از یک حافظه پنهان CDN قدیمی. شما به نسخه‌ای نگاه می‌کنید که شش ساعت پیش ذخیره شده است و یک به‌روزرسانی اساسی آن را برطرف می‌کند.

دسته بعدی از سردرگمی در مورد اینکه چه چیزی در کجا به صورت زنده در حال اجرا است، ناشی می‌شود:

  • ثبت یک باگ برای چیزی که قبلاً در مرحله آماده‌سازی برطرف شده است. شما به مرحله تولید نگاه کردید، نسخه قدیمی را دیدید، با وحشت یک Slack ثبت کردید. این رفع اشکال به مدت یک هفته در مرحله آماده‌سازی بوده است.

  • درخواست نکردن لینک پیش‌نمایش. شما سه روز صبر می‌کنید تا به مرحله‌ی آماده‌سازی برسد، در حالی که مهندس می‌توانست در همان لحظه‌ی ارسال، یک URL پیش‌نمایش به اشتراک بگذارد.

دو مورد آخر در مورد رعایت مرز بین آماده‌سازی و تولید است:

  • کلیک کردن روی تولید برای "آزمایش" چیزی. شما اکنون یک کاربر واقعی با عواقب واقعی هستید، پس متوقف شوید.

پرسیدن "آیا این هنوز فعال است؟" به جای بررسی گزارش استقرار. اکثر تیم‌ها یک کانال Slack دارند که هر استقرار را ارسال می‌کند، بنابراین آن را نشانه‌گذاری کنید.

هر یک از این موارد، زمانی که از وجود آن مطلع شدید، یک راه حل تک خطی است. هیچ‌کدام از آنها احمقانه نیستند. آنها فقط چیزهایی هستند که کسی به شما نگفته است.

صحنه وکسل از چهار کارت برچسب‌گذاری شده، URL توسعه CDN قدیمی به کلاینت، مشکل در صحنه‌سازی بدون لینک پیش‌نمایش، پاستل نرم
صحنه وکسل از چهار کارت برچسب‌گذاری شده، URL توسعه CDN قدیمی به کلاینت، مشکل در صحنه‌سازی بدون لینک پیش‌نمایش، پاستل نرم

چگونه آنچه را که نیاز دارید درخواست کنید

روی دیگر سکه‌ی اشتباهات، آداب معاشرت است. ارتباط طراح و مهندس در محیط‌ها عمدتاً در مورد خاص بودن است. درخواست‌های مبهم زمان‌بر هستند، درخواست‌های خاص هیچ هزینه‌ای ندارند.

بد: "هی، می‌توانی طرح کارت جدید را جایی قرار بدهی که بتوانم آن را ببینم؟"

خوب: "سلام، میشه شاخه طراحی کارتت رو فشار بدی و وقتی آماده شد، آدرس پیش‌نمایش رو برام بفرستی؟"

بد: "آیا به‌روزرسانی صفحه اصلی هنوز فعاله؟"

خوب: "آیا PR 412 هنوز در مرحله تولید هست یا هنوز در مرحله آماده‌سازی هست؟"

بد: "به نظر میاد یه چیزی تو سایت فعال مشکل داره."

خوب: "در مرحله تولید، کارت قیمت‌گذاری در /pricing برای من حاشیه پایینی نداره. رفرش شده، هنوز مشکل داره. اسکرین‌شات پیوست شده."

الگو در هر مثال یکسانه. محیط رو نام ببرید، تغییر رو نام ببرید، شواهد رو ارائه بدید. مهندسان برای طراحانی که درخواست‌هایی مثل این رو ثبت می‌کنن، کوه‌ها رو جابه‌جا می‌کنن. اونا بی‌سروصدا از اونایی که این کار رو نمی‌کنن، دلخور می‌شن.

پرچم‌های ویژگی: مرحله‌بندی داخل تولید

مفهوم چهارمی هم وجود داره که مدل dev/staging/prod رو به روشی مفید می‌شکنه: پرچم‌های ویژگی. پرچم ویژگی یه سوئیچ تو کد هست که می‌گه "این ویژگی جدید رو به کاربر X نشون بده اما به کاربر Y نشون نده." تیم‌ها از آنها برای ارسال کد به محیط تولید استفاده می‌کنند، در حالی که ویژگی جدید را فقط در معرض گروه کوچکی از کاربران، اغلب فقط کارکنان داخلی، قرار می‌دهند.

ابزارهایی مانند LaunchDarkly، Statsig، ConfigCat و پرچم‌های خود Vercel این کار را انجام می‌دهند. طراحی جدید از نظر فنی در محیط تولید زنده است، اما فقط افرادی که در پرچم داخلی هستند آن را می‌بینند. بقیه افراد نسخه قدیمی را می‌بینند.

این برای شما مهم است زیرا پاسخ به "آیا این زنده است؟" مبهم‌تر می‌شود. کد زنده است اما ویژگی ممکن است نباشد، بنابراین ممکن است لازم باشد از مهندس بخواهید پرچم را برای حساب شما بچرخاند. یا ممکن است بگویند "ارسال شده است، درست پشت یک پرچم، ما آن را برای همه سه‌شنبه روشن خواهیم کرد."

پرچم‌های ویژه نحوه ارسال مداوم تیم‌های بالغ بدون خراب کردن همه هستند. آنها همچنین نحوه انجام معادل بررسی مرحله‌بندی روی داده‌های تولید واقعی، با کاربران واقعی، با ریسک کم هستند.

هر محیط چه چیزی در مورد تیم به شما می‌آموزد

نحوه برخورد یک تیم با این سه محیط تقریباً همه چیز را در مورد بلوغ مهندسی آن به شما می‌گوید. از این به عنوان یک راهنمای سریع برای هر مشتری یا نقش جدید استفاده کنید.

تیمی که مرحله‌بندی ندارد، سریع و دعا می‌کند. آنها در نهایت به یک اشکال برمی‌خورند که برایشان هزینه دارد و سپس مرحله‌بندی را می‌سازند.

تیمی که مرحله‌بندی دارد اما استقرار پیش‌نمایش ندارد، در میانه راه است. بررسی‌ها کند هستند، چرخه از "انجام شده" تا "طراح می‌تواند آن را بررسی کند" بر حسب روز اندازه‌گیری می‌شود، زمان زیادی را صرف انتظار خواهید کرد.

تیمی با استقرارهای پیش‌نمایش، مرحله‌بندی واقعی، تولید نظارت‌شده و پرچم‌های ویژگی، در سطح مورد نظر شما عمل می‌کند. حلقه‌های بازخورد کوتاه هستند، اشتباهات زود کشف می‌شوند، هیچ‌کس در روز راه‌اندازی وحشت نمی‌کند. وقتی در آنجا کار کردید، سطوح دیگر خسته‌کننده به نظر می‌رسند.

سه محیط، سه مخاطب، سه مجموعه داده، یک چرخه عمر که آنها را به هم متصل می‌کند. این کل مفهوم است. هر چیز دیگری در بالا ابزارسازی شده است.

نیازی نیست بدانید که چگونه کد را مستقر کنید یا یک حساب Vercel را مدیریت کنید. فقط باید بدانید که به کدام محیط نگاه می‌کنید، در آنجا مجاز به انجام چه کاری هستید و چگونه آدرس اینترنتی (URL) مناسب را درخواست کنید. این کار را انجام دهید تا طراح مورد نظر مهندسان شما باشید.

گزارش استقرار را نشانه‌گذاری کنید، لینک پیش‌نمایش را درخواست کنید و دیگر به محیط عملیاتی دست نزنید.

Need a design partner who already speaks engineering? We ship into your stack.

Get Started

More from Brainy Papers

Keep reading