Diyelim ki bir diş çekip çıkarmak için dişçiye git.
Resepsiyonist adınızı istediğinde, randevuya başlamak için ihtiyaç duydukları bilgiler budur. Bu örnekte, adınız içeriksel bilgilerdir . Yani bağlamda diş hekiminden, kendi diş çekip almak için adınızı vermeniz gerekir.
Şimdi diyelim ki bankaya doğru yürüyorsunuz.
Bankada 100 $ 'lık para çekme talebinde bulunuyorsunuz. Veznenin size para vermeden önce kimliğinizi oluşturması gerekir, bu yüzden muhtemelen onlara bir sürücü belgesi göstermeniz veya ATM kartınızı kaydırmanız ve PIN numaranızı girmeniz gerekir. Her iki durumda da, sunduğunuz içeriktir . Veznedar bu bilgiyi işlemi ileriye taşımak için kullanır. Daha sonra size hangi hesaptan para çekmek istediğinizi sorabilirler. "Tasarruf hesabım" cevabını verdiğinizde, bu daha da fazla bağlam .
Ne kadar fazla bağlam verirseniz, karşı tarafın talebinizle başa çıkmasına yardımcı olmak için o kadar fazla bilgi sahibi olması gerekir. Bazen içerik isteğe bağlıdır (daha iyi sonuçlar almak için Google aramanıza daha fazla kelime yazmak gibi) ve bazen de gereklidir (PIN numaranızı ATM'ye vermek gibi). Her iki durumda da, genellikle işlerin yapılmasına yardımcı olan bilgilerdir.
Şimdi diyelim ki 100 $ 'ınızı alıp ağzınız iyileşirken sıcak bir yere uçmak için uçak bileti alıyorsunuz.
Güneşli güzel bir varış noktasına varıyorsunuz, ancak çantanız bunu yapmıyor. Havaalanı sisteminde bir yerde kayboldu. Böylece, "bagaj talep biletinizi" (üzerinde barkod bulunan etiket) "Kayıp Bagaj ofisine" götürürsünüz. Masanın arkasındaki kişinin isteyeceği ilk şey, üzerinde bagaj numaranız olan bilet. Bu, gerekli bağlamın bir örneğidir .
Ancak daha sonra bagaj görevlisi sizden çantanız hakkında daha kolay bilgi bulmasını ister. " Hangi renk? Hangi boyutta? Tekerlekleri var mı? Sert mi yoksa yumuşak mı?" Bu bilgi parçalarına ihtiyaç duymasa da, bunları sağlarsanız daraltmanıza yardımcı olur. Sorunlu alan: Aramayı daha hızlı hale getirir.Bu isteğe bağlı bağlamdır .
İlginç kısım: birçok yazılım ve API için, gerekli bağlam genellikle bir yöntem imzasında gerçek parametreler olarak son bulur ve isteğe bağlı bağlam , herhangi bir şey içerebilen (ve boş olabilir) esnek bir anahtar / değer haritası gibi başka bir yere gider ) veya gerektiğinde erişilebilen yerel iş parçacığı depolama alanına.
Yukarıdaki örnekler gerçek hayattan, ancak bunları bilgisayar bilimi içindeki alanlarla kolayca eşleştirebilirsiniz. Örneğin, HTTP üstbilgileri bağlamsal bilgiler içerir. Her başlık , yapılan istek hakkında bilgi ile ilgilidir . Veya iki aşamalı bir taahhüt sürecinin bir parçası olarak bir global işlem kimliği gönderirken , bu işlem kimliği bağlamdır. İşlem yöneticisinin işi koordine etmesine yardımcı olur, çünkü eldeki genel görevle ilgili bilgilerdir .
Umarım yardımcı olur.