Katakanlah Anda pergi ke dokter gigi untuk mencabut gigi.
Ketika resepsionis menanyakan nama Anda, itulah informasi yang mereka butuhkan untuk memulai janji temu. Dalam contoh ini, nama Anda adalah informasi kontekstual . Jadi dalam konteks mengunjungi dokter gigi, Anda perlu memberikan nama Anda untuk menarik gigi Anda.
Sekarang katakanlah Anda berjalan ke bank.
Di bank, Anda meminta untuk menarik $ 100. Teller perlu membuat identitas Anda sebelum memberi Anda uang, jadi Anda mungkin harus menunjukkan kepada mereka SIM atau menggesek kartu ATM Anda dan memasukkan nomor PIN Anda. Apa pun yang Anda sediakan adalah konteks . Teller menggunakan informasi ini untuk memajukan transaksi. Mereka kemudian dapat menanyakan kepada Anda akun mana yang ingin Anda tarik. Ketika Anda menjawab, "Akun tabungan saya" , itu bahkan lebih konteks .
Semakin banyak konteks yang Anda berikan, semakin banyak pengetahuan yang dimiliki pihak lain untuk membantu menangani permintaan Anda. Terkadang konteks bersifat opsional (seperti mengetikkan lebih banyak kata ke dalam pencarian Google Anda untuk mendapatkan hasil yang lebih baik) dan terkadang diperlukan (seperti memberikan nomor PIN Anda di ATM). Apa pun itu, informasi yang biasanya membantu menyelesaikan pekerjaan.
Sekarang katakanlah Anda mengambil $ 100 dan membeli tiket pesawat untuk terbang ke suatu tempat yang hangat sementara mulut Anda sembuh.
Anda tiba di tujuan cerah yang bagus, tetapi tas Anda tidak berhasil. Itu hilang di suatu tempat di sistem bandara. Jadi, Anda membawa "tiket klaim bagasi" Anda (stiker dengan barcode di atasnya) ke "Kantor Bagasi Hilang". Hal pertama yang diminta orang di belakang meja adalah tiket dengan nomor bagasi Anda. Itu adalah contoh dari beberapa konteks yang diperlukan .
Tetapi orang bagasi meminta Anda informasi lebih lanjut tentang tas Anda sehingga mereka dapat menemukannya dengan lebih mudah. Mereka bertanya, " Apa warnanya? Berapa ukurannya? Apakah ada roda? Keras atau lunak? Meskipun mereka tidak selalu membutuhkan informasi itu, akan membantu mempersempitnya jika Anda menyediakannya. Ini mengurangi area masalah. Itu membuat pencarian lebih cepat. Itu konteks opsional .
Inilah bagian yang menarik: untuk banyak perangkat lunak dan API, konteks yang diperlukan biasanya berakhir sebagai parameter aktual dalam tanda tangan metode, dan konteks opsional pergi ke tempat lain, seperti peta nilai kunci fleksibel yang dapat berisi apa saja (dan mungkin kosong ) atau ke penyimpanan thread-lokal di mana ia dapat diakses jika diperlukan.
Contoh di atas berasal dari kehidupan nyata, tetapi Anda dapat dengan mudah memetakannya ke area dalam ilmu komputer. Misalnya, tajuk HTTP berisi informasi kontekstual. Setiap tajuk berhubungan dengan informasi tentang permintaan yang dibuat. Atau ketika Anda mengirim ID transaksi global sebagai bagian dari proses komitmen dua fase , ID transaksi itu adalah konteks. Ini membantu manajer transaksi mengoordinasikan pekerjaan karena informasi tentang tugas keseluruhan yang ada.
Semoga itu bisa membantu.