چکپوینت و بازبینی
هر نوشتن یک اسنپشات است که میتوانید برگردانید. شما پچ را میپذیرید یا رد میکنید — ایجنت بیصدا مالک درخت نمیشود.
قبل از تغییر فایل، ایبان از فضای کار اسنپشات میگیرد. رونوشت کارت فایل با دیف جمعوجور نشان میدهد. تأیید، رد، یا واگرد از طریق چکپوینت — از جمله بازگردانی زنجیرهای وقتی ویرایش بعدی به قبلی وابسته است.
وعدهٔ تجاری
تیم ایجنتی نمیخرد که وقتی نگاه نمیکنید مخزن را بازنویسی کند. حلقه میخرد: پیشنهاد، نمایش دیف، نگه داشتن یا برگرداندن توسط انسان.
در فضای کار
- کارت تغییر فایل در گفتگوی ایجنت
- دیف جمعوجور بدون ترک گفتگو
- تأیید همه / رد همه در کنترل منبع برای دستهٔ ایجنت
- واگرد یعنی بازگردانی چکپوینت، نه یک «برگرد» مبهم
اعمال خودکار
اعمال خودکار ویرایش ایجنت میتواند روشن باشد. اگر برای هر پچ اعمال صریح میخواهید خاموشش کنید. بازبینی در هر دو حالت هست.
چکپوینت اسنپشات محلی فضای کار است، نه commit گیت. وقتی آماده بودید commit کنید.
41 def charge(order, wallet): 42 tax = order.subtotal * 0.09 43 total = order.subtotal + tax 44 if wallet.balance < total: 45 raise InsufficientFunds(total) 46 wallet.debit(total) 47 return Receipt(order.id, total)
مالیات منطقهای را از نرخ ثابت جدا کن و قبل از debit موجودی را درست چک کن.
۶ فایل خوانده شد · ۲ جستجو · ۱ تست
charge هنوز ۰٫۰۹ را سخت گذاشته. tax_for(region) هست. can_cover را به کیف وصل میکنم.
پچ ۱۲ خطی روی دو فایل. دیف را ببینید.
قبل از دستزدن به checkout، رویکرد مالیات چندمنطقهای را بنویس.
Plan · شل و ویرایش محصول محدود است
اول قرارداد tax_for را ثابت میکنم، بعد charge را عوض میکنم، بعد test_charge.
برنامه آماده است. وقتی تأیید کردید به Agent برمیگردم.
charge از کجا مالیات میگیرد و کدام تست آن را قفل کرده؟
Ask · فقط خواندن
نرخ در checkout.py:42 است. test_charge همان ۰٫۰۹ را assert میکند.
چیزی نوشته نشد.
InsufficientFunds برای سفارش معاف از مالیات هم بالا میآید. اول شواهد.
Debug · بازتولید قبل از فیکس
شکست وقتی region معاف است و wallet.can_cover هنوز نرخ ثابت را میبیند.
رد شکست آماده است. اصلاح را بعد از تأیید مینویسم.
- tax = order.subtotal * 0.09 + tax = order.tax_for(region) - if wallet.balance < total: + if not wallet.can_cover(total, region): wallet.debit(total)