Kaya Sağlamlığında Kodlama - İsmail KIRBAŞ ile Web Sitesi Tasarımı
İsmail Kırbaş ile Tasarım Yolculuğu [AnaSayfa] İsmail Kırbaş ile Tasarım Yolculuğu [AnaSayfa] İsmail Kırbaş ile Tasarım Yolculuğu [AnaSayfa]
 Site Haritası 
 
Site Map
Ana SayfaYeriniz | Ana Sayfa | Makaleler | Programcılık | PHP | Kaya Sağlamlığında Kodlama

Diğer Yazılar
Yapı Taşları
PHP de Dosya İşlemleri
PHP de Metin Düzenleme İşlemleri
Operatörler
Fonksiyonlar
Veri Aktarımı
Sekmeli Menü 1
Sekmeli Menü 2
Hızlı RSS Hazırlama
Web Formları İçin Güvenlik Kodu Oluşturma
PHP ye Giriş
PHP ye Giriş 2
Php ile COM Port Kontrolü


E-posta Gönderin Yorum Yazın
Güvenlik Kodu:4372Güvenlik Kodu:4372Güvenlik Kodu:4372Güvenlik Kodu:4372




En Son Okunan 10 Makale
  1. Kolay ve İyi Öğrenme
  2. Bana Yaratıcılığı Öğretenin 40 yıl kölesi olurum
  3. Hazırlık Aşaması
  4. Navigasyon Üzerine Notlar
  5. Kriz Yönetimi 2
  6. Renklerin Dili - Turuncu
  7. Logotype ve Amblem - Tipografik Logolar
  8. E-iş Dökümanlar
  9. PKI ve Dijital İmza Uygulamaları
  10. Web Tasarımında Yardımcı 15 Web Sitesi
 
Kaya Sağlamlığında Kodlama>
Yazı Tipi KüçültYazı Tipi BüyütAna SayfaYazıcıdan ÇıkarPDF Belgesi Olarak GörüntüleFavorilerime EkleArkadaşıma Tavsiye EdeceğimRTF (Word Dokümanı) olarak görüntüle

20.000 Feet den Merhaba

PHP’ de kaya gibi sağlam kod yazma dizisi orta ve büyük ölçekli uygulamalarda görülen gerçek hayat sorunlarının çözümleri hakkındadır. Dizide PHP4’ te bulunana yeni özelliklere keskin bir odaklanmayla beraber hayatı kolaylaştıran sayısız ipucu ve oyunları aydınlatmaktadır. İçerikte sayısız örnek kodla birlikte birçok teknik ve örnekleme bulacaksınız.Bu ilk makalede PHP uzmanı Amol Hatwar orta ve büyük ölçekli web uygulamaları için anlaşılabilir ve hatasız kod düzenlemesi ve yazımına geniş bir bakış açısı getirmekte.

Eğer hız, fonksiyonellik ve platformdan bağımsızlığa ihtiyacı olan bir Web Uygulama geliştiricisiyseniz PHP sizin için biçilmiş kaftandır.Dahası ücretsiz,öğrenimi ve uygulaması kolaydır. Bunlar PHP’ nin popüler olmasını sağlayan büyük güçleridir. Ama bu güçler aynı zamanda bir zayıflığı da içerir.

PHP’ nin y kullanımı yüzünden, geliştiriciler çoğu zaman, planlama ve tasarım yapmaları gereken yerde kod yazmaya başlıyorlar. Bununla birlikte PHP’ de bir problemi birden fazla yol ile çözebilirsiniz ve ileride telafisi olmayan hatalar yapmanız hiç uzak değildir.
Bu dizide, hatalardan nasıl kaçınacağınızı öğreneceksiniz, birinci veya ikinci denemenizde hatasız kod yazdığınıza şaşırmayacaksınız.Bunun yanında PHP4 ile birlikte gelip hayatımızı kolaylaştıran özelliklere de değineceğim. Burada vereceğim bir çok örnek, kod konfigürasyonu, kurulum, dosya işlemleri, ve veritabanı kullanımı gibi pratik, gerçek hayat problemlerinin çözümüne yardımcı olacaktır. Bütün bunlara karşı yeniyseniz bile, takip etmeyi kolay bulacaksınız. Bununla birlikte orta düzeyde PHP bilginiz olduğunu varsayıyorum.

Sağlam Temel Oluşturma
PHP kodlama, C kodlamaya çok benzerdir. Bu her iki kodlamada da aynı yapısal sorunlara ve kod geliştirme problemlerine neden olmuştur.Büyük ölçekli uygulamalar geliştirilirken çok miktarda kod yazılması gerekebilir. Zamanla bu kod yığını yönetilemez hale gelir ve sonra hataların ortaya çıkması kaçınılmaz olur. Her nerede şunu duyduysanız gerçek değildir, en azından bir parça.... Ama asıl gerçek ilk planda uygulamanız iyi tasarlanmadıysa kendinizi kodla uğraşır durumda bulmanızdır.

Önce İyi Tasarım
Baştan yaptığımız seçimler, kodlarken özgürlüğünüzü elinizden alır. En azından şunu bilmelisiniz, ki gereksiz bir sorunu halletmeye çalışırken tasarım size ekstra yük olabilir. Bir çok kişi planlama ve tasarımın kendiliğinden geleceğini zanneder. Ancak kötü bir tasarımla yada tasarımsız başlamak daima adi ve dikkatsizce yazılmış kodların ortaya çıkmasına neden olacaktır. Unutmayın, iyi kodlamanın hiçbir miktarı kötü tasarımın etkilerini gidermez.
Nasıl uygulama tasarlanacağı bu serinin içeriği dışında olmasına rağmen, Web Uygulaması geliştirirken aklınızda tutmanız gereken bazı önerilerde bunacağım.
Böl ve Yönet
Büyük uygulamalar tasarlanırken ve kodlanırken uygulamanın birkaç küçük genel bölüme bölünmesi tercih edilir.Böylece her bölüm kendi içinde daha fazla değiştirilebilir ve daha kolay yönetilir.
Örneğin bir CMS yetkilendirme, sunum, içerik denetleme, ve istatistik çıkarma gibi genel bölümlere bölünebilir.Eğer modülleriniz yeteri kadar genel ise onları geliştirdiğiniz diğer uygulamalarda da kullanabilirsiniz. Programcılar bunu yaparlar ve hala şikayet ederler. Kodlama için hile her modüle ihtiyacı olduğu kadar fonksiyonellik vermeniz ve orada durmanızdır. Modüle ne daha fazlasını ne de daha azını verin.

Sayfalarda Düşünmeyin
Eğer PHP ile HTML biçimli sayfalarınızı daha dinamik hale getirmek istiyorsanız buraya dikkat edin. Bu alışkanlık genellikle sayfalarınızın daha yeni görünmesi için tarih koyma isteğiyle başlar. Bütün HTML dokümanları yarım yamalak bir satır kod ile PHP uygulamaları haline gelebilirler. Eğer bu bir kimsenin yapmak istediği şeyse, bunun yapılması için en basit yöntem olduğunu kabul etmesi gerekir. Peki görünen tarih formatını değiştirmeye kara verdiğinizde ne yapacaksınız? Her sayfayı değiştirmek zorunda kalacaksınız. Besbelli ki, bundan daha iyi yollar da vardır. Benim en çok kullandığım yol bir konfigürasyon dosyası oluşturarak gerekli formatı buradan almaktır. Mesela DATE_STR simli bir sabite tanımlayabilirsiniz. Bundan sonra bu formatı istediğiniz her yerde kullanabilirsiniz. Her sayfada yine PHP kodu bulunacaktır ama sizin değiştirmeniz gereken alanlar minimum seviyeye gelmiş olacaktır. Yapmanız gereken konfigürasyon dosyasında sadece 1 satırı değiştirmektir.
Figür 1: Esnek olmayan kod yazımından kaçınmak

Figür 1 de görüldüğü üzere tarih formatında yapılan herhangi bir değişiklik bütün dosyalardaki görünümü etkiliyor. Buradaki fikir esnek olmayan kodlama ve kod tekrarından kaçınmadır. Bunu büyük uygulamalar yazarken aklınızda mutlaka bulundurun. Kod tekrarından kaçınmakla kodu okumanız ve kavramanız kolaylaşacaktır.
Kullanıcı Taraflı Gerekliliklerden Kurtulun
Web sunum teknolojileri değişik yönlerde gelişebilirler. Önceler resim ve iimage-map ler vardı, daha sonra Java Applet ve istemci taraflı kodlamalar oraya çıktı. Bugünlerde ise FLASH !
Bunlar belki bir etki yaratmak için iyi fikir olabilir ama bunları kullananlar web’ in ardındaki temel mantığı kaçırıyorlar. İsteyen herkese bilgiyi ulaşılabilir yapma. Bütün platform ve tarayıcılarca desteklenmeyen teknolojileri kullanmakla, insanlar sunduğunuz(!) bilgiden mahrum etmiş oluyorsunuz. Ayrıca bu bilgiye ulaşamayan ziyaretçinin bir sonraki müşteriniz olup olmadığını da kestiremezsiniz.
Uygulama tasarımınız ağ trafiğini olabildiğince küçük tutmalıdır. Gözden düşmüş çoğu sitenin sadece çalışabilmek için onlarca cookie gönderdiğini ve yüklenmelerinin zaman aldığını hatırlayın. Çok fazla cookie kullanmak sadece bandwidth ı düşürmez ayrıca işleri karmaşık hale getirir. Kesin kural olarak sayfanızın yüklenmesi 5 sn yi aşıyor yada 40 KB tan fazla veri gönderiyorsa uygulamanızı yeniden karalama tahtasına almanız gerekir. Burada dikkat edeceğiniz nokta uzun süre tekrar bakım istemeyecek ancak sizi de uzun sürede uğraştırmayacak değişiklikler yapmaktır. Önemli olan olabildiğince sayfalarınızı basitleştirmektir. Fazla sayıda hit alan sitelerin dizaynlarına bakın oldukça basit olduklarını göreceksiniz.Ayrıca bir sonraki nesil mobil aletleri ve onların uygulamalarınıza ulaşabilecekleri bağlantıları da düşünmelisiniz. İyi bir örnek olarak uygulamanız talep eden istemciye göre sunum sağlamalıdır. Leon Atkinson ‘ın kitabında (Core PHP Programming) 720. sayfada bundan bahsederken güzel bir örnek vermiştir.:
“HTML dokümanlarının boylarını küçük tutabiliriz, tablolar gibi karmaşık kodlar kullanmaktan kaçınabiliriz ama kimsenin 28.8 modemini upgrade edemeyiz.”
Kodu Sunumu ve İçeriği Ayırın
HTML, gösterim için bir işaretleme dilidir ve PHP ‘de HTML ‘ye gömülen bir kodlama dilidir. Bu bazı işlerde kolayca görülebiliyor, mesela tarih örneği.... Ayrıca yaptığımız işin de kolay olduğu izlenimini verebiliyor. Ancak uygulama geliştirirken complex ihtiyaçlarınız varsa, PHP yi HTML içine gömme kodun anlaşılabilirliğini ve okunabilirliğini tam manasıyla katleder. Kod içerik ve sunumu olabildiğince birbirinden ayırmaya dikkat etmelisiniz. Şu an okuduğunuz dokümanı ele alalım. Bu doküman ilk önce XML olarak oluşturuldu, HTML ve PDF sürümleri style sheet’ ler ile otomatik olarak oluşturuldu. Kod (Bu yazıyı takip ettiğiniz program), içerik (XML) ve sunum style sheet ayrılmıştır.
Temel modül fonksiyonelliğini sınırlandırmak ve kod tekrarından mümkün olduğunca kaçınmak önemli olduğu gibi içerik için tek kaynak kullanmak ve içeriği istendiği gibi sunmak da önemlidir.
Böylece sayfaların kullanıcı tarayıcısı ve hızına bağlı olarak görüntülenmesinin esnekliği artacak, diğer bir artı yön ise programcılar tasarımcılar ve yazarlar (içeriği sağlayanlar) ayrı ayrı çalışabileceklerdir.—Büyük projelerde iyi bir şey :-)
Kötü Tasarımlarınızı Atmaktan Korkmayın
Başkalarının ne dediğini önemsemeyin uygulama tasarımı en iyi pratik yapılarak öğrenilir. Eğer yeni başlıyorsanız bir çok hata yapabilirsiniz – bu sizin öğrenme yolunuzdur.
Kötü tasarımlar buruşturulup atılmaya layıktır. Bu kodu sunumu ve içeriği ayrı ayrı tutmamızın sebebidir, böylece kötü tasarımların atılması daha az acı verir. Eski kodunuzu da daha iyisi için kaybederken içerik ve sunumunuzu elinizde tutabilirsiniz.
Şimdi, size verdiğim söze dönelim, kodunuzu kaya gibi sağlam yapmayı anlatalm. Şunu unutmamalısınız ki, sizin kodunuz birilerinin içerik ve sunumuna destek verecektir. Eğer kodunuz bunu yapamıyorsa, diğer birimlerin harikulade etkileri bu eksikliği örtemez.
Kaya gibi Sağlam Kodlama
Kodunuzun gereksinimleri değişmedikçe, mantıklı biçimde, sizde kodunuzu değiştirmeye ihtiyaç duymayın. Tabii ki optimizasyon ve ara sıra gereken iyileştirmeler hariç, kodunuz iyi yağlanmış bir makine gibi çalışmalı. Zor mu görünüyor? Aslında değil. Açıkça ortaya koyun, kaya gibi sağlam kod yazma dahilik gerektirmiyor. Sadece kurtulamadığınız ikilemlerde doğru soruları sorun:

Kodunuz;

  1. Güvenli mi?
  2. Basit ve anlaşılır mı?
  3. Platformdan bağımsız mı?
  4. Yeteri kadar hızlı mı?

Kodunuzu Güvenli Yapın

Büyük bir topluluğa hizmet eden her sistem güvenli olmak zorundadır. Emin olunmayacak bir nokta PHP kendisi black-hat hackerların saldırılarından korunaklıdır. PHP 4.2.2 versiyonuna kadar ciddi güvenlik açıklarına sahipti. Hassas bilgilerin geçerli bir şifrelemeyle ağda transferinin yapıldığından ya da depolandığından emin olun. Bu alışveriş sitelerindeki kredi kartı numaraları ya da özel bilgiler gibi bileşenler içeren uygulamalarda daha önemlidir.

Bugünlerde kullanıcıların yolladığı bilgilerin doğruluğuna inanmak zordur. Bilgiyi kullanmadan önce onaylatınız ve olabilecek zararlı kodları temizleyiniz. Şunu da aklınızda bulundurun Web uygulamalarınızı Internet’ e koymak, sisteminize, uygulamalarınıza ve işinize büyük bir yük getirecektir. Kodunuzun her zaman güvenli bir şekilde çalışmasını sağlamak zorundasınız.

Kodunuzu Basit Tutun

Kodunuz kolayca anlaşılmalı, kolayca okunabilmeli ve dokümantasyonu tam yapılmalıdır. Tekrar tekrar kodun ne yaptığını anlamak için zaman kaybetmektense dokümantasyon yapmalı ve uygulama boyunca belirli bir isimlendirme sistemi kullanmalısınız. Bu işlere harcanacak zaman size daha sonra kodun değişik bölümlerini tekrar ele aldığınızda geri ödemesini yapacaktır. Doküman tutmanın en iyi yöntemi kodlama yaparken notlar almadır. Tüm dağınık kodlarınızı ortak kontrol edecek aletler olmadığından dolayı kendinize bir HTML biçeminde düzgün bir dokümantasyon hazırlayın.

Eğer kodun bir kısmının yaptığı işi değiştirirseniz dokümantasyonunuzu da güncelleştirmeyi unutmayın. Bazı kısımları yanlış ya da eksik olan dokümantasyonun hiçbir kullanışı yoktur. Kodunuzun iyi dokümante edildiğinden, basit ve kolayca anlaşılır olduğundan emin olun.Bu uzun vadede yardımcı olacaktır.

Platformdan Bağımsızlığı Sağlayın

Göz önünde bulundurmanız gereken bir diğer konu ise platformdan bağımsızlıktır. Tabii ki Windows platformu için yazdığınız kodlar Unix ya da bir başka platformda da güzelce çalışacaktır. Ancak küçük de olsa bazı farklılıkları göz önüne almanız gerekebilir: yeni satır karakterini Windows platformlar \r\n olarak tanımlarken, Unix platformlar \n olarak tanımlıyorlar.

PHP ye dışarıdan (veritabanı vs..) bunu mutlaka ayrıca yapın. Diyelim ki maliyetten kısmak için MySQL kullanıyorsunuz. Daha sonra daha çok özellikli bir vt ye geçmeniz gerekti. Kod içinde satır satır arama yaparak değiştirme yapmaktansa asıl koddan izole edilmiş bir değişkenler dosyasında değişiklik yapma daha kolay olur.Böylece tüm uygulamayı yeniden anlamak zorunda kalmazsınız. Platformdan bağımsız kodlamayı mutlaka sağlayın bu uygulamalarınızı daha ölçeklenebilir daha uyarlanabilir yapacaktır.

Hız İçin Yapılandırma

Uğraşmaya değer en son nokta ise hız faktörüdür. Kimse sizin kodunuzun can sıkıcı bir şekilde 300 ve ya daha fazla satırı vt den çekip görüntülemesini beklemek istemez. Her sayfada 20 veri olmak üzere 15 ayrı sayfada sonucu göstermek her zaman daha iyi bir çözümdür. Kullanıcı uygulamaların gerçek hızına değil kendisine gelen cevap hızına bakar. Diğer yapılan bir hata da sayfaları her zaman dinamik görüntülemektir. Başlangıçta fazla sayıda ziyaretçiniz yokken belki devamlı güncellenen bir site olarak gözükmek hoş olabilir ancak her dakika onlarca ziyaretçinin girdiği bir site de bu hız zaman ve kaynak kaybına sebep olacaktır. Sık aralıklarla sayfaları cachelemek her zaman daha iyi sonuç verir.Bu şekilde sayfanız sadece yenilendiğinde cache i alınır ve sonuç tüm kullanıcılara gösterilir.

Sonuç

Bu serinin başlangıcında nelerin sağlam kod yazmada etkili olduğunu gördük.PHP de büyük uygulamalar yapmak eğer dikkatli çalışırsanız zor değildir. Hatta bir çok uygulama tek bir elden çıkmıştır. Aynı zamanda tuzaklarda yok değildir. Bunlara kolayca düşebileceğinizi unutmamalısınız. Planlama süresince yapılacakları küçük görevlere dağıtıp, bunları yerine getirin—zaten ayıramadığınız(eğer olursa) küçük bir kısımda sizin istediğiniz yola girecektir.

Gelecek yazıda, fonksiyon ve değişkenleri verimli bir şekilde kullanmayı ele alacağız. Ek olarak PHP’ de değişken ve fonksiyonlarla birkaç numara yapacağız. Bu yazıda gelecek uçuşumuzu planladık : - ) Gelecek yazıdan sonra birçok şeyi yerine oturtmuş olacağız.— belki yine havada

O zamana kadar Bon Voyage!

Ağustos 2002

Danışman

Bu makaler IBM developerWorks’ de yayınlanmış olup yazarın izni ile çevrilmiş ve yayınlanmaktadır.

DİKKAT: Çeviri orta üstü düzey İngilizce ile yapılmış olup, yapılmış olan bazı kalıp ya da anlatım bozuklukları için özür dileriz.




Not: Yazılar konusundaki yorumlarınız için lütfen Yorum Yazın bölümümüzü kullanın.

Yazar : Amol Hatwar
Son Güncelleme : 20 Eylül 2006, Çarşamba
Sayfa Sürümü : 4
Okunma Adedi : 6,511
Son Okunma : 2017-11-22 16:07:54
Kaynaklar : http://www.ceviz.net/index.php?case=article&id=82&catid=14

Php ile COM Port KontrolüKaya Sağlamlığında Kodlama
© [Site Haritası]
| Makaleler | Seyir Defteri | Kaynaklar | İndirin | İletişim |

RSS dosyasını görmek için tıklayınız. RSS dosyasını görmek için tıklayınız.XML versiyonu için tıklayınız WAP versiyonu için tıklayınız Bu site DyNA İçerik Yönetim Sistemi üzerinde çalışmaktadır.
İsmail KIRBAŞ ile Tasarım Yolculuğu Anasayfa İsmail KIRBAŞ ile Tasarım Yolculuğu Anasayfa İsmail KIRBAŞ ile Tasarım Yolculuğu Anasayfa
ismail kırbaş ile web sitesi tasarimi sitemap ismail kırbaş ile web sitesi tasarimi sitemap
  Sitemizde 8 kişi çevirimiçi | Bugün =114 | Dün =262 | Bu Ay=5,398 | Günlük En Fazla=1,109 tekil ziyaretçi