Sobes.tech
Junior — Middle

რა ინფორმაციას შეიძლება გადმოსცეთ კონტექსტის მეშვეობით აპლიკაციაში?

sobes.tech AI

პასუხი AI-სგან

Go-ში ჩვეულებრივ, მოთხოვნის ან ოპერაციის სიცოცხლის ციკლის მართვასთან დაკავშირებული ინფორმაცია გადაეცემა context (context.Context`) საშუალებით, მაგალითად:

  • ოპერაციის გაუქმება (Done() არხის საშუალებით).
  • ვადები და დროის შეზღუდვები (Deadline()-ით).
  • მნიშვნელობები, რომლებიც საჭიროა მთელი ზარის ჯაჭვის განმავლობაში, მაგალითად, მოთხოვნის იდენტიფიკატორები, ავტორიზაციის ტოკენები, მეტადატები.

მნიშვნელოვანია: კონტექსტში არ უნდა განთავსდეს დიდი ობიექტები, მდგომარეობები ან მონაცემები, რომლებიც არ უკავშირდება მოთხოვნის მართვას, რათა არ დაარღვიოს მისი დანიშნულება და თავიდან აიცილოს მეხსიერების გაჟონვა.

მნიშვნელობის გადაცემის მაგალითი კონტექსტის საშუალებით:

ctx := context.WithValue(context.Background(), "requestID", "12345")
requestID := ctx.Value("requestID")