Sobes.tech
Junior — Middle

Ի՞նչ նպատակով են օգտագործվում գործարքները ծրագրի առանձին հատվածներում կամ բաղադրիչներում:

sobes.tech AI

Պատասխան AI-ից

Ծրագրի հատվածների կամ բաղադրիչների ներսում գործարքները օգտագործվում են տվյալների ամբողջականությունն ու համահունչությունը ապահովելու համար, երբ կատարվում են մի քանի կապված գործողություններ: Եթե մեկը չի հաջողվում, գործարքը թույլ է տալիս վերականգնել բոլոր փոփոխությունները, որպեսզի համակարգը չմնա անհամապատասխան վիճակում:

Օրինակ, Android-ում տվյալների բազայի հետ աշխատելիս՝ Room կամ SQLite, գործարքները երաշխավորում են, որ մի քանի հարցումները կատարվեն որպես միավոր: Եթե ինչ-որ բան սխալ լինի, բոլոր փոփոխությունները վերացվում են:

Սա հատկապես կարևոր է, երբ՝

  • Պետք է միաժամանակ թարմացնել մի քանի աղյուսակ:
  • Կատարվում են բարդ տվյալների գործառույթներ, որոնք պահանջում են ատոմարություն:

Room-ի օրինակ՝

@Transaction
fun updateUserAndPosts(user: User, posts: List<Post>) {
    userDao.update(user)
    postDao.insertAll(posts)
}