Eyl 24

Çoğu yazılımcı PHP gibi bir dil üzerine onlarca uygulama geliştirdikten sonra kendi kütüphanelerine ve objelerine sahip olabilmekte, geriye dönük uygulamalarda yaptığı hataları görebilmekte, çok daha azı ise geri dönüp hatalarını düzeltme fırsatı bulabilmektedir. Çoğu PHP geliştiricisi halen fonksiyonel programlamadan nesne yönelimli programlamaya geçememiştir. PHP geliştiricilerinin büyük çoğunluğu tasarım desenlerinin uygulamalarına ne gibi faydalar getirebileceğini öngörememektedirler. Artık klasik (babadan kalma) fonksiyonel PHP betikciklerinin bir kenara bırakılarak (incXYZ.php vb…) nesne yönelimli ve sağlam tabanlara oturmuş geliştirme tekniklerinin kullanılması gerekmektedir.

Kendilerine web uygulaması temin etmek isteyen firmalar daha önceleri geliştirttiği yazılımın kaynak kodlarınıda sahip olabildiği için tercih ettikleri PHP’den artık uzak durmaya çalışmaktadırlar. Bu uzaklaşmanın sebeplerinden bir tanesi de yazılan kodların kalitesinin düşük olması, buna bağlı olarak da zayıflıklarla çokca karşılaşılmasıdır. Bugün yazılım sektöründe girişim yapan birey elinde ASP.NET, PHP nadirende JAVA gibi bir web silahı ile cepheye atılmaktadır. Elinde ASP.NET ya da JAVA gibi doğuştan framework desteği olan dilleri tercih edenler bana göre biraz daha şanslı görünmektedirler. Çünkü yaptıkları hatayı örtebilen hazır sistemler ellerinde hali hazırda bulunmaktadır. Deneyim kazandıkça yaptıkları hataları farketseler de (ki çoğu zaman hata oluşmayacağı için farkedilmeyebilir de) arkaplanda profesyoneller tarafından geliştirilmiş olan kütüphaneleri kulandıkları için hataları görünmeyebilecektir. Bir PHP’ci için hayat bu kadar pembe olmayabilir. Yapılan neredeyse her hatanın ciddi bir sorun oluşturma riski diğer platformlara göre daha yüksektir. Çünkü PHP’de kod geliştirmeye başlayan yazılımcı webden arayıp bulduğu, open source camiasının güzelliklerinden biri olan, hazır kodları çok az değişiklik yaparak ticari sistemlerde kullanmaya ve bundan para kazanmaya alışmıştır. Bulunan kodun çalışıp çalışmadığı önemlidir. Tasarım deseni, naming convention’ları ya göz ardı edilmiş ya da incelendi ise bile çok arka planlara atılmıştır.

Bunları yazarken amacım hiçbir zaman ben böyle şeyler yapmadım, bunları hep başkaları yapıyor diyerek php geliştiricilerine çamur atmak olmadı. Kimse doğuştan yazılımcı olmadı. Tecrübelerimiz ve yaptığımız hatalar sonucu kendimizi geliştirdik. Geçmişte keşke bunu böyle yapsaydım diye düşünmektense, geleceğe yönelip “Bu hatalardan nasıl kaçınabiliriz, bu alana yeni girecek arkadaşlara nasıl önerilerde bulunabiliriz?” kısmı için endişe etmekte fayda olduğunu düşünüyorum.

PHP ile web uygulamaları geliştiren yeni yazılımcıların ve artık fonksiyonellikten öteye geçmeyi planlayan deneyimli yazılımcıların yapmaları gereken önemli birşey olduğunu düşünüyorum. Evet Amerika’yı yeniden keşfetmeye gerek yok, aradığımız çoğu kod daha önce birileri tarafından geliştirildi. Bunları internetten bulabiliriz. Fakat bunları farklı yerlerden yamalı bohça şeklinde toplamaktansa, kaliteli kod geliştirmeyi destekleyecek tek bir merkezden alınmasının daha mantıklı olduğunu düşünüyorum. Untumayalım ki şarkılardaki notalar her zaman aynı ama yeni şarkılar notaların farklı şekilde bir araya getirilmesi ile üretiliyor ve getirilme şekline göre de beğeniliyor yada beğenilmiyor. Artık PHP için geliştirilen güzel, topluluğu gelişmiş ve desteği iyi olan bir PHP framework’ünün temel alınarak kod geliştirmenin başlatılmasının gerekliliğine inanıyorum. Bunun içinde bundan sonraki yazılarımda fırsat bulabilirsem olası frameworklerle ilgili inceleme ve kaynaklara yer veriyor olacağım. Bir sonraki yazıda görüşmek üzere….