Merhaba hocalarım. Kafayı taktım bir türlü bu sorudan kendimi alamıyorum. Geçenlerde temamda 10.000 den fazla gereksiz kodu temizledim ama daha iyisi için bir öneriniz var mıdır?
Mesela "print" yerine "echo" kullanmak, sürekli kod yazmak yerinr değişken oluşturmak. Sürekli değişke yerine fonksiyon yazmak gibi.
Not: Sadece Html, CSS, PHP ve JavaScript (kütüphaneleri dahil) dilleri için öneri verirseniz sevinirim :)
2.Not: Optimizeden kastım sunucu yükünü hafifletmek ve site hızını arttırmak. Nolur tarayıcı önbellekleme felan demeyin ben kodları optimize etmekten bahsediyorum. :)
define belirlemek ben şuanki yaptığım andesite adlı kredi 2 bakiye yazılımında define ile değerini belirleyip yazdırdım. Çalışma Mantığı şu şekilde: Kullanıcı Siteye Girer Sorgu ve Kontroller Modülde Kontrol edilir indexe aktarılır. İşlemler tek dosyada toplanır (form kayıt, giriş, kredi alma vs) sonuç aktarılır ve sadece 1 post'a izin verilir.
Evet hocam temalarda en büyük problem gereksiz veya kullanilmayan şişirilmiş kod yığınları. Gereksiz yük bindiriyor. Bende baya araştırmıştım da öneriler hep kendini tekrarlıyor. Şuan sorgu sayısını azaltmaya uğraşıyorum ben de. Sürekli veritabanına girdi çıktı yapan sorgular var bunlara odaklanmaniz gerekiyor. Sorgu sayısı azaldıkça sunucu yükü azalacak ve hızlanma sağlanacaktır
Saniye de 4 Milyar kere titreyen işlemcilerden bahsediyoruz. Yük nasıl biner biliyor musunuz, 100.000 satır içinden saniye başına SQL sorgusu döndürmek gibi. Ki o bile gıdıklar.
Kodları daha derli toplu yazman güzel bir şey fakat sunucuya yük bindirmez.
Özetle print yerine echo yazman sunucuyu daha az yorar diye bir şey yok.
ASametYildirim Aslında işin içinde PHP ve MySQL olduğu zamanlarda en fazla dikkat etmeniz gereken kısım döngülere çok fazla girmemeye çalışmaktır. Yani kompleksiteyi olabildiğince düşük tutmanız gerekmektedir.
arasında fark vardır. En azından 2000-3000 dosyalık projeleri düşündüğünüzde (resmin tamamına baktığınızda hele ki kullanıcı sayınızın yüksek olduğunu düşündüğümüz zamanlarda) farkın hissedilir olduğunu anlayacaksınız.
Gereksiz değişken oluşturmak memory'i fazla kullanmanıza neden olacaktır, kaçınmakta fayda var.
Eğer bir şey statik olarak yazılabiliyorsa, o şekilde yazmayı tercih etmelisiniz. Örnek vermek gerekirse ASP.NET'deki HTML helperlar. PHP fonksiyonlarla kendi helperınızı yazabilirsiniz. Bir geliştirici her seferinde buton oluşturmak için;
yazmak yerine PHP ile bir fonksiyon oluşturup
function button($name,$text) { return ''; }
button eklemek istediği yerde şu kodu çağırıyor
echo button("buttonAdi","Tıkla");
Evet kod yazımını hızlandıran bir hareket ama butonu statik olarak eklemek varken fonksiyon üzerinden okutup bastırmak kaynak kullanımına neden olacaktır.
Başka önemli bir nokta döngüyle veritabanına veri eklemek yerine, bu kısmı sql sorgusuyla halletmeye bakın. Hemen durumu örnek bir senaryo üzerinde açıklayayım. Bir algoritmanız var, her gün üyeler tablosundan 1000 kişiyi başka bir tabloya aktarmanız gerekiyor. Genelde akla ilk gelen senaryo, PHP ile söz konusu 1000 üyeyi çekmek ve döngü ile hedef tabloya INSERT işlemi uygulatmaktır. Sağlıklı bir yöntem değildir. 1000 kişiyi teker teker veritabanına yazmak can sıkabilir, timeoutlara neden olabilir. Bunun yerine SQL sorgusu ile tek bir hamleyle insert yapabilirsiniz.
INSERT INTO yeniTablo (column1, column2, column3, ...) SELECT column1, column2, column3, ... FROM eskiTablo WHERE uye_id < 1001;
Öyle echo ile print ile antin kuntin işlerle optimizasyon olmaz.
Modern web sitelerinin sürat problemi genelde sayfayı oluşturmaktan çok javascript yüklemesinden kaynaklanıyor.
Yani sayfayı jquery, botstrap vs olmadan yükletin test edin bakalım ne kadar hızlı yükleniyor.
Günümüzde yavaşlık daha çok, facebook google ads jquery vs gibi eklentilerden kaynaklanıyor.
Her sayfada sosyal paylaşım düğmeleri vs var. Ancak site sahipleri bunların ne kadar işe yaradığını ölçmüyor, herkeste var bizde de olsun. olsunda load a ne kadar yük getirdiğnide ölç birader.
En son bir word press sitesine baktım yavaşmış. PHP siteyi 1 sn civarında üretiyor. Ancak sayfa yüklemesi 17 sn, bunun 9 sn si bilimum sosyal javascrit kalanıda ön sayfada hayvan gibi 50 tane ayrı resim var onlar.
Yani php ile genel kurallara uyup orta şeker bir web sitesi yaptınız, iyi güzel makinanız var. Efendim basit bir iki kurala uydunuz. Mantıksız sql queryleriniz yok. Sistem nginx ve php-fpm ile çalışıyor. Eğer makina yetersiz geliyorsa bundan sonra gideceğiniz memcache ile bir kısım veriyi sql den cacheye çekip oradan kullanmak.
Bu aşağı yukarı limittir, bundan sonra siteyi Google GO dili ile yazmak kalıyor ve bu extrem bir örnek. Yani bu kadar yükünüz varsa o na göre de geliriniz olmalıdır.