TDD: Birim (Unit) Testlere Giriş

Başlarken

Önceki yazılarımda Test Driven Development hakkında bir giriş yapmıştık. Tabiki gerçek hayatta $this->assertTrue(true) yapmıyoruz 🙂 Şimdiki yazımda ise gerçek hayatta birim testler nasıl uygulanıyor onlar hakkında konuşacağım. Daha önceki yazılarıma ulaşmak isterseniz:

Test Driven Development (TDD) Nedir?

PHPUnit Nasıl Kullanılır

Test Edilebilir Kod Üretmek

Continue reading

TDD: Test Edilebilir Kod Üretmek

Daha önceki 2 yazımda TDD hakkında konuştuk ve PHPUnit aracını nasıl kullanacağımıza dair basit bir giriş yapmıştık. Aşağıdaki linklerden ulaşabilirsiniz.

Test Driven Development (TDD) Nedir?

PHP ve TDD: PHPUnit Nasıl Kullanılır?

Giriş

Test yapabilmenin en güzel özelliği, test edilebilir kod oluşturduğunuzda kodunuzun kendiliğinden onarılması ve genişletilmesi kolay bir koda dönüşmesi. Kısacası test yapabilmeniz için kalite bir kod üretmeniz gerekiyor. Kaliteli kod üretmek bir kaç prensip bunları uyguladığınızda kodunuz test edilebilir olacaktır.

Continue reading

PHP ve TDD: PHPUnit Nasıl Kullanılır?

Bir önceki yazımda TDD konusunda teorik olarak konuşmuştum. Şimdi ise PHP ile nasıl uygulayacağımıza bir göz atıyoruz.

PHPUnit

PHPUnit şu anda php’de unit testing yapmak için bir standart olarak kabul edilebilir. PHPUnit, testleri yazabilmeniz için bir framework sağlamakla beraber bu testleri çalıştırabileceğiniz bir araç sunmaktadır.

Continue reading

Test Driven Development (TDD) Nedir?

Son zamanlarda iyice popülerliği artan test driven development (test tabanlı geliştirme) konusunda birkaç yazı yazmak istedim. Öncelikle test driven development’ın ne olduğu ile başlamak istiyorum.

Nedir?

TDD geliştirilen veya geliştirilecek yazılımın otomatikleştirilmiş testlerinin yapılarak uygulanan bir yazılım geliştirme şeklidir. Otomatikleştirilmiş testler bir kez hazırlanır ve istenildiği zaman tekrar tekrar çalıştırılabilir. Bu şekilde kodun bir parçası değiştiğinde diğer parçaların ondan etkilenip etkinlemediğinden her seferinde emin olabiliyoruz. Otomatikleştirilmiş testlerin en basiti mouse ve klavye hareketlerini kaydederek tekrar tekrar yazılım üzerinde uygulamaktır. Mouse ve klavye hareketlerini bir kez kaydederek her seferinde tüm parçaları tek tek elle test etmek zorunda kalmıyoruz. Tabiki bu mouse, klavye hareketlerini kaydetmek çok antik bir yöntem. Elbette biz bunu yapmayacağız. Ancak otomatikleştirilmiş testlere en basit örnek budur demek istedim.

Continue reading

Responsive Design – 1

Giriş

Günümüzde mobil cihazların kullanımı inanılmaz arttı ve buna rağmen bir çok site hala telefonlarda görüntelemek için uygun değil. Aslında her siteyi akıllı telefonlarımızda görüntüleyebiliyoruz ancak siteyi açtığımızda küçücük bir görüntü ile karşılaşıp, daha sonra siteyi büyütüp, daha sonra yazıları okumak için bir sağa bir sola kaydırıyoruz. Bu kullanıcı deneyimi için iğrenç bir durum. Bu yüzden HTML5’in en önemli özelliği olan Responsive Design’ı sitelerimizde uygulamamız şart oluyor.

Continue reading

Güvenlik: Şifre ve Hash üretmek (Şifre gizleme)

Hashlemek, bir metnin bir daha geri döndürülemeyecek bir şekilde şifrelenmesidir şeklinde kısaca anlatabiliriz.

Neden?

Dünyadaki bir çok sistem kullanıcı adı, şifre girişine sahip. Bunlar genel olarak veritabanında saklanır. Eğerki olurda, istenmedik bir kişi veritabanına erişirse, ne olacak ? Bu yüzden kullanıcıların şifrelerini bir daha geri döndürülemeyecek şekilde şifreliyoruz ve o şekilde saklıyoruz. Bu şekilde istenmeyen kişi SQL Injection veya benzeri bir yöntem ile veritabanına eriştiği zaman kimsenin şifresini ele geçirememiş olacak.

Continue reading

Otomatik Yüklenen Sınıflar (Auto-loading classes)

Otomatik yüklenen sınıflar tek bir yerden kullanılacak sınıfları yüklemeye olanak sağlar. Otomatik yüklenen sınıflarda, kullanılmayan sınıfların dosyaları yüklenmezler (include edilmez), bu yüzden etkili bir yoldur. Ancak her bir sınıfı tek tek yüklemek performans açısından daha etkilidir ama bir süre sonra kod karma karışık bir hale dönünce keşke dememek lazım. Continue reading

Kodlama Stilleri (PSR-0)

PHP Topluluğu inanılmaz büyük ve sayısız framework ve kütüphaneye sahip. Herkes kendi projelerine bu kütüphaneleri dahil etmek ister. Kodlama stilleri ile amaçlanan bu kütüphaneleri sıkıntısız bir şekilde projelerimize dahil etmek (elinden geldiğince). Framework Interop Group bazı kodlama stilleri önermişlerdir. Bunlar: PSR-0PSR-1 ve PSR-2 Bu standartlar farklı geliştiriciler tarafından sizin kodlarınızı kolay bir şekilde düzenlemesine olanak sağlamaktır. Bu yazımda ise PSR-0’dan bahsedeceğim. Continue reading