شفافیت
از کجا بدانید این محصول جدی است؟
ما مشتری مرجعِ اعلامشده نداریم و دموی خودکار هم نمیدهیم. بهجایش، همهٔ چیزی را که یک خریدارِ محتاط باید بداند اینجا گذاشتهایم.
شروع میکنیم از چیزهایی که نداریم
- مشتری مرجعِ عمومی نداریم. محصول تازه به مرحلهٔ عرضه رسیده و اولین استقرارها در جریان است. اگر کسی در این مرحله فهرست بلندبالایی از لوگوی مشتری به شما نشان بدهد، جای پرسش دارد.
- دموی خودکار و نسخهٔ آزمایشیِ خودسرویس نداریم. این محصول روی سختافزار شما نصب میشود و ارزشش دقیقاً در همان چیزی است که در یک تبِ مرورگر دیده نمیشود: مهاجرت زندهٔ ماشین مجازی، سیاست خروج، ایزولهسازی چند مستأجر. دموی سبک، تصویر غلط میدهد.
- نصب خودکارِ بدون ما نداریم. نصب اولیه با همراهی تیم ما انجام میشود. این محدودیتِ عمدی است، نه ناتوانی: نصبِ اشتباهِ یک پلتفرم زیرساختی، بدتر از نصبنشدنش است.
حالا آنچه داریم.
هیچ تغییری بدون عبور از این پنج گیت وارد محصول نمیشود
| گیت | چه کاری میکند | اگر رد شود |
|---|---|---|
| ۱ — تایپچک | کل کدبیس با TypeScript در حالت سختگیرانه بررسی میشود | تغییر مرج نمیشود |
| ۲ — مجموعهٔ تست | بیش از ۱۵٬۰۰۰ تست خودکار اجرا میشود؛ کدِ خروجی خوانده میشود، نه متن گزارش | تغییر مرج نمیشود |
| ۳ — کفِ پوشش قفلشده | پوشش تست نمیتواند پایین بیاید. علاوه بر کفِ کلی، دهها فایلِ حساس قفلِ اختصاصی دارند | تغییر مرج نمیشود |
| ۴ — قرارداد API | هر تغییر در یک مسیر، تا وقتی snapshot قرارداد OpenAPI بازتولید نشود، build را میشکند | تغییر مرج نمیشود |
| ۵ — لِین کلاستر واقعی | مجموعهای از تستها روی یک کلاستر Kubernetes واقعی اجرا میشوند، نه شبیهساز | تغییر مرج نمیشود |
چرا لِین کلاستر واقعی جدا وجود دارد؟
چون شبیهساز دروغ میگوید. مجموعهای از باگها فقط وقتی پیدا شدند که کد روی یک کلاستر واقعی اجرا شد — همانها که در تستِ با شبیهساز کاملاً سبز بودند.
اعداد
- تست خودکار
- ۱۵٬۰۰۰+تست خودکار
- پوشش تست روی هستهٔ محصول
- ۸۳٪پوشش تست روی هستهٔ محصول
- اندپوینت API مستند
- ۲۵۰+اندپوینت API مستند
- مدل داده
- ۹۵مدل داده
- مؤلفهٔ زیرساختی پینشده
- ۳۳مؤلفهٔ زیرساختی پینشده
- آسیبپذیری شناختهشده در وابستگیها
- ۰آسیبپذیری شناختهشده در وابستگیها
- پلتفرم رقیب تحلیلشده
- ۱۴پلتفرم رقیب تحلیلشده
بهروزرسانی: ۵ شهریور ۱۴۰۵
- تست خودکار
- هر رفتار مهم یک تستِ نگهبان دارد
- پوشش خط
- روی هستهٔ محصول، نه روی کد الگویی
- کف پوشش
- قفلشده؛ نمیتواند پایین بیاید و تلاش برای پایینآوردنش build را میشکند
- خطای تایپ
- صفر، در حالت سختگیرانهٔ TypeScript
- آسیبپذیری وابستگی
- صفرِ شناختهشده، در تاریخ ۵ شهریور ۱۴۰۵
- اندپوینت مستند
- همه در قرارداد OpenAPI قفلشده
- مدل داده
- دامنهٔ واقعی محصول
- مؤلفهٔ پینشده
- هیچ نسخهٔ شناور
- پلتفرم تحلیلشده
- تحلیل رقابتیِ منتشرشده
چطور ساخته شد
ممیزی خودمان
پیش از نوشتن هر خطِ جدید، کلِ محصولِ موجود فیچربهفیچر بررسی و مستند شد. نتیجه گزارشی بود که گفت چه چیزی کار میکند، چه چیزی نوشته شده ولی وصل نیست، و چه چیزی اصلاً نیست
تحلیل رقبا
۱۴ پلتفرم خطبهخط تحلیل شدند. هر تحلیل چهار بخش داشت: کجا ما بهتریم، کجا آنها بهترند، چه چیزی باید قرض بگیریم، و کدام ابزارها در بازار مردهاند
یک نقشهٔ راه واحد
خروجی هر دو مرحله در یک بکلاگ تجمیع شد، مرتبشده بر اساس وابستگی، هر کدام با تعریفِ پایانِ مشخص. امنیت و پایه اول، قابلیتهای چشمگیر آخر
اجرای سناریو-اول
هر تسک، پیش از نوشتن کد، سناریوهایش شمرده میشد. این روش بارها باگهایی را قبل از اجرا گرفت که هیچ بازبینیِ کدی پیدایشان نمیکرد
ممیزی تقاضا-محور
در پایان یک ممیزی معکوس اجرا شد: بهجای «چه ساختهایم»، پرسیدیم «یک بانک، یک دستگاه دولتی و یک هلدینگ در جلسهٔ خرید چه میخواهند» — و هر سناریو در برابر کدِ واقعی سنجیده شد
یک نمونهٔ مشخص
بهجای ادعای «کیفیت بالا»، یک مورد واقعی.
پیکربندی اعتبارسنجی ورودی ما منطقی بهنظر میرسید و از هر بازبینی داخلی رد شده بود. تا اینکه یک بررسیِ بیرونی نشان داد خودِ چارچوبی که استفاده میکنیم، یک گزینه را عمداً از پیشفرضش برداشته — به دلیل ریسکِ حملهٔ منع سرویس. ما همان گزینه را سراسری روشن داشتیم.
نکتهٔ مهم این نیست که اشتباه بود. نکته این است که چطور قطعی شد.
با اجرای یک آزمایشِ ششخطی با دقیقاً همان تنظیماتِ محیط عملیاتی، که چیزی را نشان داد که هیچ مستندی نمیگفت. و شدتِ واقعی صادقانه گزارش شد: متوسط، نه بحرانی — چون در پیکربندی مشخصِ ما، اثرش روی حافظه بود نه پردازنده. از آن به بعد، «راستیآزمایی بیرونی» یک گام رسمی در فرآیند شد.
چرا این را منتشر میکنیم؟ چون قابلیتها را هر کسی میتواند ادعا کند. روشِ کار را نمیشود جعل کرد.
شفاف باشیم — چه چیزی هنوز جوان است
- استقرارهای عملیاتی. اولین استقرارها در جریاناند. تجربهٔ عملیاتیِ چندساله در محیطهای متنوع، چیزی است که هنوز در حال ساخت آن هستیم.
- اکوسیستم شریک. شبکهٔ مجریان و شرکای پیادهسازی هنوز کوچک است. امروز پیادهسازی با تیم خودمان است.
- مستندات عمومی. مستندات فنی کامل است ولی هنوز بهطور عمومی منتشر نشده. در جلسهٔ فنی کامل در اختیار شما قرار میگیرد.
- جامعهٔ کاربری. جامعهٔ عمومیِ کاربران هنوز شکل نگرفته. پشتیبانی مستقیم است، نه انجمنی.
اینها را نوشتیم چون در جلسهٔ سوم به هر حال معلوم میشوند. بهتر است در جلسهٔ اول از زبان ما بشنوید.
اینها را هم ببینید
بهترین راه ارزیابی، دیدنش است.
جلسهای بگذارید و سختترین سؤالهایتان را بپرسید. اگر جوابی نداشتیم، همان را میگوییم.