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

Geleceğin Gelistiricileri Icin PHP Programlama ...

Osman
April 10, 2014

Geleceğin Gelistiricileri Icin PHP Programlama Dili ve Öneriler

Doğuş Üniversitesi, DISECLUB, 3. Bilişim Kongresi

Osman

April 10, 2014
Tweet

More Decks by Osman

Other Decks in Programming

Transcript

  1. GELECEĞİN GELİŞTİRİCİLERİ İÇİN PHP PROGRAMLAMA DİLİ VE ÖNERİLER MUSTAFA İLERİ

    VE OSMAN ÜNGÜR Nİsan 2014 DISECLUB 3. BİLİŞİM KONGRESİ
  2. php nedİr? PHP sunucu taraflı, web uygulamaları için dizayn edilmiş

    ve genel amaçlarla için de kullanılan bir programlama dilidir. PHP kodu bir web sunucusu tarafından PHP yorumlayıcı modül vasıtasıyla bir web sayfası oluşturur. Komut satırı arayüzü üzerinden çalıştırılabilir.
  3. php nedİr? PHP kodları direkt şekilde HTML kodları içerisine gömülebilir.

    "PHP Lisansı" ile lisanslandırılmış özgür bir yazılımdır. PHP neredeyse tüm platformlar ve işletim sistemlerinde çalıştırılabilir, ücretsizdir.
  4. Php' NİN TARİHÇESİ İlk 1995 yılında PHP/FI adıyla Rasmus Lerdorf

    tarafından yayınlanmıştır. Bu ilk sürüm bugün ki PHP sürümlerinin temelini oluşturur. 1997'de PHP/FI 2 sürümü yayınlanmıştır.
  5. Php' NİN TARİHÇESİ Aynı yıl Zeev Suraski ve Andi Gutmans

    PHP'nin yorumlayıcısını yeniden yazarak PHP 3'ün temelini atmışlardır. 1999 yılında Suraski ve Gutmans PHP'nin çekirdeğini yeniden yazmışlar ve Zend Engine'i ortaya çıkarmışlardır. 2000 yılında Zend Engine'i temel alan PHP 4 sürümü yayınlanmıştır. 2008 yılına dek bu sürüm güncellenmeye devam etmiştir.
  6. Php' NİN TARİHÇESİ 2004 yılında Zend Engine 2'yi temel alan

    PHP 5 yayınlanmıştır. Bu sürüm Nesnel yönelimli programlama ve PDO gibi özelliklerle gelmiştir. 2009 yılında geliştirilmeye başlanan PHP 6 2010 yılında sonlandırılmıştır. Şu an da PHP 5.4 ve PHP 5.5 sürümü aktif olarak geliştirilmeye devam etmektedir.
  7. PHP KullaNIM İSTATİSTİKLERİ PHP: 81.9 ASP.NET: 17.8 JAVA: 2.7 ColdFusion:

    0.8 Perl: 0.6 Ruby: 0.5 Python: 0.2 Javascript: 0.1 Kaynak: http://w3techs.com/technologies/overview/programming_language/all
  8. WORDPRESS WordPress, GPL lisanslı, PHP ve MySQL kullanılarak yazılmış bir

    kişisel yayın sistemidir. Wordpress bir CMS (Content Management System / İçerik Yönetim Sistemi)'dir. Bu niteliği ile sadece makale yazma ve düzenleme veya blog sistemi olarak değil, her türlü içeriğin düzenlenip yayımlanabileceği bir platform olduğu anlamına gelmektedir Google tarafından çok hızlı indexlenir ve sayfa açılışları hızlıdır. WordPress'in kökleri ve gelişimi 2001'e kadar uzanır.
  9. JOOMLA Joomla!, PHP ve MySQL ile MVC olarak geliştrilimiş açık

    kaynaklı bir içerik yönetim sistemidir. Kaliteli arayüzü ve gelişmiş içerik yönetim mantığı ile dünyada çokça tercih edilir. Türkçe desteği sağlıklı olmakla beraber tamamıyla yapılandırılabilir ve çok esnek bir sistem olduğundan birçok ağ sayfası tasarımcısı bu sistemi kullanmaktadır. İlk sürümü (Joomla! 1.0.0) 17 Ekim 2005 tarihinde yayımlanmıştır. Bu sürüm Mambo 4.5.2.3 sürümünün çeşitli iyileştirmelerle tekrar yayımlanmış olan sürümüdür.
  10. DRUPAL Drupal ücretsiz ve açık kaynaklı bir içerik yönetim sistemidir.

    Modüler yapısı sayesinde, web uygulama çatısı, topluluk portalı, forum ya da blog motoru olarak da kullanılabilmektedir. 2000'li yılların ortalarında Drupal esneklik, genişleyebilirlik, yönetim kolaylığı ve etkin bir topluluğun desteği ile popülerlik kazanmıştır. Drupal PHP programlama dili ile yazılmıştır. Bununla birlikte Drupal tabanlı bir web sitesinin kurulumu, geliştirilmesi ve bakım genellikle PHP programlama becerisi gerektirmemektedir.
  11. MAGENTO 2008 yılında ilk sürümü yayınlanmıştır. W3Techs'e göre dünya üzerindeki

    websitelerinin %1'i tarafından kullanılmaktadır. 200.000 E-Ticaret websitesi bu platform ile çalışmaktadır. Diğer Örnekler Opencart OS Commerce Prestashop
  12. POPÜLER PHP UYGULAMA Çatıları Geliştime Çatısı (Framework): Tutarlı ve disiplinli

    yazılım gelişrimek için kullanılan kütüphaneler ve kurallar bütünüdür. En çok bilinen ve kullanılan PHP Uygulama Çatıları:
  13. DÜnya Genelİnde PHP Topluluklari ve Semİnerlerİ Sadece Zend' e kayıtlı

    87 yerel php topluluğu bulunmaktadır. Bu topluluklar etkinlikler atölye çalışmaları ve tanışma toplantıları düzenlerler. Türkiye' deki atkif toplulukları PHP-İST, PHP-TR ve PHPKonf. Dünya Genelinde Etkinlikler: SymfonyLive ZendCon PHP UK
  14. Özgür Yazılımın Gücü Özgür bir lisansa sahip olan PHP'yi kullanmak

    için tek kuruş lisans ücreti ödemenize gerek yoktur. PHP ile yazdığınız web sitenizi çalıştırmak için yine ücretsiz olarak dağıtılan bir Linux dağıtımı kullanabilirsiniz. PHP ile beraber kullanabileceğiniz bir çok ücretsiz açık kaynak veritabanı sistemi mevcuttur.
  15. Özgür Yazılımın Gücü Dünyada yüzbinlerce kurum ve insan özgür lisanslarla

    yayınlanan PHP uygulamalarını kullanıyor. Açık kaynak kod, uygulama kodunun tümüne erişebilmeniz anlamına geliyor. Dilerseniz açık kaynak uygulamaların kaynak kodunu kendinize göre özelleştirebilir, değiştirebilir ve bu şekilde kullanabilirsiniz.
  16. Sosyal kodlama ağları Dünya üzerindeki geliştiricilerin açık kaynak olarak geliştirdiği

    projeleri herkese açık hale getirmesi ve projelerin gelişmesine destek oldukları platformlardır. Geliştiricilerin facebook'u şeklinde tanımlayabiliriz.
  17. PHP' NİN Güçlü Yönlerİ Kolay kurulum Düşük öğrenme eğrisi Geniş

    dökümantasyon Yazılmış binlerce kitap İnternet üzerinden ulaşabileceğiniz makaleler Kolayca yayınlama Güçlü dil özellikleri Geniş framework ve kütüphane yelpazesi
  18. PHP' NİN Zayıf Yönlerİ Multithreading olmaması Duck typing Type juggling

    Fonksiyonlardaki tutarsızlıklar Kompleks hata mekanizması Derlenmiyor oluşundan gelen performans problemleri
  19. PHP' de Rönesans Hareketlerİ Sosyal kodlama platformlarının yükselişine paralel olarak

    özellikle web ve mobil ortamlarda daha modern daha kullanışlı ve daha fazla rağbet gören teknolojiler ortaya çıkmaya başladı. Php dünyası ilk zamanlarda bu modernleşmeye pek ayak uyduramasa da son zamanlarda yenilenme ve gelişme konusunda büyük yol katetti.
  20. PHP' de Rönesans Hareketlerİ Kodlama standartları: PSR-0, PSR-1, PSR-2, PSR-3

    Performans: HipHop Virtual Machine Standartlaşan Kütüphaneler: Guzzle, Symfony Routing Paket Yöneticisi: Composer Güçlü Frameworkler: Symfony2, Zend2, Laravel Dil üzerinde yapılan geliştirmeler: Dahili web sunucu, closure class, anonymous functions... Daha fazla bilgi için : http://www.phptherightway.com/
  21. VERSİYONLAMA SİSTEMLERİ Versiyon kontrolu bir yazılımın revizyonlar halinde guncellenerek gelistirilmesini

    saglar. Boylece gelistirilen yazılımın gectigi surecler rahatca takip edilebilir.
  22. İŞ TAKİP SİSTEMLERİ Yazılım projesi geliştirme süreçlerinin vazgeçilmezidir. Özellikle takım

    çalışmalarında işlerin paylaşımlarını ve takibini kolaylaştıran yazılımlardır.
  23. PAKET YÖNETİCİLERİ Paket yöneticileri uygulamanızın ihtiyacı olan kütüphanelerin sürüm kontrollü

    olarak uygulamanıza eklenmesini sağlar. PEAR paketleri sistem genelinde tüm projelerde kullanılabilirken Composer paketleri her projeye özel şekilde kurulur ve kullanılır.
  24. HTML,CSS ve JS uygulamaları gelişen trendlerle önyüz geliştiricilerinin sorumluluğunda olsa

    dahi bütün web geliştiriciler kendini ifade edebilecek kadar html, css ve js bilmek zorundadır. HTML(Hyper Text Markup Language) : Günümüzde İnternet üzerinde veri paylaşımı için kullanılan en yaygın metin tabanlı dildir. Dilin son sürümü HTML5' tir. CSS(Cascading Style Sheets): HTML'e ek olarak metin ve format biçimlendirme alanında fazladan olanaklar sunan bir Web teknolojisidir. Güncel sürüm CSS3' tür. Html / CSS
  25. JavaScript Netscape Navigator 2.0 ile birlikte Brendan Eich tarafından geliştirilen

    ve önceleri Mocha daha sonra LiveScript olarak adlandırılan ve en sonunda şu anki adını alan JavaScript dili başlangıçta sadece istemci taraflı (client-side) yorumlanan bir betik dilidir. Son kararlı sürüm 1.8.5'tir. Günümüzde NodeJS teknolojisi ile server taraflı da (server-side) yorumlanan betik dili haline geldi. Javascrıpt
  26. NESNE YÖNELİMLİ PROGRAMLAMA Nesne yönelimli programlama (NYP), (İngilizce:Object Oriented Programming)

    özetle bir bilgisayar programlama yaklaşımıdır. Günümüzde pek çok çağdaş programlama dili tarafından desteklenmektedir. Bilgi gizleme (encapsulation), veri soyutlama (data abstraction), çok biçimlilik (polymorphism) ve kalıtım (inheritance) gibi yazılımın bakımını ve aynı yazılım üzerinde birden fazla kişinin çalışmasını kolaylaştıran kavramları da yazılım literatürüne kazandırmıştır.
  27. NESNE YÖNELİMLİ PROGRAMLAMA Lütfen şu terimleri araştırın ve bilgi sahibi

    olun: * Encapsulation * Data Abstraction * Polymorphism * Inheritance
  28. NESNE YÖNELİMLİ PROGRAMLAMA Single Responsibility Princible Open/Closed Princible Liskov Substitution

    Principle Interface Segregation Principle Dependency Inversion Principle Don't Repeat Yourself Keep It Simple Stupid
  29. MODERN MİMARİLER PHP, Servis yönelimli mimariler (SOA) yönünden REST ve

    SOAP yapıları ile uyumlu şekilde çalışmaktadır. Bu yapılar uygulamanızın bir servis şeklinde çalışmasını, XML ve JSON veri biçimleri vasıtasıyla diğer yapılarla (önyüzler ve entagrasyon sistemleri) ile haberleşmesini sağlar.
  30. TEST YÖNELİMLİ PROGRAMLAMA Kısa geliştirme süreçlerinin tekrarlarına dayalı bir yazılım

    geliştirme sürecidir. TEST ODAKLI Geliştirme sürecinin temelinde testler vardır. Kent Beck tarafından ortaya atılmıştır. Microsoft ve IBM' in yaptığı araştırmaya göre test yazmak, geliştirme sürecini %15 - %35 uzatırken, projedeki hata sayısını (bug) %40 - %90 azaltıyor.
  31. TEST YÖNELİMLİ PROGRAMLAMA Neden Birim Test Yazmalıyız? Kod kaynaklı sorunları

    daha rahat bulabilmek. Kod üzerinde daha rahat değişiklik yapabilmeyi sağlamak. Entegrasyon ve kullanıcı testi süreçlerini daha rahat geçirebilmek. Yazdığımız kodların kullanım örneklerini sağlamak. Daha iyi kod yazabilmek.