Ana içeriğe geç

Kitap 01 · Özet sayfa

Programlamanın Temelleri

Her dilde karşılaşılan temel kavramlar: değişkenler, fonksiyonlar, asenkron kod ve programlama paradigmaları.

01Algoritma
Algoritma, bir listeyi sıralamak ya da en kısa yolu bulmak gibi bir sorunu çözmek veya bir işi tamamlamak için izlenen, sonlu ve adım adım yönergeler bütünüdür.
  • Algoritma, bir girdiyi çıktıya dönüştüren sonlu ve sıralı adımlar bütünüdür.
  • Dilden bağımsızdır; kod onu ifade etmenin yalnızca bir yoludur.
  • Verimlilik, zaman ve bellek için Big O gösterimiyle anlatılır.
02Async/Await
Async/await, asenkron kodu sıradan adım adım kod gibi okunur biçimde yazmayı sağlayan, her await'te bir promise ya da görev bitene dek duran sözdizimidir.
  • async bir fonksiyonu asenkron olarak işaretler; JavaScript'te her zaman bir promise döndürür.
  • await, bir promise sonuçlanana dek yalnızca mevcut fonksiyonu duraklatır, tüm programı değil.
  • Hatalar sıradan try/catch blokları ile yönetilebilir.
03Base64
Base64, resim ya da anahtar gibi her tür ikili veriyi yalnızca 64 güvenli metin karakteriyle yazar; böylece veri metin için yapılmış sistemlerden geçebilir.
  • Base64 her tür byte'ı 64 metin karakteriyle yazar.
  • Her 3 byte 4 karaktere dönüşür; veri yaklaşık üçte bir büyür.
  • İkili veriyi e-posta, JSON, URL'ler ve HTTP başlıkları üzerinden taşır.
04Big O gösterimi
Big O gösterimi, girdi büyüdükçe bir algoritmanın çalışma süresinin ya da bellek kullanımının nasıl arttığını, kesin hız yerine büyüme oranıyla anlatır.
  • Big O, girdi boyutu n arttıkça zamanın ya da belleğin nasıl büyüdüğünü anlatır.
  • Yaygın sınıflar O(1), O(log n), O(n), O(n log n), O(n^2) ve O(2^n)'dir.
  • Sabitler ve daha küçük terimler atılır; bu yüzden 3n + 5, O(n) olur.
05CallbackGeri çağırma fonksiyonu
Callback, başka bir fonksiyona argüman olarak verilen ve o fonksiyonun bir iş bittiğinde ya da bir olay gerçekleştiğinde sonradan çağırdığı fonksiyondur.
  • Callback, daha sonra çalıştırılmak üzere başka bir fonksiyona verilen fonksiyondur.
  • Callback'in ne zaman ve kaç kez çalışacağını onu alan fonksiyon belirler.
  • Callback'ler senkron (map gibi) ya da asenkron (setTimeout gibi) olabilir.
06ClosureKapanış
Closure, oluşturulduğu kapsamdaki değişkenleri hatırlayan bir fonksiyondur; dıştaki fonksiyon sona erdikten sonra bile bu değişkenleri kullanabilir.
  • Closure, bir fonksiyon ile onun çevre kapsamdan yakaladığı değişkenlerin bütünüdür.
  • Yakalanan değişkenler, closure var olduğu sürece yaşamaya devam eder.
  • Closure'lar değişkenleri referansla yakalar, bu yüzden her zaman en son değeri görür.
07Constructor
Constructor, bir sınıftan yeni bir nesne oluşturulduğunda çalışan ve nesnenin başlangıç değerlerini ayarlayarak onu kullanıma hazırlayan özel bir metottur.
  • Constructor, bir sınıftan yeni bir nesne oluşturulduğunda kendiliğinden çalışır.
  • Görevi nesneye geçerli bir başlangıç durumu vermektir.
  • JavaScript'te constructor, Python'da __init__ adını taşır; Java ve C#'ta sınıfın adını alır.
08Çok biçimlilik
Çok biçimlilik, kodun farklı türlerdeki değerlerle ortak bir arayüz üzerinden çalışabilmesidir; her tür kendi davranışını sağlar.
  • Çok biçimlilik, tek arayüz ve birçok uygulama demektir.
  • Alt tür çok biçimliliği, nesnenin gerçek türüne göre doğru geçersiz kılınmış metodu çalışma zamanında seçer.
  • Metot aşırı yüklemesi ve generics, çok biçimliliğin diğer biçimleridir.
09Çöp toplama
Çöp toplama, dil çalışma zamanının programın artık kullanamadığı verileri bulup bu belleği yeniden kullanıma açtığı otomatik bellek yönetimidir.
  • Çöp toplama, programın artık ulaşamadığı belleği otomatik olarak serbest bırakır.
  • Çoğu toplayıcı referansları köklerden izler; ulaşılamayan nesneler çöptür.
  • Birçok bellek hatasını önler ama kısa duraklamalara ve ek bellek yüküne yol açabilir.
10Değişken
Değişken, bir programda sayı ya da metin gibi bir değeri tutan ve kodun çalışırken okuyup değiştirebildiği, adlandırılmış bir depolama alanıdır.
  • Değişken, saklanan bir değere işaret eden bir addır.
  • Değeri genellikle program çalışırken okunabilir ve değiştirilebilir.
  • Tür, hangi tür veri tutacağını; kapsam ise nerede görünür olacağını belirler.
11Değişmezlik
Değişmezlik, bir değerin oluşturulduktan sonra değiştirilememesi demektir; her güncelleme, orijinali yerinde değiştirmek yerine yeni bir değer üretir.
  • Değişmez bir değer oluşturulduktan sonra asla değişmez; güncellemeler yeni değerler üretir.
  • Değişmez veriler fonksiyonlar ve iş parçacıkları arasında güvenle paylaşılabilir.
  • Fonksiyonel diller değişmezliği varsayılan yapar ve kopyaları ucuz tutmak için kalıcı veri yapıları kullanır.
12Derleyici
Derleyici, bir programlama dilinde yazılmış kaynak kodu, bilgisayarın çalıştırabileceği makine kodu gibi daha alt seviyeli bir biçime çeviren programdır.
  • Derleyici, kaynak kodu makine koduna, bytecode'a ya da başka bir dile çevirir.
  • Aşamalar hâlinde çalışır: token'lara ayırma, çözümleme, denetleme, en iyileme ve kod üretme.
  • Derleme zamanı hataları, program hiç çalışmadan önce yakalanır.
13Dinamik Tipleme
Dinamik tipleme, türlerin değişkenlere değil değerlere ait olması ve program çalışırken kontrol edilmesidir; bir değişken önce sayı, sonra string tutabilir.
  • Türler değerlere aittir ve çalışma zamanında kontrol edilir.
  • Python, JavaScript, Ruby ve PHP dinamik tiplidir.
  • Betikler, prototipler ve keşif için hızlıdır.
14Dize
Dize, bir isim, cümle, URL ya da dosya içeriği gibi metni sıralı bir karakter dizisi olarak temsil eden bir veri türüdür.
  • Dize, metni temsil etmek için kullanılan sıralı bir karakter dizisidir.
  • Dize değişmezleri tırnak içinde yazılır ve karakterlere 0'dan başlayan bir indeksle erişilir.
  • Karakterler UTF-8 ve UTF-16 gibi Unicode kodlamalarıyla sayı olarak saklanır.
15Dizi
Dizi, tek bir ad altında saklanan ve her öğesine genellikle 0'dan başlayan indeks adlı sayısal konumuyla erişilen, sıralı bir değerler koleksiyonudur.
  • Dizi, sıralı bir değerler listesini tek bir ad altında saklar.
  • Öğelere, genellikle 0'dan başlayan indeksle erişilir.
  • İndeksle öğe okumak, dizi ne kadar büyük olursa olsun hızlı, yani O(1)'dir.
16Döngü
Döngü, bir kod bloğunu belirli sayıda, bir koleksiyondaki her öğe için bir kez ya da bir koşul doğru kaldığı sürece tekrar eden bir kontrol yapısıdır.
  • Döngü bir kod bloğunu tekrarlar; her tekrara iterasyon denir.
  • for döngüleri sayar, while döngüleri bir koşulu denetler, for-each döngüleri ise bir koleksiyondaki her öğeyi ziyaret eder.
  • break bir döngüden erken çıkar, continue ise sonraki iterasyona atlar.
17Düzenli ifade
Düzenli ifade (regex), dizeler içinde aranacak, doğrulanacak, çıkarılacak veya değiştirilecek metni tarif eden, kompakt sözdizimli bir desendir.
  • Regex, eşleşecek metnin biçimini tarif eden bir desendir.
  • Karakter sınıfları, niceleyiciler, bağlayıcılar ve gruplar temel yapı taşlarıdır.
  • Metin aramak, doğrulamak, çıkarmak ve değiştirmek için kullanılır.
18EnumSabit Değerler Kümesi
Enum, bir siparişin olası durumları gibi sabit ve adlandırılmış bir değerler kümesi tanımlayan bir veri türüdür; kod bu kümenin dışında bir değer kullanamaz.
  • Enum, sabit bir adlandırılmış değerler kümesine sahip bir türdür.
  • Geçersiz değerleri önler ve sihirli sayılardan ya da dizelerden daha okunaklıdır.
  • C'de enum'lar adlandırılmış tamsayılardır; Java, Rust ve Swift'te metot ya da veri taşıyabilirler.
19Eşzamanlılık
Eşzamanlılık, bir programın birden çok görevde örtüşen zaman dilimlerinde ilerleyebilme yeteneğidir; örneğin birçok kullanıcıya aynı anda hizmet vermek gibi.
  • Eşzamanlılık, bir programın birden çok görevde örtüşen zaman dilimlerinde ilerlemesini sağlar.
  • İş parçacıkları, olay döngüleri, async/await, goroutine'ler ya da aktörlerle sağlanabilir.
  • Paralellik, görevlerin birden çok çekirdekte tam anlamıyla aynı anda çalışması demektir; eşzamanlılık bunu gerektirmez.
20Fonksiyon
Fonksiyon, belirli bir işi yapan, isteğe bağlı olarak parametre denen girdiler alıp sonuç döndürebilen, adlandırılmış ve yeniden kullanılabilir kod bloğudur.
  • Fonksiyon, tek bir işi yapan, adlandırılmış ve yeniden kullanılabilir bir kod bloğudur.
  • Parametreler fonksiyonun tanımladığı girdilerdir; argümanlar ise gönderdiğiniz değerlerdir.
  • return deyimi, sonucu çağıran koda geri gönderir.
21Fonksiyonel programlama
Fonksiyonel programlama, paylaşılan verileri değiştirmeyen saf fonksiyonlarla yazılım kurma stilidir; kodu daha öngörülebilir ve test etmesi kolay yapar.
  • Fonksiyonel programlama, yazılımı yan etkisiz saf fonksiyonlarla kurar.
  • Veri değişmez kabul edilir: mevcut değerleri değiştirmek yerine yeni değerler oluşturulur.
  • map, filter ve reduce gibi yüksek dereceli fonksiyonlar küçük fonksiyonları daha büyüklerde birleştirir.
22Framework
Framework, bir uygulamanın yapısını sağlayan, yeniden kullanılabilir kod, araç ve kural temelidir; geliştiriciler yalnızca kendi mantıklarını doldurur.
  • Framework bir uygulamanın yapısını sağlar; ayrıntıları siz doldurursunuz.
  • Kontrolün tersine çevrilmesi: kodunuzu framework çağırır, tersi olmaz.
  • Yönlendirme, arayüzü oluşturma ve veri erişimi gibi yaygın işleri üstlenir.
23GenericsJenerikler
Generics, tam tür güvenliğini korurken birçok veri türüyle çalışan fonksiyonlar, sınıflar ve türler yazmanıza olanak tanıyan bir dil özelliğidir.
  • Generics, tek bir fonksiyonun, sınıfın ya da türün birçok türle güvenle çalışmasını sağlar.
  • T gibi bir tür parametresi, çağıran ya da tür çıkarımı tarafından doldurulan bir yer tutucudur.
  • Derleyici, denetimi kapatan any'nin aksine türleri yine de denetler.
24Hata ayıklama
Hata ayıklama, bir programın neden yanlış davrandığını bulma, hatalı kodu saptama ve düzeltme sürecidir; çoğu zaman hata ayıklayıcı adlı bir araç kullanılır.
  • Hata ayıklama, bir hatanın nedenini bulup düzeltmek demektir.
  • Önce sorunu güvenilir biçimde yeniden üretin, sonra nerede oluştuğunu daraltın.
  • Hata ayıklayıcılar kesme noktalarında duraklamanıza, kodda ilerlemenize ve değişkenleri incelemenize izin verir.
25IDETümleşik Geliştirme Ortamı
IDE (tümleşik geliştirme ortamı), bir kod editörünü hata ayıklayıcı, derleme komutları ve diğer geliştirici araçlarıyla tek bir yerde birleştiren uygulamadır.
  • IDE; editörü, hata ayıklayıcıyı, derleme araçlarını ve kodda gezinmeyi birleştirir.
  • Kodu anlar: hatalar, tamamlama, tanıma gitme ve refactoring.
  • IntelliJ IDEA, Visual Studio, PyCharm, Xcode ve Android Studio birer IDE'dir.
26InterfaceArayüz
Interface, bir türün sağlamayı vaat ettiği metot ve özellik imzalarından oluşan adlandırılmış bir kümedir; bu üyelerin nasıl gerçekleştirildiğini söylemez.
  • Interface, bir türün hangi metotlara ve özelliklere sahip olması gerektiğini tanımlar, nasıl çalıştıklarını değil.
  • Bir sınıf birkaç interface uygulayabilir ama genellikle yalnızca bir sınıfı genişletir.
  • Java ve C# açık bir implements gerektirir; Go ve TypeScript şekli otomatik denetler.
27IteratorYineleyici
Iterator, verinin nasıl saklandığını açığa çıkarmadan, konumunu hatırlayarak bir koleksiyonun öğeleri arasında teker teker ilerlemeyi sağlayan bir nesnedir.
  • Iterator, öğeleri teker teker döndürür ve geçerli konumunu hatırlar.
  • Iterable koleksiyondur; iterator ise ondan oluşturulan imleçtir.
  • for...of ve Python'ın for döngüsü gibi döngüler arka planda iterator kullanır.
28İstisna
İstisna, bir hata oluştuğunda programın normal akışını kesen bir olaydır; kod bunu programı çökertmek yerine yakalayıp ele alabilir.
  • İstisna, çalışma zamanında bir hata oluştuğunda normal yürütmeyi keser.
  • Kod bir istisna fırlatır ve bir try/catch bloğu onu yakalayıp ele alabilir.
  • Yakalanmayan istisnalar çağrı yığınında yukarı ilerler ve programı çökertebilir.
29İşaretçi
İşaretçi, başka bir değerin kendisi yerine bellek adresini saklayan bir değişkendir; kodun o veriyi dolaylı yoldan okumasına ya da değiştirmesine imkân tanır.
  • İşaretçi, verinin kendisi yerine bir bellek adresini saklar.
  • İşaretçiyi çözmek (dereferencing), o adresteki değeri okur veya yazar.
  • İşaretçiler büyük verinin kopyalanmasını önler ve bağlı veri yapılarını mümkün kılar.
30JIT derlemeJust-in-Time Compilation
JIT derleme, programın en sık çalışan kısımlarını çalışma anında makine koduna çevirerek yorumlayıcının hızlı açılışını derlenmiş kodun hızıyla birleştirir.
  • JIT derleyici, sık çalışan kodu program çalışırken makine koduna çevirir.
  • Programlar bir yorumlayıcıyla başlar; hot kod buna değdiğini gösterince derlenir.
  • Çalışma anında gördükleri, JIT'in kodu özelleştirmesini ve bir tahmin tutmadığında deoptimizasyon yapmasını sağlar.
31Kalıtım
Kalıtım, yeni bir sınıfın mevcut bir sınıfın alanlarını ve metotlarını yeniden kullanmasını, genişletmesini ve geçersiz kılmasını sağlayan OOP özelliğidir.
  • Alt sınıf, ebeveyn sınıfının alanlarını ve metotlarını kalıtım yoluyla alır.
  • Alt sınıflar yeni üyeler ekleyebilir ve miras alınan metotları geçersiz kılabilir.
  • super, ebeveynin kurucusunu ya da bir metodun ebeveyndeki sürümünü çağırır.
32Kapsam
Kapsam, bir programda değişken ya da fonksiyon gibi bir adın görünür olduğu ve kullanılabildiği bölgedir; her kod satırının nelere ulaşabileceğini belirler.
  • Kapsam, bir değişkenin ya da fonksiyonun adının kodun neresinde kullanılabileceğine karar verir.
  • Çoğu dil, kodun nerede yazıldığına dayanan sözcüksel kapsamı kullanır.
  • İç kapsamlar dıştaki değişkenleri görebilir, ancak dıştaki kod içeriyi göremez.
33Kapsülleme
Kapsülleme, verileri onları kullanan metotlarla paketleyip iç ayrıntıları gizlemektir; dışarıdaki kod yalnızca herkese açık bir arayüz üzerinden çalışır.
  • Kapsülleme, verileri ve onlar üzerinde çalışan metotları tek bir birimde paketler.
  • private ve public gibi erişim belirleyicileri, dışarıdaki kodun neyi görebileceğini denetler.
  • Tüm değişiklikler, girdiyi doğrulayıp veriyi tutarlı tutabilen metotlardan geçer.
34Karakter kodlaması
Karakter kodlaması, metni byte'lara ve geri metne çeviren kurallardır; her harfin saklanıp gönderilmesini sağlar. Bugünkü standart UTF-8'dir.
  • Karakter kodlaması metni byte'lara, byte'ları metne çevirir.
  • Unicode her karaktere bir numara verir; UTF-8 gibi bir kodlama da bu numaraların byte'a nasıl dönüşeceğine karar verir.
  • UTF-8 karakter başına 1 ila 4 byte kullanır ve ASCII metni olduğu gibi bırakır.
35Kütüphane
Kütüphane, bir programın sık yapılan işleri o kodu kendisi yazmadan yapmak için çağırdığı, fonksiyon ve sınıf gibi hazır kodlardan oluşan bir koleksiyondur.
  • Kütüphane, programınızın sık yapılan işler için çağırdığı yeniden kullanılabilir koddur.
  • Her dilin bir standart kütüphanesi vardır; paket yöneticileri üçüncü taraf olanları ekler.
  • Kütüphaneyi siz çağırırsınız; framework ise sizin kodunuzu çağırır.
36Lambda fonksiyonu
Lambda fonksiyonu, adı olmadan satır içinde yazılan küçük fonksiyondur; genellikle sıralama ya da filtreleme yapan başka bir fonksiyona doğrudan aktarılır.
  • Lambda, adı olmayan ve kullanıldığı yerde satır içinde tanımlanan bir fonksiyondur.
  • Sözdizimi değişir: JavaScript ve C#'ta =>, Java'da ->, Python'da lambda.
  • Lambda'lar genellikle çevredeki değişkenleri yakalar; bu da onları closure yapar.
37Memoization
Memoization, fonksiyon çağrılarının sonuçlarını saklayıp aynı girdiler tekrar geldiğinde kaydedilen sonucu döndüren bir optimizasyon tekniğidir.
  • Memoization, bir fonksiyonun sonuçlarını saklar ve tekrarlanan girdiler için yeniden kullanır.
  • Yalnızca yan etkisi olmayan saf fonksiyonlar için güvenlidir.
  • Naif Fibonacci gibi üstel özyinelemeli algoritmaları doğrusal hâle getirebilir.
38Metot
Metot, bir nesneye ya da sınıfa ait olup onun üzerinden çağrılan fonksiyondur; user.rename("Ada") örneğindeki gibi nesnenin verisini okuyup değiştirebilir.
  • Metot, bir nesneye ya da sınıfa ait bir fonksiyondur.
  • Nesnesine this ile (Python ve Ruby'de self ile) ulaşır.
  • Örnek metotları tek bir nesne üzerinde çalışır; statik metotlar sınıfa aittir.
39Nesne
Nesne, ilgili veriyi ve davranışı bir arada tutan yapıdır: değerleri özellik denen adlandırılmış alanlarda, onları işleyen fonksiyonları metot olarak taşır.
  • Nesne, ilgili veriyi (özellikler) ve davranışı (metotlar) bir arada tutar.
  • Sınıf tabanlı dillerde nesne bir sınıfın örneğidir.
  • JavaScript'te nesne değişmezleri ve prototip tabanlı kalıtım da vardır.
40Null
Null, “burada değer yok” anlamına gelen özel bir değerdir; bir değişken bilerek hiçbir nesneye ya da veriye başvurmadığında kullanılır.
  • Null, bir değerin bilerek yokluğunu temsil eder.
  • Null'ı gerçek bir nesneymiş gibi kullanmak en yaygın çalışma zamanı hatalarından bazılarına yol açar.
  • Kotlin, Swift, TypeScript ve C# null olabilen türleri derleme zamanında izleyebilir.
41OOPNesne Yönelimli Programlama
OOP, yani nesne yönelimli programlama, kodu ilişkili verileri onlar üzerinde işlem yapan fonksiyonlarla birleştiren nesneler etrafında düzenleme yöntemidir.
  • OOP, kodu veri ile davranışı birleştiren nesneler etrafında yapılandırır.
  • Sınıf bir plandır; nesne ise ondan oluşturulan bir örnektir (instance).
  • Dört temel direk kapsülleme, soyutlama, kalıtım ve çok biçimliliktir.
42Özyineleme
Özyineleme, bir fonksiyonun sorunu, basit bir temel duruma ulaşana dek aynı sorunun daha küçük sürümleri için kendisini çağırarak çözdüğü tekniktir.
  • Özyinelemeli bir fonksiyon, sorunun daha küçük bir sürümü için kendini çağırır.
  • Özyinelemeyi durduran bir temel durum içermelidir.
  • Her çağrı çağrı yığınında yer kaplar; çok derin özyineleme yığın taşmasına yol açabilir.
43Paket Yöneticisi
Paket yöneticisi, yazılım paketlerini ve onların bağımlılıklarını kuran, güncelleyen ve kaldıran, sürümleri otomatik olarak çözen bir araçtır.
  • Paket yöneticisi paketleri kurar ve bağımlılıklarını çözer.
  • Bir manifest okur ve npm ya da PyPI gibi bir registry'den indirir.
  • Dil yöneticileri kütüphaneleri, sistem yöneticileri programları kurar.
44Paralellik
Paralellik, birkaç hesaplamayı birden çok CPU çekirdeğinde, GPU'da ya da makinede gerçekten aynı anda çalıştırmaktır; böylece büyük bir iş daha hızlı biter.
  • Paralellik, hesaplamaları birden fazla işlemcide aynı anda çalıştırır.
  • Veri paralelliği veriyi böler; görev paralelliği farklı görevleri çalıştırır.
  • CPU yoğun Python işleri GIL yüzünden genellikle süreçler kullanır.
45Parametre
Parametre, bir fonksiyonun tanımındaki adlandırılmış bir girdidir; argüman ise fonksiyon çağrıldığında o yere verilen gerçek değerdir.
  • Parametreler, bir fonksiyon tanımındaki adlandırılmış girdilerdir.
  • Argümanlar, fonksiyon çağrıldığında verilen değerlerdir.
  • Argümanlar konumsal, adlandırılmış, varsayılanlı ya da değişken sayılı olabilir.
46PromiseSöz
Promise, asenkron bir işlemin nihai sonucunu temsil eden bir nesnedir; iş bittiğinde kodun başarıya ya da hataya tepki vermesini sağlar.
  • Promise, gelecekte elde edilecek bir değeri temsil eder.
  • Önce pending durumda başlar, sonra bir değerle fulfilled ya da bir hatayla rejected olur.
  • Sonucu yönetmek için .then(), .catch() ve .finally() kullanılır.
47Saf fonksiyon
Saf fonksiyon, aynı girdi için her zaman aynı çıktıyı döndüren ve yan etkisi olmayan, yani kendi dışındaki hiçbir şeyi değiştirmeyen fonksiyondur.
  • Saf fonksiyon, aynı girdi için her seferinde aynı çıktıyı döndürür.
  • Yan etkisi yoktur: dış duruma, argümanlara, dosyalara veya ağa hiçbir değişiklik yapmaz.
  • Saf fonksiyonları test etmek, önbelleğe almak ve paralel çalıştırmak kolaydır.
48SDKYazılım Geliştirme Kiti
SDK (yazılım geliştirme kiti), belirli bir platform veya servis için geliştirme yapmaya yarayan araç, kütüphane, dokümantasyon ve örneklerden oluşan pakettir.
  • SDK, tek bir platform ya da servis için kütüphaneleri, araçları, dokümanları ve örnekleri paketler.
  • Android'inki gibi platform SDK'ları derleme araçları ve emülatörler içerir.
  • Servis SDK'ları bir API'yi, kimlik doğrulama ve yeniden denemeler dahil, yerel fonksiyonlara sarar.
49Sınıf
Sınıf, nesne yönelimli programlamada bir grup nesnenin paylaştığı veri ve davranışı tanımlayan, nesnelerin örnek olarak ondan oluşturulduğu bir plandır.
  • Sınıf, nesnelerinin paylaştığı özellikleri ve metotları tanımlar.
  • Bir sınıftan oluşturulan nesneye örnek (instance) denir.
  • Kurucu (constructor), her yeni örneğin başlangıç durumunu ayarlar.
50Soyutlama
Soyutlama, bir şeyin nasıl çalıştığına dair karmaşık ayrıntıları daha basit bir arayüzün arkasına gizlemektir; kod onu yalnızca ne yaptığını bilerek kullanır.
  • Soyutlama, bir şeyin nasıl çalıştığını ne yaptığının arkasına gizler.
  • Yazılım, donanımdan yukarıya doğru soyutlama katmanlarından kurulur.
  • Arayüzler ve soyut sınıflar bunun için OOP'deki ana araçlardır.
51Stack trace
Stack trace, bir hata oluştuğu anda devam eden fonksiyon çağrılarının listesidir; hatanın çıktığı satırdan programın başladığı yere kadar uzanır.
  • Stack trace, bir hata oluştuğu anda devam eden fonksiyon çağrılarını listeler.
  • Her satır, yani her frame, bir fonksiyonu, bir dosyayı ve bir satır numarasını gösterir.
  • Çoğu dil hatalı satırı en üste yazar; Python ise en alta.
52Statik Tipleme
Statik tipleme, değişken ve ifadelerin türünün program çalışmadan önce, genellikle derleyici tarafından denetlenmesidir; birçok tür hatası erken yakalanır.
  • Türler program çalışmadan önce, genellikle derleme zamanında kontrol edilir.
  • Java, C#, Go, Rust, Kotlin ve TypeScript statik tiplidir.
  • Tür çıkarımı sayesinde birçok türün elle yazılması gerekmez.
53Tür çıkarımı
Tür çıkarımı, derleyicinin bir değişkenin ya da ifadenin türünü otomatik olarak belirlediği bir özelliktir; her tür bildirimini yazmanız gerekmez.
  • Tür çıkarımı, derleyicinin açık bildirim olmadan türleri belirlemesini sağlar.
  • Çıkarımlı kod hâlâ statik türlüdür ve çalışmadan önce denetlenir.
  • Türler ilk değerlerden, return deyimlerinden, generic argümanlardan ve bağlamdan çıkarılır.
54Veri türü
Veri türü, bir programa bir verinin sayı ya da metin gibi hangi tür bir değer taşıdığını ve hangi işlemlerin ona uygulanabileceğini söyleyen sınıflandırmadır.
  • Veri türü, verinin ne tür bir değer taşıdığını ve üzerinde hangi işlemlere izin verildiğini tanımlar.
  • Yaygın ilkel türler tamsayılar, kayan noktalı sayılar, dizeler ve boolean'lardır.
  • Dizi ve nesne gibi bileşik türler birkaç değeri bir arada gruplar.
55Yorumlayıcı
Yorumlayıcı, tüm programı önce ayrı bir çalıştırılabilir dosyaya çevirmek yerine kaynak kodu doğrudan, adım adım çalıştıran bir programdır.
  • Yorumlayıcı, önce ayrı bir çalıştırılabilir dosya üretmeden kodu doğrudan çalıştırır.
  • Çoğu yorumlayıcı kodu çözümler ve ham metin yerine bir sanal makinede bytecode çalıştırır.
  • Yorumlayıcı içindeki JIT derlemesi, sık çalışan kodu çalışma zamanında hızlı makine koduna dönüştürür.
56Yüksek dereceli fonksiyon
Yüksek dereceli fonksiyon, başka bir fonksiyonu argüman olarak alan, fonksiyon döndüren ya da ikisini de yapan fonksiyondur; davranış veri gibi taşınabilir.
  • Yüksek dereceli fonksiyon, girdi olarak bir fonksiyon alır, bir fonksiyon döndürür ya da her ikisini yapar.
  • Birinci sınıf fonksiyonlar gerektirir; çoğu modern dil bunları destekler.
  • map, filter ve reduce klasik örneklerdir.
Software Dictionary'den 56 terim. Ayrıntılı açıklamalar, örnekler ve sık sorulan sorular için: softwaredictionary.org/tr/kutuphane/programming

Kitaba dönİpucu: Bir kopyasını saklamak için yazdırma penceresinde “PDF olarak kaydet”i seçin.

Daha fazla

Ayarlar