İ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ı, PythonC++Objective CSmalltalkDelphiJavaSwiftC#PerlRuby 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

Bu blogdaki popüler yayınlar

VLSI Devre Tasarımı

Yapay Sinir Ağlarına Giriş

İnsan Bilgisayar Etkileşimi