İleri Programlamaya Giriş
İLERİ PROGRAMLAMAYA GİRİŞ
Nesneye Yönelik Programlama Hakkında Genel Bilgiler
Nesne yönelimli programlama, özetle bir bilgisayar
programlama yaklaşımıdır. Günümüzde pek çok çağdaş programlama dili tarafından
desteklenmektedir. 1960 ‘lı yılların sonuna kadar ortaya çıkan bu yaklaşım, o
dönemin yazılım dünyasında beliren bir bunalımın sonucudur. Yazılımların
karmaşıklığı be boyutları sürekli artıyor, ancak belli bir nitelik düzeyi
korumak için gereken bakımın maliyeti zaman ve çaba olarak daha da hızlı
artıyordu. NYP’ yi bu soruna karşı bir çözüm haline getiren başlıca özelliği,
yazılımda birimselliği benimsemesidir. NYP ayrıca, bilgi gizleme, veri
soyutlama, çok biçimlilik ve kalıtım gibi yazılımın bakımını ve aynı yazılım
üzerinde birden fazla kişinin çalışmasını kolaylaştıran kavramları da yazılım
literatürüne kazandırmıştır. Sağladığı bu avantajlardan dolayı, NYP günümüzde
geniş çaplı yazılım projelerinde yaygın olarak kullanılmaktadır. NYP 'nin altında yatan birimselliğin
ana fikri, her bilgisayar programının (izlence), etkileşim içerisinde olan
birimler veya nesneler kümesinden oluştuğu varsayımıdır. Bu nesnelerin her
biri, kendi içerisinde veri işleyebilir ve diğer nesneler ile çift yönlü veri
alışverişinde bulunabilir. Hâlbuki NYP 'den önce var olan tek yaklaşımda,
programlar sadece bir komut dizisi veya birer işlev kümesi olarak
görülmektedirler. Günümüzde çok çeşitli nesne tabanlı programlama dilleri
olmasıyla beraber, en popüler diller sınıflar üzerine kurulmuşlardır. Bu
dillerde nesneler sınıfların birer üyesidir ve nesnelerin tipini de bu sınıflar
belirlerler.
En yaygın
NYP dillerinden bazıları, Python, C++, Objective C, Smalltalk, Delphi, Java, Swift, C#, Perl, Ruby ve PHP' dir. Nesne yönelimli programlama dilleri yukarıda adı geçen tüm ögelere sahip
olurken, Ada, JavaScript, Visual Basic gibi nesne tabanlı programlama dilleri birkaçından yoksundur, bu dillerin
başlıca yoksunluğu kalıtıma sahip olmamalarıdır.
Prosedürel
Prosedürel,
belli bir fonksiyonu hesaplayan bir işlemi ifade eder. Fraktallar genellikle
prosedürel olarak yaratılması mümkün olan geometrik örüntülerdir. Kaplamalar ve
üç boyutlu poliganlar yaygın rastlanan prosedürel içeriklerdir. Sesin
prosedürel olarak üretimine de sıkça rastlanır. Prosedürel ses üretimi hem
müzik oluşturma hem de konuşma sentezleme amaçlarıyla kullanılırlar. Elektronik
müziğin birçok tarzında besteler yaratmak için kullanılmıştır. Yazılım
geliştiriciler prosedürel üretim tekniklerini yıllardır kullanıyor olsa da, az
sayıda yazılım ürünü bu yaklaşımı ileri düzeyde kullanmıştır.
Veri Soyutlama
Bilgisayar
bilimlerinde soyutlama, daha çok nesne yönelimli programlama ile ön plana
çıkar. Nesne tanımlanırken verinin kullanılması veya veriye erişilmesi
için gerekli detayların azaltılması işlemidir. Soyutlama kabaca veri ve kontrol
soyutlaması olarak yapılır. Veri soyutlaması, veri yapıları üzerinde yapılan
soyutlamadır. Kontrol soyutlaması ise yapısal programlama ile gelen altprogram, işlev gibi
kavramlar üzerinde yapılan soyutlamadır. Örnek olarak bir "kişi"
nesnesinde, kişinin yaşını tutan bir tamsayı değişkeni olan "yas"
değişkenini ele alalım. Bu "yas" değişkenine, programın çalıştırma
anında, "-10" gibi bir değer atanmasını kimse engelleyemez. İşte
burada nesne yönelimli programlamanın getirdiği görünürlük ve özellik tanımlama
gibi yetenekler kullanarak "yas" değerine gerçek bir değerin
girilmesi garanti edilebilir. İşte buna veri
soyutlaması adı verilir. Benzer şekilde soyutlama
işleminin verileri taşıyan değişkenlerin değil de yöntem veya işlevlerin
üzerinde yapılması işlemine kontrol soyutlaması adı verilir. Yani yöntem ile yapılan
işlemlerin bir başka nesne tarafından müdahale edilemeyecek hale sokulması
işlemidir.
DLL Nedir?
DLL
dosyaları, Dİnamic Link Library isminden gelmektedir. DLL dosyalarının görevi,
programların ortaklaşa yaptıkları görevi koordine etmektir. Örneğin bir DLL
dosyamız olsun ve bu DLL dosyası kendisine gelen ve iyi kağıta basıyor olsun.
Bu DLL dosyası hem Word hem Exel, hem Acrobat Reader gibi programlar tarafından
kullanılabilir. Yan ortak bir işlevi gerçekleştirir. Bu sayede işletim
sisteminde her program için bir işlevi yapan ayrı bir dosya bulundurmak yerine
tek bir dosya üzerinden programlar bu tür işlevleri gerçekleştirebilirler. DLL
dosyaları metin dosyaları gibi kullandığı için not defteri programı ile bile
kolayca değiştirilebilirler. Bunun için ayrı ek bir programa genel olarak gerek
yoktur ama programcılar büyük değişiklikler için farklı programlar
kullanmaktadırlar. DLL Dosyalarının tek başlarına bir işlevi yoktur. Sadece
başka bir program aracılığı ile çalışabilirler ama tek başlarına herhangi bir
işlem sürdüremezler.
Windows Mesajlaşma
Windows
mesajlaşma, Microsoft tarafından yapılan Windows XP’de bulunan durdurulan bir
anlık mesajlaşma istemcisidir. Hem kurumsal hem de ev kullanıcıları tarafından
kullanılmak üzere tasarlanan bu uygulama ilk olarak MSN mesajlaşmanın
aerodinamik ve entegre bir sürümü oluşturuldu. Daha sonra 2004 yılında, Windows
2000 ve Windows Server 2003’te kullanıma sunulduğunda güncellendi. O zamandan
beri gelişimi durdu. Windows Live Messenger ve Microsoft Lync sonradan hizmetin
yerini aldı.
Serileştirme
Serileştirme, .NET üzerinde işlem yaptığımız bir
nesnenin, bir sınıfın saklanmak istenilen ya da gönderilmek istenilen formata
dönüştürülmesi işlemidir. Böylelikle bu nesneyi kalıcı veya geçici olarak
saklayabiliriz. Yani nesnemizi fiziksel olarak hard diskimize bir dosyaya
yazabilir ya da bir networke transfer edebilir ya da web servisleri ile
gönderebiliriz. İşte bu işlemler için nesnelerimizi, datalarımızı serilize
etmemiz gerekir. Böylelikle verilerimiz küçülecek ve aynı zamanda daha
performanslı hale gelecektir.
Soket Programlama
Bu yazıda Java ile soket programlamanın başlangıcından itibaren basit
örneklerle siz okuyuculara anlatmak istiyorum. Ağlarla ilgilenen veya giriş
seviyesindeki dersleri almış olanlar soket kavramına aşinadır. Soket, ulaşılmak istenen IP adresi ile
dinlenecek olan portun birleşmesinden meydana gelir. Bu şekilde iletişime
geçmek istediğiniz kısma ulaşmış olursunuz. Çeşitli atanmış portların dışında
kendinizi açabileceği port aralıkları bulunmaktadır. 1024’den sonraki herhangi
bir yere port açmanız mümkün kılınmış durumda. Client ve Server kavramları ise yine bu konuda üzerinde durmam gereken diğer
terimler. Server, daima aktif olan, Client tarafından istenen verileri
ulaştırmakla görevlidir. Bunun yanında Client isteklerini Server ’dan alarak işleyen
taraftır.
TCP – UDP Uygulamaları
UDP
UDP ,TCP/IP protokol takımının iki aktarım katmanı protokolünden birisidir. Verileri bağlantı
kurmadan yollar.
Gelişmiş
bilgisayar ağlarında paket anahtarlı bilgisayar iletişiminde bir datagram modu
oluşturabilmek için UDP protokolü yazılmıştır. Bu protokol minimum protokol
mekanizmasıyla bir uygulama programından diğerine mesaj göndermek için bir
prosedür içerir. Bu protokol 'transaction' yönlendirmelidir. Paketin teslim
garantisini isteyen uygulamalar TCP protokolünü kullanır.
·
Geniş alan
ağlarında (WAN) ses ve görüntü aktarımı gibi gerçek zamanlı veri
aktarımlarında UDP kullanılır.
·
UDP bağlantı
kurulum işlemlerini akış kontrolü ve tekrar iletim işlemlerini yapmayarak veri
iletim süresini en aza indirir.
·
UDP ve TCP
aynı iletişim yolunu kullandıklarında UDP ile yapılan geçek zamanlı veri
transferinin servis kalitesi TCP'nin oluşturduğu yüksek veri trafiği nedeniyle
azalır.
UDP 'yi
kullanan protokollerden bazıları DNS, TFTP, ve SNMP protokolleridir. Uygulama
programcıları birçok zaman UDP 'yi TCP'ye tercih eder, zira UDP ağ üzerinde
fazla bant genişliği kaplamaz.
UDP
güvenilir olmayan bir aktarım protokolüdür. Ağ üzerinden paketi gönderir ama
gidip gitmediğini takip etmez ve paketin yerine ulaşıp ulaşmayacağına onay
verme yetkisi yoktur. UDP üzerinden güvenilir şekilde veri göndermek isteyen
bir uygulama bunu kendi yöntemleriyle yapmak zorundadır.
TCP
TCP, TCP/IP protokol takımının aktarım katmanı protokollerinden birisidir. Gelişmiş bilgisayar
ağlarında paket anahtarlamalı bilgisayar iletişiminde kayıpsız veri gönderimi
sağlayabilmek için TCP protokolü yazılmıştır. HTTP, HTTPS, POP3, SSH, SMTP, Telnet ve FTP gibi internet' in kullanıcı açısından
en popüler protokollerinin veri iletimi TCP vasıtasıyla yapılır.
Windows Servisleri
Windows servisleri
bilgisayarın açılmasıyla birlikte kendini otomatik olarak başlatan, herhangi
bir arayüzü veya görsel çıktısı olmadan işletim sisteminin arka planında
çalışan, kullanıcıyla sürekli etkileşim halinde bulunan çalıştırılabilir
nesnelerdir. Bu servisler işletim sistemlerinde çok önemli görevler
üstlenmişlerdir. Sistem olaylarının ve hatalarının kayıtlarının tutulmasında,
veri tabanı güncellemelerinde, performans ölçümlerinde, veri analizlerinde,
kaynakların ve network (ağ) erişimlerinin izlenmesi gibi pek çok konuda
kullanılırlar. Herhangi bir işletim sisteminde çalışan birçok servis vardır. Bu
servisler Control Panel (Denetim Masası ), Administrative Tools (Yönetim
Araçları) , Services (Servisler) yolu izlenerek görülebilir. Aynı
zamanda kullanıcılar kendi ihtiyaçları doğrultusunda .Net
Framework içerisinde tanımlanmış olan sınıfları kullanarak kendi
servislerini oluşturabilirler. Buradaki sınıfları kullanarak bir servis
oluşturulmak istenildiğinde uygulanması gereken bazı kurallar vardır. Öncelikle
bir servisin uygulama amacına hizmet edecek şekilde oluşturulması gerekir, daha
sonra sistemde bu servis için bir iş parçacığı oluşturulmalı ve servis
sisteme yüklenmelidir. Sisteme yüklenen bu servisin, aldığı durumlar Service
Controller (Servis Denetleyicisi) sınıfındaki metotlar aracılığıyla
kontrol edilebilir. Bir servis çalışırken oluşan hatalar sistemde log
(kayıt) olarak tutulur. Aynı zamanda bu sınıftaki metotlar kullanılarak
loglar aracılığıyla servislerin davranışları kontrol edilebilir.
Kod Optimizasyonu
FrontPage ile hazırlamış olduğunuz sayfalar Internet Explorer
içerisinden kusursuz olarak görüntülenebilirler. Ancak aynı sayfaların diğer
web tarayıcılarında (Netscape gibi) düzgün görüntüleneceğinin bir garantisi
yoktur. Bu yüzden, profesyonel amaçlı site hazırlayan kişiler için FrontPage
yeterince kullanışlı olmayabilir. En azından FrontPage ile hazırlanan bir
sayfanın kodlarının HTML dilini bilen bir kişi tarafından düzenlenmesi
gerekebilir. Hatta bu sayede dosyanın boyutunu küçültmek ve internet tarayıcısı
içerisinde görüntülenme hızını artırmak bile mümkün olabilir.
Yorumlar
Yorum Gönder