Upload
mustafa-ileri
View
2.067
Download
6
Embed Size (px)
DESCRIPTION
Dogus Universitesi Bilisim Klubunun Duzenledigi 3. Bilisim Kongresi' nde gelecegin gelistiricileri icin PHP hakkinda bilgiler.
Citation preview
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İ
Mustafa İlerİ @mustafailerihttp://tr.linkedin.com/in/[email protected]://github.com/mustafailerihttp://www.slideshare.net/mustafaileri
OSMAN ÜNGÜR @osmanungtr.linkedin.com/in/[email protected]/o
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.
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.
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.
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.
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.
Php kullanan şİrketler
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
POPÜLER PHP SÜRÜMLERİ
POPÜLER PHP UYGULAMALARI
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.
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.
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.
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
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ı:
POPÜLER PHP UYGULAMA Çatıları
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
PHP İle Teknolojİ Üreten Şİrketler
Ö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.
Ö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.
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.
GITHUB' DAKİ PHP KULLANIMI
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
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
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.
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/
Dünyada Karİyer Fırsatları
5.200+ İŞ İlanı
21.000+ İŞ İlanı
Türkİye' de Durum
200+ İŞ İlanı
180+ İŞ İlanı
GELECEĞİN GELİŞTİRİCİLERİNE ÖNERİLER
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.
İŞ 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.
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.
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
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
VERİTABANLARI
Veritabanları, uygulamanıza ait verilerin mantıksal bir hiyerarşi içerisinde fiziksel olarak saklanmasını sağlar.
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.
NESNE YÖNELİMLİ PROGRAMLAMA
Lütfen şu terimleri araştırın ve bilgi sahibi olun:
* Encapsulation* Data Abstraction* Polymorphism* Inheritance
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
ÖNBELLEKLEME SİSTEMLERİ
Önbellekleme sistemleri, pahalı veya tekrarlayan veritabanı sorguları, ağ ve dosya erişimlerini saklayarak hızlıca erişmenizi sağlar.
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.
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.
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.
PHP-İST TOPLULUĞU