Sobes.tech
Junior — Middle

Ποια πληροφορία επιτρέπεται να μεταδίδεται μέσω του πλαισίου στην εφαρμογή;

sobes.tech AI

Απάντηση από AI

Στη Go, συνήθως μεταδίδονται πληροφορίες που σχετίζονται με τη διαχείριση του κύκλου ζωής ενός αιτήματος ή λειτουργίας μέσω του context (context.Context`), για παράδειγμα:

  • Ακύρωση της λειτουργίας (μέσω του καναλιού Done()).
  • Προθεσμίες και χρονικά όρια (μέσω του Deadline()).
  • Τιμές που χρειάζονται σε ολόκληρη τη σειρά κλήσεων, όπως αναγνωριστικά αιτημάτων, tokens αυθεντικοποίησης, μεταδεδομένα.

Σημαντικό: μην τοποθετείτε στο context μεγάλα αντικείμενα, καταστάσεις ή δεδομένα που δεν σχετίζονται με τη διαχείριση του αιτήματος, για να μην διαταράξετε τον σκοπό του και να αποφύγετε διαρροές μνήμης.

Παράδειγμα μεταφοράς τιμής μέσω του context:

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