Sobes.tech
Senior

Ի՞նչ տեսակի գործարքներ գիտես: Դրանք ինչու են անհրաժեշտ?

sobes.tech AI

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

Go-ում գործարքները սովորաբար կապված են տվյալների բազաների հետ և օգտագործվում են ACID (ատոմիկություն, համահունչություն, մեկուսացում, կայունություն) սկզբունքների ապահովման համար:

Գործարքների տեսակները՝

  • Ավտոմատ գործարքներ — երբ յուրաքանչյուր գործողություն կատարվում է որպես առանձին գործարք:
  • Արագ գործարքներ — երբ ծրագրավորողը հստակ սկսում, հաստատում կամ հետ է մղում գործարքը Begin(), Commit(), Rollback() մեթոդների միջոցով:
  • Երկարատև գործարքներ — օգտագործվում են բաշխված համակարգերում, որտեղ գործարքը կարող է տևել երկար և պահանջել համադրում:

Ինչու են անհրաժեշտ գործարքները՝

  • Համոզված լինել, որ գործողությունների խումբը կամ ամբողջությամբ կիրականացվի, կամ ոչ մի կերպ:
  • Նախազգուշացնում են մրցակցության պայմանները և ապահովում տվյալների ամբողջականությունը:
  • Հնարավորություն է տալիս սխալների դեպքում վերականգնել փոփոխությունները:

Go-ում տվյալների բազայի հետ գործարքի օգտագործման օրինակ՝

tx, err := db.Begin()
if err != nil {
    log.Fatal(err)
}
_, err = tx.Exec("INSERT INTO users(name) VALUES(?)", "Alice")
if err != nil {
    tx.Rollback()
    log.Fatal(err)
}
err = tx.Commit()
if err != nil {
    log.Fatal(err)
}