Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Hızlı ve Kolay PHP Geliştirmek İçin İdeal Ortam...

Hızlı ve Kolay PHP Geliştirmek İçin İdeal Ortam ve Araçlar

PHP Günleri 2013 #1
25 Mayıs 2013
Nişantaşı Üniversitesi, İstanbul

Avatar for Berke Ediz Demiralp

Berke Ediz Demiralp

May 25, 2013

Other Decks in Programming

Transcript

  1. “Hızlı ve Kolay PHP Geliştirmek İçin İdeal Ortam ve Araçlar”

    Berke Ediz Demiralp Yazılım Yöneticisi, Mynet A.Ş. http://tr.linkedin.com/in/bedemiralp/ http://twitter.com/bedemiralp https://github.com/bedemiralp 25 Mayıs 13 Cumartesi
  2. 2000 PHP4 yayınlandı. Zend Engine 1 Object oriented programming native

    olarak session desteği PCRE mcrypt 25 Mayıs 13 Cumartesi
  3. 2013 32 Milyon web sitesinde Wordpress, Joomla, Drupal, osCommerce, Zencart

    ve Magento kullanılıyor. Kaynak: Netcraft http://news.netcraft.com/archives/2013/01/31/php-just-grows-grows.html 25 Mayıs 13 Cumartesi
  4. 2013 244 Milyon web sitesi (%39) PHP kullanıyor. Kaynak: Netcraft

    http://news.netcraft.com/archives/2013/01/31/php-just-grows-grows.html 25 Mayıs 13 Cumartesi
  5. PHP SİTELERİN %86’SI LINUX VE FREEBSD ÜZERİNDE ÇALIŞIYOR Kaynak: Netcraft

    http://news.netcraft.com/archives/2013/01/31/php-just-grows-grows.html 25 Mayıs 13 Cumartesi
  6. "85 PERCENT OF PHP DEVELOPERS ARE CURRENTLY DEVELOPING ON WINDOWS

    ..." JOE STAGNER - MICROSOFT Kaynak: Internet News http://www.internetnews.com/dev-news/article.php/3632136 25 Mayıs 13 Cumartesi
  7. "85 PERCENT OF PHP DEVELOPERS ARE CURRENTLY DEVELOPING ON WINDOWS

    ..." JOE STAGNER - MICROSOFT Kaynak: Internet News http://www.internetnews.com/dev-news/article.php/3632136 25 Mayıs 13 Cumartesi
  8. • Sürekli yolumuza çıkan değil, işimizi kolaylaştıran araç, yöntem ve

    süreçler kullanarak • Tekrarlanan işlemleri otomatize ederek • Kaliteli kod yazarak • Yeniden kullanılabilir kodlar yazarak • Open Source projelerden yararlanarak • Test ederek • Dökümante ederek 25 Mayıs 13 Cumartesi
  9. YAZILIM GELİŞTİRME AŞAMALARI • initiation • analysis, planning • requirements,

    specifications • design • development • testing • documenting • deployment • maintenance 25 Mayıs 13 Cumartesi
  10. YAZILIM GELİŞTİRME AŞAMALARI • initiation • analysis, planning • requirements,

    specifications • design • development • testing • documenting • deployment • maintenance 25 Mayıs 13 Cumartesi
  11. YAZILIM GELİŞTİRME AŞAMALARI • initiation • analysis, planning • requirements,

    specifications • design • development • testing • documenting • deployment • maintenance 25 Mayıs 13 Cumartesi
  12. EN YAYGIN GELİŞTİRME ORTAMI • İşletim sistemi • Web Server

    + PHP • Database • Web Browser • Text Editor / IDE 25 Mayıs 13 Cumartesi
  13. İDEAL GELİŞTİRME ORTAMI • İşletim sistemi • Web Server +

    PHP • Database • Web Browser • Text Editor / IDE 25 Mayıs 13 Cumartesi
  14. LINUX NEDEN İDEAL? • PHP, Open Source bir yazılımdır •

    Open Source yazılımlar öncelikle Open Source işletim sistemleri üzerinde çalışmak üzere geliştirilir • Open Source yazılımlar genellikle diğer Open Source yazılımlara ihtiyaç duyar 25 Mayıs 13 Cumartesi
  15. LINUX NEDEN İDEAL? • İhtiyaç duyduğunuz yazılım Windows’a port edilmemiş

    olabilir • Windows port’u, geliştirici topluluk tarafından yeterince desteklenmiyor olabilir • Windows’ta kurulumu ve kullanımı çok daha zahmetli olabilir • İlgili yazılım, Windows’ta tüm özelliklerini sunamayabilir 25 Mayıs 13 Cumartesi
  16. LINUX NEDEN İDEAL? • Yazdığınız kod Windows ortamında bazı durumlarda

    daha farklı davranabilir • Yazdığınız kod %86 Linux / FreeBSD üzerinde çalışacak • Geliştirme ortamı ile yayın ortamı birbirine eşdeğer olmalıdır 25 Mayıs 13 Cumartesi
  17. YAZILIM GELİŞTİRME AŞAMALARI • initiation • analysis, planning • requirements,

    specifications • design • development • testing • documenting • deployment • maintenance 25 Mayıs 13 Cumartesi
  18. HATA AYIKLAMA (DEBUGGING) • Nasıl hata ayıklıyoruz? • echo $text;

    exit; • var_dump($text); exit; 25 Mayıs 13 Cumartesi
  19. HATA AYIKLAMA (DEBUGGING) • Nasıl hata ayıklıyoruz? • echo $text;

    exit; • var_dump($text); exit; • xdebug? 25 Mayıs 13 Cumartesi
  20. HATA AYIKLAMA (DEBUGGING) • Nasıl hata ayıklıyoruz? • echo $text;

    exit; • var_dump($text); exit; • xdebug? 25 Mayıs 13 Cumartesi
  21. HATA AYIKLAMA (DEBUGGING) • PHP için extension • Eclipse, Netbeans,

    PhpStorm, Zend Studio’da remote debugging 25 Mayıs 13 Cumartesi
  22. HATA AYIKLAMA (DEBUGGING) • PHP için extension • Eclipse, Netbeans,

    PhpStorm, Zend Studio’da remote debugging • Code Coverage Analizi 25 Mayıs 13 Cumartesi
  23. HATA AYIKLAMA (DEBUGGING) • PHP için extension • Eclipse, Netbeans,

    PhpStorm, Zend Studio’da remote debugging • Code Coverage Analizi • Profiling 25 Mayıs 13 Cumartesi
  24. PACKAGE MANAGEMENT • composer projenizin bağımlı olduğu yazılım paketlerini yönetir

    • composer.json • composer install • packagist.org • Paketleri kendi kodunuzdan ayrı tutabilirsiniz • Paketlerin yeni versionları çıktıkca güncellemek çok kolaydır (composer update) 25 Mayıs 13 Cumartesi
  25. PPW (PHP PROJECT WIZARD) • Ant Build Script oluşturmak için

    araç • PHPUnit • Clover Coverage Report • PHPLoC • PHP Copy Paste Detector • PHP Mess Detector desteği var https://github.com/sebastianbergmann/php-project-wizard 25 Mayıs 13 Cumartesi
  26. YAZILIM GELİŞTİRME AŞAMALARI • initiation • analysis, planning • requirements,

    specifications • design • development • testing • documenting • deployment • maintenance 25 Mayıs 13 Cumartesi
  27. TEST ETMEYI İHMAL ETMEK • “Ben kodu yazarken zaten test

    ediyorum!” • “Hata varsa birileri farkeder, düzeltiriz.” • “Projeyi zaten zor yetiştiriyoruz, test edecek vaktimiz hiç yok.” • “Bunun neresini test edelim? Alt tarafı 30-40 satır kod..” • “Binlerce satır kodu test etmek mümkün değil.” 25 Mayıs 13 Cumartesi
  28. SORUN ÇIKTIĞINDA İNKAR ETMEK • “Benim bilgisayarımda düzgün çalışıyordu, server’da

    sorun vardır!” • “Kodun o kısmına dokunmadım, ben bozmuş olamam! Kesin başka birşey var!” • “Ben nereden bileyim bu methodun başka yerde de kullanıldığını?!” • “Ben bu projeyi böyle devraldım, önceki yazılımcının kabahati!” 25 Mayıs 13 Cumartesi
  29. NEDEN TEST EDELİM? • Kendimizin ve diğer yazılımcıların yazdığı kodlara

    güvenebilmek için • Yazdığımız kodun geliştirme, test ve yayın ortamında aynı davranışı sergilediğinden emin olmak için 25 Mayıs 13 Cumartesi
  30. NEDEN TEST EDELİM? • Refactoring veya bug- fix yaparken, başka

    bir bug’a sebebiyet vermemek için • Hataları erken farketmek ve gidermek için • Karmaşık kod yapılarından kurtulabilmek için • Kodu dökümante etmek için 25 Mayıs 13 Cumartesi
  31. YAZILIM GELİŞTİRME AŞAMALARI • initiation • analysis, planning • requirements,

    specifications • design • development • testing • documenting • deployment • maintenance 25 Mayıs 13 Cumartesi
  32. YAZILIM GELİŞTİRME AŞAMALARI • initiation • analysis, planning • requirements,

    specifications • design • development • testing • documenting • deployment • maintenance 25 Mayıs 13 Cumartesi
  33. DÖKÜMANTASYON NEDEN GEREKLİ? • Takım arkadaşlarınızın, • Sizden sonraki yazılımcının,

    • Kendinizin, Değerli vaktini boşa harcamamak için 25 Mayıs 13 Cumartesi
  34. YAZILIM GELİŞTİRME AŞAMALARI • initiation • analysis, planning • requirements,

    specifications • design • development • testing • documenting • deployment • maintenance 25 Mayıs 13 Cumartesi
  35. BUILD TOOL İLE NELER YAPABİLİRİM? • Exec • Chmod /

    chown • Copy / move / delete • Mkdir / rmdir / symlink • Composer task • Zip, Unzip, Untar • SVN Checkout, Commit, Update • Git Pull, Push, Fetch, Merge • PHPLoC, PHPCPD, PHPMD, • PHPDocumentor, Apigen 25 Mayıs 13 Cumartesi