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")