توییتر نه تنها در پلتفرم رسانه های اجتماعی بلکه از طریق پیوندهای شریک در سراسر اینترنت از طریق اشتراک گذاری رشد می کند. به جز روز دوشنبه، بیشتر آن پیوندها از کار افتادند.
تقریباً برای یک ساعت، هر کسی که سعی میکرد مقالات اخیر منتشر شده را در توییتر به اشتراک بگذارد، با یک پیام خطایی مواجه میشد که به وضوح برای توسعهدهندگان در نظر گرفته شده بود:
تقریباً انگار توییتر به ناشران اطلاع می داد که قبض آب خود را پرداخت نکرده اند و به همین دلیل نمی توانند پیوندهایی را در شبکه اجتماعی منتشر کنند.
چه چیزی اشتباه پیش رفت؟
لازم نبود خیلی منتظر بمانیم تا ایلان ماسک، مدیرعامل توییتر توضیح دهد. ماسک در پاسخ به توییتی از بنیانگذار سابق نت اسکیپ و سرمایهگذار معروف، مارک آندرسن که به این نکته اشاره میکند که چهار مورد از پنج گرایش برتر توییتر در مورد توییتر هستند، در توییتی نوشت: «یک تغییر کوچک API پیامدهای عظیمی داشت. پشته کد بسیار شکننده است. دلیل خوبی وجود ندارد. در نهایت به بازنویسی کامل نیاز خواهد داشت.”
یک تغییر کوچک API پیامدهای زیادی داشت. پشته کد بدون هیچ دلیل موجهی بسیار شکننده است. در نهایت نیاز به بازنویسی کامل دارد.6 مارس 2023
این توییت به ظاهر واضح باید دلیلی برای هشدار باشد. ماسک ادعا میکند که پشته کد (در اصل مجموعه عظیمی از برنامهها که همه با هم برای ایجاد کل توییتر کار میکنند) شکننده است و نیاز به بازنویسی دارد. چیزی که او نمی تواند به آن اشاره کند این است که در میان هزاران توییتر کارمندانی که او از نوامبر اخراج کرد، تعداد زیادی از آنها مهندس بودند و می توان حدس زد که برخی در آنچه به عنوان QA یا تضمین کیفیت شناخته می شود، بودند.
معمولاً اگر قصد دارید هر نوع تغییر کد را در یک وب سایت، سرویس آنلاین یا برنامه ایجاد کنید، QA آن را روی یک نسخه آفلاین پلت فرم آزمایش می کند. به این ترتیب، آنها اطمینان میدهند که بهروزرسانیها، هر چقدر هم که کوچک باشند، تأثیر نامطلوبی بر محیط زندگی ندارند.
این مفهوم به عنوان «تولید»، سایت یا خدمات زنده، در مقابل «استیجینگ» شناخته میشود، محیطی که شبیه به زندگی است، اما کاربران نمیتوانند آن را ببینند یا لمس کنند. شما کد یا ویژگی جدید خود را از طریق مرحلهبندی اجرا میکنید، گروهی از آزمایشکنندههای QA مجموعهای از سناریوهای شناختهشده را اعمال میکنند (شاید آنها را در یک یا دو لبه پرتاب میکنند) و تا زمانی که هیچ پرچم قرمزی وجود نداشته باشد، بهروزرسانی از مرحله مرحله به مرحله تولید منتقل میشود. .
توییتر که از زمانی که ماسک مدیریت را به دست گرفت، قابلیت اطمینان کلی خود را کاهش داده است (از آفلاین شدن تا ظاهر شدن و ناپدید شدن غیرمنتظره ویژگیها)، ممکن است بهروزرسانیهای خود را به روشی متفاوت دریافت کند.
مشک دوست دارد ویژگی های تولید را آزمایش کند (در برگه جدید باز می شود) (سایت زنده). در نتیجه، او مدام با عواقب ناخواسته مواجه می شود.
در مورد وجود یا عدم وجود تیم QA توییتر اختلاف نظر وجود دارد.
برخی استدلال می کنند که یکی وجود دارد، اما ماسک بی تاب می شود و سپس کد تست نشده را به صورت زنده اجرا می کند.
دیگران اصرار دارند که ایلان ماسک به توییتر رسید و متوجه شد که توییتر تیم QA ندارد و مدت زیادی است که در تمرین کدهای آزمایش نشده به صورت زنده فعالیت می کند. اگرچه بسیار بعید به نظر می رسد.
من مستقیماً در توییتر از ماسک پرسیدم اگر بهروزرسانی API در مرحلهبندی آزمایش شد قبل از پخش زنده و اگر پاسخ دهد این پست را به روز می کند.
هرگز مپندار
فرضی که او در اینجا مطرح کرد، مبنی بر اینکه یک تغییر کوچک API تأثیر کمی بر سایت خواهد داشت، یک فرض ضعیف بود. و با این حال، ماسک هنوز نمیداند که این کار را اشتباه انجام میدهد.
آزمایش هر نوع ویژگی در یک نسخه زنده از یک پلتفرم پیچیده مانند توییتر به ناچار منجر به باگ و خرابی می شود.
آیا بازنویسی پشته کد همه اینها را حل می کند؟ شاید، اما تعداد بسیار کمی از پلتفرمها به همان اندازه که در زمان راهاندازی بودند تمیز میمانند و حتی اگر بازنویسی قوی و بینقص باشد، بهروزرسانیهای مکرر و ویژگیهای جدید این ثبات را آزمایش خواهند کرد.
تا زمانی که ماسک از آزمایش کامل چیزی که راهاندازی میکند خودداری میکند، هیچ سناریویی وجود ندارد که در آن توییتر از خرابی منظم فرار کند.
این یک راه حل ساده است، ایلان، QA را به بخشی اجتناب ناپذیر از خط لوله توسعه تبدیل کنید و خود و ما را از سردردهای زیادی نجات دهید. یا به روش خود ادامه دهید زیرا این کار بسیار خوب است.