45
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İ

Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

Embed Size (px)

DESCRIPTION

Dogus Universitesi Bilisim Klubunun Duzenledigi 3. Bilisim Kongresi' nde gelecegin gelistiricileri icin PHP hakkinda bilgiler.

Citation preview

Page 1: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

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

MUSTAFA İLERİ VE OSMAN ÜNGÜRNİsan 2014

DISECLUB 3. BİLİŞİM KONGRESİ

Page 2: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

Mustafa İlerİ @mustafailerihttp://tr.linkedin.com/in/[email protected]://github.com/mustafailerihttp://www.slideshare.net/mustafaileri

Page 3: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

OSMAN ÜNGÜR @osmanungtr.linkedin.com/in/[email protected]/o

Page 4: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

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.

Page 5: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

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.

Page 6: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

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.

Page 7: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

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.

Page 8: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

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.

Page 9: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

Php kullanan şİrketler

Page 10: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

PHP KullaNIM İSTATİSTİKLERİ

PHP: 81.9ASP.NET: 17.8JAVA: 2.7ColdFusion: 0.8Perl: 0.6Ruby: 0.5Python: 0.2Javascript: 0.1

Kaynak: http://w3techs.com/technologies/overview/programming_language/all

Page 11: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

POPÜLER PHP SÜRÜMLERİ

Page 12: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

POPÜLER PHP UYGULAMALARI

Page 13: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

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.

Page 14: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

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.

Page 15: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

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.

Page 16: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

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 ÖrneklerOpencartOS CommercePrestashop

Page 17: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

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ı:

Page 18: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

POPÜLER PHP UYGULAMA Çatıları

Page 19: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

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:

SymfonyLiveZendConPHP UK

Page 20: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

PHP İle Teknolojİ Üreten Şİrketler

Page 21: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

Ö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.

Page 22: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

Ö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.

Page 23: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

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.

Page 24: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

GITHUB' DAKİ PHP KULLANIMI

Page 25: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

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

Page 26: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

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

Page 27: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

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.

Page 28: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

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/

Page 29: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

Dünyada Karİyer Fırsatları

5.200+ İŞ İlanı

21.000+ İŞ İlanı

Page 30: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

Türkİye' de Durum

200+ İŞ İlanı

180+ İŞ İlanı

Page 31: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

GELECEĞİN GELİŞTİRİCİLERİNE ÖNERİLER

Page 32: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

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.

Page 33: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

İŞ 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.

Page 34: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

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.

Page 35: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

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

Page 36: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

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

Page 37: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

VERİTABANLARI

Veritabanları, uygulamanıza ait verilerin mantıksal bir hiyerarşi içerisinde fiziksel olarak saklanmasını sağlar.

Page 38: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

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.

Page 39: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

NESNE YÖNELİMLİ PROGRAMLAMA

Lütfen şu terimleri araştırın ve bilgi sahibi olun:

* Encapsulation* Data Abstraction* Polymorphism* Inheritance

Page 40: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

NESNE YÖNELİMLİ PROGRAMLAMASingle Responsibility Princible

Open/Closed Princible

Liskov Substitution Principle

Interface Segregation Principle

Dependency Inversion Principle

Don't

Repeat

Yourself

Keep

ItSimple

Stupid

Page 41: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

ÖNBELLEKLEME SİSTEMLERİ

Önbellekleme sistemleri, pahalı veya tekrarlayan veritabanı sorguları, ağ ve dosya erişimlerini saklayarak hızlıca erişmenizi sağlar.

Page 42: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

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.

Page 43: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

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.

Page 44: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

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.

Page 45: Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler

PHP-İST TOPLULUĞU