
Fintech Engineering Handbook. ձևանմուշներ փողի հետ աշխատող ծրագրերի համար
Վոյտեկ Պիտուլան հրապարակել է անվճար ուղեցույց դրամային համակարգերի ինժեներական ձևանմուշների մասին՝ գումարների ներկայացումից ու կրկնակի հաշվապահությունից մինչև իդեմպոտենտություն, վեբհուքեր, հաշտեցում և հասանելիության վերահսկում։
Երեք սկզբունք դրամային համակարգերի համար
Վոյտեկ Պիտուլան՝ ինժեներ, ում փորձն ընդգրկում է վճարումներ, հաշվապահություն և գանձապետության կառավարում ֆիատի ու կրիպտոյի համար, հրապարակել է Fintech Engineering Handbook-ը՝ անվճար ուղեցույց այն ձևանմուշների մասին, որոնք կիրառվում են, երբ համակարգի առարկան փողն է։ Դրա միջով անցնում են երեք սկզբունք։ Ոչ մի հորինված տվյալ. իդեմպոտենտություն, կրկնօրինակների վերացում և հաշտեցում, որպեսզի փողը երբեք չստեղծվի կամ չկրկնապատկվի։ Ոչ մի կորցրած տվյալ. լրիվ ճշգրտություն, „առնվազն մեկ անգամ“ առաքում, իրադարձային աղբյուր, աուդիտի հետք և անփոփոխելիություն։ Եվ ոչ մի վստահություն՝ ոչ արտաքին մատակարարներին, ոչ ներքին բաղադրիչներին, ոչ աշխարհին. դրա համար վեբհուքերը ստուգվում են, տվյալները համեմատվում են անկախ աղբյուրների հետ, իսկ խախտված ենթադրությունները բարձրաձայն ձախողվում են։
Փողի ներկայացումը և գրանցումը
Նախքան փողը կշարժվի, այն պետք է ներկայացվի։ Պիտուլան համեմատում է չորս մոտեցում. լողացող կետով թվեր, որոնք նա համարում է գրեթե երբեք լավ գաղափար չեն. կամայական ճշգրտություն, օրինակ Java-ի BigDecimal-ը՝ շղթայական հաշվարկների համար. փոքր միավորներով ամբողջ թվեր, որոնց թվանշանների քանակը սահմանում է ISO 4217-ը և միշտ երկուսը չէ. և ռացիոնալ թվեր, երբ ճշգրտության կորուստն անթույլատրելի է։ Կլորացումն անխուսափելի է, բայց պետք է լինի բացահայտ, բիզնեսի կողմից որոշված, հնարավորինս հազվադեպ և գրանցվող, երբ այն խախտում է գումարները։
Փողի գրանցումը նշանակում է մատյան. կրկնակի հաշվապահություն, տարբերությունը արժեքի, գրանցման և հաշվարկի ժամանակների միջև, աուդիտի հետք, իրադարձային աղբյուր և անփոփոխելիություն, ինչպես նաև հակադարձ գրառումներ ու ուղղումներ՝ գրառումները խմբագրելու փոխարեն, և լարվածությունը անփոփոխելիության ու տվյալների ջնջման պահանջների միջև։
Հոսքերը, արտաքին աշխարհը և վերահսկումը
Դրամային հոսքի կատարումը հենվում է ինվարիանտների վրա, միջոցների ամրագրման (hold-and-release՝ ընդհանուր և հասանելի մնացորդի տարբերությամբ), օվերդրաֆտի բացահայտ մշակման՝ որը հնարավոր չէ դարձնել աններկայացնելի, քանի որ արտաքին աշխարհը թույլտվություն չի հարցնում, իդեմպոտենտության և ամբողջական վերսկսելիության վրա. հոսքերը պահպանվող վիճակի մեքենաներ են, անկախ դրայվերը դրանք շարունակում է, և յուրաքանչյուր քայլ պետք է անվտանգ լինի կրկին կատարելու համար։ Ինտեգրացիաներում նա խորհուրդ է տալիս ենթադրել, որ API-ները վատ կվարվեն, պահել յուրաքանչյուր հարցում և պատասխան, հետևել քվոտաներին, իսկ վեբհուքերը համարել ակնարկ, ոչ ճշմարտություն. ստուգել ստորագրությունը չմշակված բայթերի վրա, պահել payload-ը, արագ հաստատել, ապա API-ից հարցնել իրական վիճակը։ Հուսալի հրապարակումը հենվում է outbox ձևանմուշի կամ CDC-ի վրա, իսկ հաշտեցումը բռնում է բաց թողնվածը։ Վերջին բաժինը նվիրված է պարտականությունների տարանջատմանը և „չորս աչք“ հաստատմանը, նվազագույն իրավունքների սկզբունքին պարբերական վերանայումներով և կոդից արտադրություն հասնող աուդիտի հետքին։
Հավելվածները և անկեղծ սահմանները
Հավելվածները ներկայացնում են երեք ամբողջական հոսք՝ 0,5 ETH-ի կրիպտո դուրսբերում, քարտով ավանդ վճարային ծառայության միջոցով և հավելվածում 1 000 եվրոյի փոխարկում USDC-ի՝ քեշբեքով, ինչպես նաև ընթերցանության ցանկ։ Պիտուլան նշում է, որ տեքստի մեծ մասը գրել է ինքը, իսկ արհեստական բանականությունը՝ խմբագրման և հետազոտության համար. գիրքը կենդանի փաստաթուղթ է, արձագանքները՝ GitHub-ում, և այն իրավական, համապատասխանության կամ ֆինանսական խորհրդատվություն չէ։
SiTech — AI-ով հզորացված վեբ մշակում
Ստեղծում ենք արագ ու ժամանակակից կայքեր և AI-ը ներդնում իրական բիզնես գործընթացներում։ Ունե՞ք նախագիծ կամ հարց։ Ուրախ կլինենք օգնել։