Php/Laravel Bazı Sorularım
-
Herkese selam,
Temiz kod yazmakla ilgili birkaç sorum olacak.
Bildiğiniz gibi çoğu işlem controller'da yapılıyor delete, update vb. gel gelelim ben admin paneldeki controllerımdaki aynı kodu user tarafında da kullanmam gerekiyor bu da boşuna kod ısrafı oluyor diye düşünüp bir araştırma yaptım ve repository olayını buldum 2 aydır kullanıyorum çok memnunum.
https://github.com/andersao/l5-repository
Şimdi temiz kod açısından bir class'ta sizce en fazla kaç satır kod olmalı. Bir metod içerisinde en fazla kaç satır kod olmalı?
Edit: Aklıma geldikçe yazıyorum =
Performans açısından nelere dikkat etmeliyiz (laravel'de)
Aydınlatabilirseniz sevinirim?
arkinfes tarafından 15/Ara/20 01:28 tarihinde düzenlenmiştir -
l5 tarihi eser oldu hojam
-
wh0 bunu yazdı
l5 tarihi eser oldu hojam
hocam paket l5 iken yazılmış ben l8'de kullanıyorum sıkıntı yaratmıyor.
-
solid prensipleri (solid principles) ve php psr standartlarına (https://www.php-fig.org/psr/) uyarsan baya temiz ve yeniden kullanılabilir classlar çıkarırsın ortaya. Birde bir işi çözerken tasarım desenlerine (design patterns) uygun kod yazdınmı türkiyede senior developer diye işe alırlar :D
-
ne kadar sallarsan salla dona düşer son damla. öncelikle arkadaşların bahsettiği gibi SOLID Principles önemli. Bunların en basit implementasyonu ve işini kolaylaştıracak kısmı 'S'ingle-responsibility principle. En azından buna dikkat ederek kod yazarasan service/repository/controller/view ayrımını göz önünde bulundurursan kodun temiz olur. Üstüne birde OOP gözeterek kodunu yazarsan tadından yenmez. Design pattern'lar zaten kod yazdıkça kullandığın, kodu geliştirdikçe "hah artık burada işler ters gidiyor, bi hal çaresine bakmam lazım" dediğin noktaya uygulayabileceğin birer şablon. Ayrıca web projelerinde performans konusunda dikkat etmen gerekenler genel olarak: N+1 sorgudan kaçınman, ORM kullanıyorsan oluşturduğu sorguları inceleyip saçma sapan birşey varsa düzeltmek, DB tarafında indexleri doğru attığından emin olman, front-end tarafında resources dosyalarını minify ettiğinden, resimleri compress ve boyutlarını resmi kullandığın yere ayarladığından emin olman gibi şeyler performansın %80'ini oluşturur. Geri kalan %20 için zaten olay özelinde bir durum vardır konu açarsın tartışırız (Örneğin: https://www.tahribat.com/forum/hacimli-tablolarda-offset-performans-sorunu-244959).
-
veriyi manipule eden sınıfları zaten modellerin içinde tutmuyor musun? sonra her taraftan çekersin bu sınıfı
eğer admin ve user tarafında aynı kodları kullanıyosan admin-user diye ayırma zaten, tek sınıfın olsun, onun içinde kullanıcının yetkisine göre işi yap
-
Repository pattern ve action kullanımı kod tekrarının önüne geçecektir.
Performans olarak genelde hatalı sorgular (n+1 vs vs) performansı olumsuz etkiliyor. Debugbar ile sorgularınızı kontrol edebilirsiniz. Cache kullanımı da bence önemli.
-
coder2 bunu yazdı
Repository pattern ve action kullanımı kod tekrarının önüne geçecektir.
Performans olarak genelde hatalı sorgular (n+1 vs vs) performansı olumsuz etkiliyor. Debugbar ile sorgularınızı kontrol edebilirsiniz. Cache kullanımı da bence önemli.
Gerçekten debugbar bu konuda süper faydalı oluyor. Keşke zamanında .net de java da yazarkende böyle birşey olsaydı dedim (profiler bağlanıp bakıyorduk amele gibi). Ayrıca cache kullanacaksan invalidation stratejine dikkat etmende fayda var.