Nesne yönelimli programlama (Object oriented programming) hakkında bilgiler vereceğim.
OOP mimarisi 1960 yıllarında Alan Kay tarafından ortaya atılmış ve bence yazılımın altın çağı diyebileceğimiz bir mimaridir. Birçok yeni başlayan arkadaşın kafasını karıştıran bir yapı olsada OOP mimarisi yazılımcıların sırtından çok büyük bir yük almış ve yazılım maliyetlerini, süresini kısaltmıştır. 1960lar ve öncesinin benimsediği Prosedürel Programlama mimarisi (bazıları metodoloji’de diyebilir) ortak işlerin yapılacağı fonksiyonları yazarak onları her alanda kullanmak üzerine kuruluydu.
Uzun bir süre bu yönde ilerleyen yazılımcıların büyük ölçüde işlerini görüyordu ancak beraberinde birçok zorluk ve sıkıntıyıda beraberinde getiriyordu. Örneğin;
- Uygulamayı bir modüler bir yapıda değil bir bütün olarak kodlanmak zorundaydı ve geliştiren ekibin her üyesi bütün uygulamaya hakim olmalıydı
- Yeni katılan geliştiricilerin uygulamada değişiklikler yapıp ekibe tam anlamıyla katılması için uzun bir adaptasyon süresinden geçmesi gerekiyordu
- Uygulama bütün halde kodlandığı için en ufak değişiklikde farklı bölümlerde büyük sıkıntılar çıkarabiliyordu ve debug olayları oldukça zorlaşıyordu.
- Yıllar geçtikce donanım teknoloji yükseldikçe yazılımdan istenilen özellikler artmaya başladı ve buda beraberinde çok fazla kod, çok fazla zaman getirdi. Projeler belirlenen zamanlarda bitirilemiyor, kontrolü zor olmaya başladı. Projelerin büyük bir kısmı zaman yetersizliğinden iptal edilmeye başlandı.
Bu kısımdan sonra Alan Kay abimiz 1960 yıllarında çıkıp “Nesne Yönelimli Programlama” mimarisini öne sürdü. Kısaca dediki;
- Uygulamalar nesnelerden oluşmalı, nesnelerde objeler oluşmalıdır. Ve bu nesnele belirli bir iş yapmak için geliştirilebilmelidir.
- Nesneler birbirleriyle haberleşebilmelidir.
Bundan sonra yazılım dünyasında önemli değişiklikler oldu. Birkaç örnekle Nesle yönelimli programlamayı anlatayım. Örneğin bir blog uygulaması yapacaksınız. her bir modülünü farklı bir nesne kullanabilirsiniz. Örneğin;
class Database {}
class FileSystem {}
class Users {}
Users nesnesi bir Database’yi birleştirerek (phpde extend) hayal gücünüzle orantılı olarak birçok şey yapabilirsiniz. Önceden bir adet fonksiyon olurdu ve onunla sayfa başlarında veritabanında bağlanırdık. Sayfanın sonunda bağlantı kapatılırdı.
Bu Yazıya Puan Ver!
3 kişi puan verdi.