لقد مارست البنك كاتا من قبل ساندرو مانكوسو
أهدافي حيث أمارس مزيجًا من الخارجيين في مزيج من TDD (فكرة من مانويل ريفو)
تتبع الوقت باستخدام الالتزامات GIT.
لقد قمت بتطبيق ميزة التحويلات الآمنة: يمكن تكوين الحساب لطلب رمز (على سبيل المثال ، OTP) للتحقق من النقل البنكي ، على حد سواء الصادرة (على سبيل المثال ، معظم البنوك لديها هذا) على أنها واردة.
لقد بحثت في طرق للحفاظ على خصائص الحمض ، بدلاً من اختيار نظام ثابت في النهاية.
كمعلمات لفئة الحساب: رمز
هذا هو أبسط نهج: تعتمد على نوع المعلمة لتحديد سلوك الفصل.
كآلة دولة: رمز
قم بتكوين الحالات والانتقالات كجزء داخلي/خارجي من فئة النقل ، مما يجعلها أكثر عامية ومستقبل (Yagni؟)
يمكن تمثيل ذلك باستخدام الميراث من فئة مشتركة (في هذه الحالة ، نقل) أو باستخدام غلاف (حالة <>) للدلالة على الحالة الحالية. بالنسبة إلى السابق ، هناك رمز الإنتاج. بالنسبة لهذا الأخير ، يقوم الجانب بتنفيذ مكتبة آلة الولاية (باستخدام سيارة + مصنعها كمجال)
في التنفيذ ، يكون أقل آمنة من النوع ، وأقل راحة للعمل مع هذا التنفيذ ، حيث أن توقيعات الطريقة غامضة للغاية: أي حالة تمثل تحت كائن النقل.
كلا (أي ، الحساب الفاشل): رمز
إما يسمح لك بتمثيل نتائج حساب صريحة. تم استخدام اليسار ليعني النقل المحظور/الآمن واليمين ليعني النقل غير المحظور.
هذا يسمح فقط بتمثيل قيمتين ، بطريقة ضمنية: يشير إجماع الفريق إلى اليسار واليمين لهذه المعاني.
أيضًا ، من المهم أن نرى Either<T,T> حيث يكون كلا T متماثلان. من المحتمل أن يكون هذا ناتجًا عن جعل آلة الحالة ضمنية (وراثة من فئة مشتركة) + أيضًا.
كما thunks (أي ، حسابات تأخر): رمز
تم تمرير thunk كمعلمة وتنفيذها عندما يكون ضروريًا. لا يسمح هذا النظام بسهولة الاستمرار/التخزين ، حيث لا يمكن التسلسل/الوظائف.
كعلم سير عمل (أي مجموعة من الخطوات المحددة مسبقًا): [رمز] [https://github.com/alvarogarcia7/bank-kata-kotlin/tree/variant/control-safe-ransfers-as-workflow]
يحتوي سير العمل هذا على مجموعة من الخطوات (التي يمكن التحقق منها أم لا) ، وفي النهاية هناك مجموعة من الإجراءات.
استنادًا إلى الطريقة التي تم بها تنفيذها (يتم تمرير البيانات فقط ، ولكن ليس السلوك) ، يمكن تسلسلها / مكشوفها على الراحة.
f log --format="%s;%ct"|grep CLOCK|cut -d";" -f1 يعطي الرسائل f log --format="%s;%ct"|grep CLOCK|cut -d";" -f2 يعطي الأوقات بالميليس
ثم انسخ إلى جدول بيانات وحساب الفرق عند توقفه