Dezkubeدزکوب

شفافیت

از کجا بدانید این محصول جدی است؟

ما مشتری مرجعِ اعلام‌شده نداریم و دموی خودکار هم نمی‌دهیم. به‌جایش، همهٔ چیزی را که یک خریدارِ محتاط باید بداند اینجا گذاشته‌ایم.

شروع می‌کنیم از چیزهایی که نداریم

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

حالا آنچه داریم.

هیچ تغییری بدون عبور از این پنج گیت وارد محصول نمی‌شود

گیت · چه کاری می‌کند · اگر رد شود
گیتچه کاری می‌کنداگر رد شود
۱ — تایپ‌چککل کدبیس با TypeScript در حالت سختگیرانه بررسی می‌شودتغییر مرج نمی‌شود
۲ — مجموعهٔ تستبیش از ۱۵٬۰۰۰ تست خودکار اجرا می‌شود؛ کدِ خروجی خوانده می‌شود، نه متن گزارشتغییر مرج نمی‌شود
۳ — کفِ پوشش قفل‌شدهپوشش تست نمی‌تواند پایین بیاید. علاوه بر کفِ کلی، ده‌ها فایلِ حساس قفلِ اختصاصی دارندتغییر مرج نمی‌شود
۴ — قرارداد APIهر تغییر در یک مسیر، تا وقتی snapshot قرارداد OpenAPI بازتولید نشود، build را می‌شکندتغییر مرج نمی‌شود
۵ — لِین کلاستر واقعیمجموعه‌ای از تست‌ها روی یک کلاستر Kubernetes واقعی اجرا می‌شوند، نه شبیه‌سازتغییر مرج نمی‌شود

چرا لِین کلاستر واقعی جدا وجود دارد؟

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

اعداد

تست خودکار
۱۵٬۰۰۰+تست خودکار
پوشش تست روی هستهٔ محصول
۸۳٪پوشش تست روی هستهٔ محصول
اندپوینت API مستند
۲۵۰+اندپوینت API مستند
مدل داده
۹۵مدل داده
مؤلفهٔ زیرساختی پین‌شده
۳۳مؤلفهٔ زیرساختی پین‌شده
آسیب‌پذیری شناخته‌شده در وابستگی‌ها
۰آسیب‌پذیری شناخته‌شده در وابستگی‌ها
پلتفرم رقیب تحلیل‌شده
۱۴پلتفرم رقیب تحلیل‌شده

به‌روزرسانی: ۵ شهریور ۱۴۰۵

تست خودکار
هر رفتار مهم یک تستِ نگهبان دارد
پوشش خط
روی هستهٔ محصول، نه روی کد الگویی
کف پوشش
قفل‌شده؛ نمی‌تواند پایین بیاید و تلاش برای پایین‌آوردنش build را می‌شکند
خطای تایپ
صفر، در حالت سختگیرانهٔ TypeScript
آسیب‌پذیری وابستگی
صفرِ شناخته‌شده، در تاریخ ۵ شهریور ۱۴۰۵
اندپوینت مستند
همه در قرارداد OpenAPI قفل‌شده
مدل داده
دامنهٔ واقعی محصول
مؤلفهٔ پین‌شده
هیچ نسخهٔ شناور
پلتفرم تحلیل‌شده
تحلیل رقابتیِ منتشرشده

چطور ساخته شد

  1. ممیزی خودمان

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

  2. تحلیل رقبا

    ۱۴ پلتفرم خط‌به‌خط تحلیل شدند. هر تحلیل چهار بخش داشت: کجا ما بهتریم، کجا آن‌ها بهترند، چه چیزی باید قرض بگیریم، و کدام ابزارها در بازار مرده‌اند

  3. یک نقشهٔ راه واحد

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

  4. اجرای سناریو-اول

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

  5. ممیزی تقاضا-محور

    در پایان یک ممیزی معکوس اجرا شد: به‌جای «چه ساخته‌ایم»، پرسیدیم «یک بانک، یک دستگاه دولتی و یک هلدینگ در جلسهٔ خرید چه می‌خواهند» — و هر سناریو در برابر کدِ واقعی سنجیده شد

یک نمونهٔ مشخص

به‌جای ادعای «کیفیت بالا»، یک مورد واقعی.

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

نکتهٔ مهم این نیست که اشتباه بود. نکته این است که چطور قطعی شد.

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

چرا این را منتشر می‌کنیم؟ چون قابلیت‌ها را هر کسی می‌تواند ادعا کند. روشِ کار را نمی‌شود جعل کرد.

شفاف باشیم — چه چیزی هنوز جوان است

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

این‌ها را نوشتیم چون در جلسهٔ سوم به هر حال معلوم می‌شوند. بهتر است در جلسهٔ اول از زبان ما بشنوید.

بهترین راه ارزیابی، دیدنش است.

جلسه‌ای بگذارید و سخت‌ترین سؤال‌هایتان را بپرسید. اگر جوابی نداشتیم، همان را می‌گوییم.