search
Giriş
Merhabalar arkadaşlar, Sitemizi programlama ile ilgilenen bütün arkadaşlarımızın Türkçe içerik konusunda çektiği sıkıntılar düşünülerek soru/cevap şeklinde bir etkileşimde bulunabilmesi için kurduk. Umuyoruz hepimiz için güzel bir deneyim olur. Hasscript Ekibi
0 oy
1.4k gösterim
Session nedir şeklinde bir soru var sitemizde, o soru bana scope nedir şekilinde bir soru sorma ihtiyacı doğurdu.

Özellikle programlamada scope kavramı nedir? Neden vardır?
Genel Kavramlar kategorisinde 5.7k puan

1 cevap

0 oy

Önce kelime anlamına bakalım;
Scope: kapsam, alan, faaliyet alanı

Şimdi biraz değerlendirelim. Kapsam dediğimiz kavram nasıl belirtilir diye düşünelim. Elimizde bir tarla var bu tarlanın kapsadığı alan bir scope olabilir mi? Bence olur.

Peki elimizde alınacaklar listesi var diyelim. Eşiniz/anneniz/kendiniz hazırladınız. Markete gideceksiniz alış-veriş listemiz var. Bu bir scope mudur? Bence evet.

Peki programlamada elimizde bir liste mi var? Ya da bir tarla mı var? Cevap hemen hemen evet. Hafıza anlamında bakarsak bir tarlamız, yapılacak işlemler anlamında bakarsanız, işlem listemiz var. Biraz daha programlamaya yoralım. Programı yazıyoruz programın başından sonuna kadar bütün kodları aslında bizim scopumuz oluyor ve programlama anlamında dışarıdan bir kaynak kullanmayacaksak en geniş scope oluyor. Yani bir programın başından sonuna kadar olan kısım. İsmi ne oluyor o zaman uygulama-alanı (application-scope) mantıklı. Buradan anlamamız gereken nedir? Scope dediğimiz kavramın bir başlangıcı ve bir sonu var. Programlama temel olarak zaman boyutuyla değerlendirilebilecek bir kavram. Tamam hafıza üzerinde bir yer işgal ediyor, yer olarak da değerlendirilebilir ama kodun akışı olarak zaman daha mantıklı. O halde bir başlangıcı ve bir bitişi olan kavramların hepsi bir scope olabilir, doğru mudur? Hemen hemen diyebiliriz. Örnek verelim, mesela bir fonksiyon bir noktada başlar, bir noktada biter. O zaman fonksiyonun içi fonksiyonun scopudur diyebilir miyiz? Bence deriz. O zaman bir if bloğunun geçerli olduğu kısma koşulun scopu diyebiliriz. Aslında programlama, yani C tabanlı dillerden bakarsak {} işaretlerinin arası direk scope oluyor. Hiçbir zorunluluk olmadan kafanıza göre bu scopu başlatıp bitirebilirsiniz. 

Peki bizi nasıl etkiliyor? Bir scope içinde tanımladığınız bir değişken scope dışında kullanılamaz. Asıl etkileyen nokta bu oluyor. İki scope arasında bir bilgi aktarmak isterseniz daha geniş bir scope'a çıkmanız lazım. Mesela iki fonksyon arasında bilgi aktarmak için global değişken tanımlamak gibi.

Sanıyorum bu kadarlık bir tanım yeterli olur. :) Sanki yazsam daha yazacağım.

5.7k puan

İlgili sorular

1 oy
1 cevap 250 gösterim
250 gösterim
Global scope kavramı ve Scope-Lifetime farkı nedir ?
1 Kasım 2019 Genel Kavramlar kategorisinde begum22 116 puan sordu
0 oy
2 cevap 791 gösterim
791 gösterim
In memory database nedir? ne gibi kolaylık sağlar. Spring boot projelerinde in memory database kavramı geçiyor, başka In memory database var mıdır?
9 Haziran 2020 Genel Kavramlar kategorisinde tolgacelik.art 2.0k puan sordu
0 oy
1 cevap 130 gösterim
130 gösterim 25 Nisan 2017 Genel Kavramlar kategorisinde Semih 120 puan sordu
0 oy
1 cevap 164 gösterim
164 gösterim
Selam, UML diyagramı yapmaya calışıyorum, include ve extent diye kavramlar geçiyor. Ne işe yarar bunlar?
26 Kasım 2016 Genel Kavramlar kategorisinde tolgacelik.art 2.0k puan sordu
0 oy
1 cevap 135 gösterim
135 gösterim
RDD kavramı nedir? Hangi uygulamada kullanılıyor?
13 Kasım 2018 Veri Bilimi kategorisinde kenan 5.7k puan sordu