Geliştirilemeyen PHP Kodu Nasıl Yazılır?

Her şeyden Önce

Her şey bir iş ilanınıyla başlar. Kanatlarınızı açın ve geliştiremez potansiyelinizi başaracacağınız doğru firmalara göz atın. Firmada PHP ustası olmanız gerekli değildir, fakat kesinlikle yardımı olur. Başka bir şeyden PHP’ye geçmekten söz eden iş ilanlarına bakın. Veya örneğin 10 yıl PHP5 deneyimi gibi yanlış iş ilanları araştırabilirsiniz. Ek olarak Frontpage’de akıcı olmak.

Altın fırsat düştüğünde sesinizi dururun. Toplantılarda konuşun, fikirlerinizi yayın. Object-oriented tasarım mimarileri, girişim, “yeteri kadar iyinin” iyi olmadığı ve tabiki mükemmel taahhütlerinizi. Herkesin fikirlerinizi dikkate aldığından emin olun.

Geliştirilemezliğin Desteklenmesi

Anlamanız ve ustalaşmanız gereken Geliştirilemeyen kod yazmak makalesinden esinlenilen en önemli iki kavram.

  1. Birisisin bir şeyleri bozmadan kolayca değişiklik yapmasını imkansız yapmalısınız. Kodun yakımını yapan kişinin kodunuzu anlamak için yeteri kadar zamanı olmadığını kollayın. Geliştirilebilir kod demek kod yığınının bir kısmının kolayca belirlenip, bir şeyleri bozmadan değiştirilebilmesinin anlaşılmasıdır.
  2. Kodunuz geliştirilemez gibi gözükmemeli (çünkü birileri bir şeylerden süphenecek). Kod geliştirimecilere normal gözükmeli.

En İyi Yöntemler

  1. Kodlama toplantıları engelleyin: Harika projeleriniz var, boşluk mu yoksa tab mı tartışmalarına harcayacak sınırsız saatlere ayıracak zamana sahip değilsiniz. Ayrıca toplantılar kısıtlayıcısır. Mutsuz yazılımcılar verimsiz yazılımcılardır. Herkes kendine uygun tarzda yazsınlar. Kodunuzda olduğu gibi alışkanlıklarınızıda sürekli değiştirin. Pazartesi camelCase salı snake_case, cumaları her ikisini, ve her 29 Şubatta da Macar tarzı yazın.
  2. Yorum yazmayın: Kodunuz harika, yoruma ihtiyacı yorumlara ihtiyacı yok. Birisi anlayamıyorsa, çok iyi programcı olmadıklarındandır. Eğer biri sizi yorum yazmaya zorlarsa, sadece aşırıya kaçarak yapın. Ayrıntılı en önemsiz kodları bile açıklayın.
  3. Notepad üzerinde çalışın: veya kaynak kodunuzu reklendirmeyen diğer editörler. Başkaları  acı çeksin ve sonunda takımdan ayrılsın. Her zaman onların sızlanlamaları dinlemenize ihtiyacınız yok. Birisi neden Notepad diye sorduğunda, açıklamak için hazır olun: “O Windows’la geliyor (bugünlerde iyi yazılımcılar için tek OS), eğitime ihtiyaç yok, hiç bir maliyeti yok.” Eminim ki web sayfaları için kod yazmakla ilgili webde herhangi programı nasıl kullanacağınızla ilgili, Word dahil bilgiler bulabilirsniz, fakat Notepad işin uzmanları içindir. Ve firmanız kimseyi işe almaz, fakat işin uzmanları hariç.
  4. Unit testing yok. Herkese bug olmadan yüksek halitede kod yazmak için işe alındığınızı anlatın. Neden biri zaten çalışan kodları doğrulamak için gereksiz testler yazar ki? Hayattaki bazı şeyler, gökyüzü mavidir, güneş doğudan batar ve kodlarınız çalışır, size çok teşekkürler. Devam edin.
  5. Şablon motoru kullanmayın (templating engine). Şablon motorlar gösterimden iş mantığını birbirinden ayarmaya yardım eder. Kodunucu geliştirilebilir yapar, buna izin veremezsiniz. Rasmus Lerdorf (PHP yaratıcısı)’dan alıntı: “PHP bir şablon motorudur.” Biri sizi bir şablon motorunu kullanmaya zorlarsa da onun yanluş kullanımının bir yolunu bulun ve iş mantığının bir kısmını şablona koyun, veritabanı erişim katlamanı içine HTML (ve CSS ve javascript) karışımı hazırlanmış bir şey de tabi.

    Genelde, PHP, HTML, CSS ve Javascirpt’in aynı satırda karmaşık kullanımı sağlıklı bir şekinde karşışımı içib gayret edin. HTML üreten Javascript’i PHP’de üretin. Biri sorarsa onu “encapsulation” deseni olarak isimlendirin.

  6. Versiyon kontrolü. Bunu yoksaymakta biraz zorlanacaksınız, fakat versiyon kontrolün şekli ve herhangi bir formu dışında kendinizle konuşmayı denemeye değer. Kimseyi ikna edemediğinizde umutsuzluğa kapılmayın. Tüm kaynak kodlarını göndermek zorunda değilsiniz. Bazılarını kendinize saklayın. Bunlar sizden başkasının kodu kendinde çalıştırması ve yayına almasını engelleyecek ölümcül kısımları olsun.
  7. Bir framework yapın.

İsimlendirmeler

Değişken isimleriniz gizemli olmalı, çoğunlukla da tek harfli. Hedef herhangi birisiniz kolayca arama yaparak bir şeyleri bulmasını imkansız hale getirmek olmalı.

Sınıf ve fonksiyon isimleri de bir karakter olabilir. Şans eseri normal isimlendirmeler kullanmaya karar verirseniz her zaman şunu yapın, bilgileri gizlemenin en iyi yolunun ondan çok fazla olması gerektiğini hatırlayın.

 

Laravel 5: Eloquent ORM – Başlarken

Giriş

Laravel’e dahil olan Eloquent ORM, veritabanızla çalışmanızı sağlayan kullanışlı ve basit ActiveRecord uygulamasıdır. Her veritabanı tablosuna karşılık gelen “Model”, tabloyla etkileşim için kullanılır. Modeller tablolarınızda veriler için sorgular yapmanızı, yeni kayıtlar gitmenizi sağlar. Başlamadan önce veritabanı bağlantınızı config/database.php dosyasında yapılandırın.

Modelleri Tanımlama

Başlamak için bir Eloquent model oluşturalım. Modeller tipik olarak app klasörü içindedirler, fakat composer.json dosyanızda belirttiğiniz otomatik yüklemelere bağğlı olarak herhangi bir yerde olabilir. Tüm Eloquent modelleri Illuminate\Database\Eloquent\Model sınıfından genişletilir.

Okumaya devam et Laravel 5: Eloquent ORM – Başlarken

Laravel 5: Koleksiyonlar (Collections)

Giriş

Illuminate\Support\Collection sınıfı diziler çalışırken oldukça kullanışlıdır. Aşağıdaki koda bir göz atın. Diziden yeni bir koleksiyon oluşturmak için collect yardımcısını kullanıp, her element için strtoupper fonksiyonunu çalıştıracak ve boş elementleri kaldıracağız.

Gördüğünüz gibi Collection sınıfı, metdolarını arka arkaya çalıştırmanızı sağlar. Genelde her Collection metodu tümüyle yeni bir Collection örneği döner.

Okumaya devam et Laravel 5: Koleksiyonlar (Collections)

Laravel 5: Yetkilendirme (Authorization)

Giriş

Dahili kimlik doğrulama (authentication) servisine ek olarak Laravel, kaynaklara erişim ve yetkilendirme mantığı için kolay bir yol sağlar. Yetkilendirmelerinizin organizasyonunda size yardımcı olacak ve herbirini bu dökümanda açıklayacağımız çeşitli metodlar ve yardımcılar vardır.

Okumaya devam et Laravel 5: Yetkilendirme (Authorization)

Laravel 5: Önbellek (Cache)

Yapılandırma

laravel çeşitli önbellek (cache) sistemleri için birleşik bir API sunar. Önbellek yapılandırması config/cache.php dosyasındadır. Bu dosyada uygulamanız botunca varsayılan olarak kullanmak istediğiniz önbellek sürücüsünü tanımlayabilirsiniz. Laravel popüler önbellekleme sistemlerinde Memcache ve Redis destekler.

Önbellek yapılandırma dosyası dosyanın içinde açıklanan başka ayarlar da içerir. Laravel varsayılan olarak dosya sisteminde önbelleklenmiş olarak saklanan file önbellek sürücüsünü kullanmak için yapılandırılmıştır. Büyük uygulamarlar için Memcached, APC gibi sistem belleğinde saklananlar önerilir.

Okumaya devam et Laravel 5: Önbellek (Cache)