Yazılım Mühendİslİğİ veGünümüz PHP ProgramcılığıAnıl özselgİnEkİM12- Özgür web günlerİ
Kavram BOLLUĞUEncaptulatıonData hıdıngCohesionLOOSE COUPLINGTıght couplıngstatic designDynamıc desıgnAtomıcıtyisolationKıs...
YAZILIM - ÇOK YENİ BİR ALANBaşka alanlardan öğrenmemİzgerekEN çok şey var* İNŞAAT MÜHENDİSLİĞİ, 10.000 YIL* MAKİNE MÜHENDİ...
İYİ Yazılım dİzaynI* ORGANİZASYON (HAYATIN HER ALANINDA)* MODÜLERLİK (HER MÜHENDİSLİK DALINDA)* SOYUTLAMA
ORGANİZASYON* ŞEHİR PLANLARI* RESTORAN MENÜLERİ* KİTAPLARIN BÖLÜMLERİ* FİRMALARDAKİ DEPARTMANLAR* ÜNİVERSİTELERDEKİ BÖLÜML...
ORGANİZASYON – HAYATIN HER ALANINDA* BU KADAR ORGANİZASYONA SAHİP OLMAYAN ÇOK YAZILIM VAR :)
mODÜLERLİK* makİNE MÜHENDİSLİĞİ* ELEKTRONİK* İNŞAAT* ...
Modülerlİk - standartların belİRLENMESİ* ELEKTRİĞİN 220v OLMASI* ampüllerİn BELLİ STANDARTA GÖRE ÜRETİLMESİ* ÇAMAŞIR MAKİN...
SOYUTLAMASoyut verİ YAPILARI* LİSTE* AĞAÇ* GRAPH* Yiğin* Kuyruk
PROGRAMLAMA DİLLERİ - tarİHSEL BAKIŞ1940 -1950İLK DİLLER1950 -1968KOD BLOKLARININ TANIMLANABİLDİĞİ DİLLER1968PROSEDÜREL PR...
PROGRAMLAMA DİLLERİ - APOLLO 11 KODU# Page 821CCS ZERLINA # N: HAS ZERLINA REACHED ZERO YET?TCF PREMON1 # N: DIMINISH ZERL...
PROGRAMLAMA DİLLERİ - prosedürel programlama* 1960larda kodlar düzensiz ve dağınıktı* kod okumak ve Bug bulmak çok zorlu b...
PROGRAMLAMA DİLLERİ - nesne TABANLI PROGRAMLAMA* 1983 – İLK GENİŞ ÇAPLI nesneye yönelİMLİ PROGRAMLAMA DİLİ (C++)Daha modül...
Php Dİlİ nerede?* prosedürel* NESNE TABANLI (php 5ten berİ)* NAMESPACE DESTEKLİYOR* FONKSİYONEL PROGRAMLAMAYI DESTEKLİYOR*...
KÖTÜ PHP PRATİKLERİ - php.net
KÖTÜ PHP PRATİKLERİ - CODEıgnıterclass CI_DB_driver {var $username;var $password;var $hostname;var $database;var $dbdriver...
KÖTÜ PHP PRATİKLERİ - CODEıgnıter* abstract class, ınterface yok* HERHANGİ BİR FONSKİYONUN İÇİNDE YER ALMAYANAÇIKTA KALMIŞ...
KÖTÜ PHP PRATİKLERİ - WORDPRESSfunction check_password_reset_key($key, $login) {global $wpdb;$key = preg_replace(/[^a-z0-9...
KÖTÜ PHP PRATİKLERİ - WORDPRESS* KATMANLAR ARASI AYRIM YAPILMAMIŞ* HTML VE SQL İÇİÇE* NESNEYE YÖNELİK PROGRAMLAMA KULLANIL...
KÖTÜ PHP PRATİKLERİ - drupal* kod organİZASYONU ÇOK KÖTÜ* NESNE TABANLI DEĞİL* ESKİ BİR PROJE OLDUĞU İÇİNPHPNİNYENİ ÖZELLİ...
OPENCART – EKSİKLERİ VAR AMA...ARTILARI* NESNE TABANLI* MVC DESENİNE GÖRE TASARLANMIŞEKSİLERİ* VERİ KATMANI MODÜLER DEĞİL*...
İYİ PHP PRATİKLERİ - SYMPHONY CMSARTILARI* NESNE TABANLI* ÖNYÜZ TAMAMENXSLT ÜZERİNE KURULMUŞ,DİLDEN BAĞIMSIZ, TERTEMİZ* MV...
İYİ PHP PRATİKLERİ - SYMPHONY CMS<h2><a href="{$root}/articles/{title/@handle}/"><xsl:value-of select="title"/></a></h2><u...
İYİ PHP PRATİKLERİ – yıı FRAMEWORKARTILARI* tamamen NESNE TABANLI* MVC DESENİNE GÖRE TASARLANMIŞ* arayüzler (INTERFACE)üze...
İYİ PHP PRATİKLERİ – yıı FRAMEWORKclass CDbDataReader extends CComponent implements Iterator, Countable{private $_statemen...
ÇO00K İYİ PHP PRATİKLERİ – ZEND FRAMEWORKARTILARI* tamamen NESNE TABANLI, EXCEPTION* MVC DESENİNE GÖRE TASARLANMIŞ* arayüz...
ÇO00K İYİ PHP PRATİKLERİ – SYMFONY FRAMEWORKARTILARI* tamamen NESNE TABANLI* MVC DESENİNE GÖRE TASARLANMIŞ* arayüzler (INT...
TürkİyeDE PHP NASIL YAZILIYOR?* KODLAR APOLLO 11İNKODLARINA BENZİYOR, ORGANİZASYONher ZAMAN SIKINTILI* FONKSİYONLAR çok UZ...
KAYNAKLAR
Sorular ?
Upcoming SlideShare
Loading in …5
×

Php open source_softwares_designs

216
-1

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
216
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Php open source_softwares_designs

  1. 1. Yazılım Mühendİslİğİ veGünümüz PHP ProgramcılığıAnıl özselgİnEkİM12- Özgür web günlerİ
  2. 2. Kavram BOLLUĞUEncaptulatıonData hıdıngCohesionLOOSE COUPLINGTıght couplıngstatic designDynamıc desıgnAtomıcıtyisolationKıssYagnıDryWATERFALLAGILESCRUMXpPROTOTYPINGV-MODELAOPSOASaaSDSLDddmonolithic architectureGENERIC PROGRAMMINGDelegationINHERITANCE
  3. 3. YAZILIM - ÇOK YENİ BİR ALANBaşka alanlardan öğrenmemİzgerekEN çok şey var* İNŞAAT MÜHENDİSLİĞİ, 10.000 YIL* MAKİNE MÜHENDİSLİĞİ, 2.000 YIL* YAZILIM, 70 YIL
  4. 4. İYİ Yazılım dİzaynI* ORGANİZASYON (HAYATIN HER ALANINDA)* MODÜLERLİK (HER MÜHENDİSLİK DALINDA)* SOYUTLAMA
  5. 5. ORGANİZASYON* ŞEHİR PLANLARI* RESTORAN MENÜLERİ* KİTAPLARIN BÖLÜMLERİ* FİRMALARDAKİ DEPARTMANLAR* ÜNİVERSİTELERDEKİ BÖLÜMLER* ...
  6. 6. ORGANİZASYON – HAYATIN HER ALANINDA* BU KADAR ORGANİZASYONA SAHİP OLMAYAN ÇOK YAZILIM VAR :)
  7. 7. mODÜLERLİK* makİNE MÜHENDİSLİĞİ* ELEKTRONİK* İNŞAAT* ...
  8. 8. Modülerlİk - standartların belİRLENMESİ* ELEKTRİĞİN 220v OLMASI* ampüllerİn BELLİ STANDARTA GÖRE ÜRETİLMESİ* ÇAMAŞIR MAKİNELERİNİN KULLANIMININ AYNI OLMASI* TELEVİZYONUN SCART GİRİŞİ
  9. 9. SOYUTLAMASoyut verİ YAPILARI* LİSTE* AĞAÇ* GRAPH* Yiğin* Kuyruk
  10. 10. PROGRAMLAMA DİLLERİ - tarİHSEL BAKIŞ1940 -1950İLK DİLLER1950 -1968KOD BLOKLARININ TANIMLANABİLDİĞİ DİLLER1968PROSEDÜREL PROGRAMLAMAWHILE, FORFONKSİYONEL PROGRAMLAMA
  11. 11. PROGRAMLAMA DİLLERİ - APOLLO 11 KODU# Page 821CCS ZERLINA # N: HAS ZERLINA REACHED ZERO YET?TCF PREMON1 # N: DIMINISH ZERLINA, CONTINUERESETRPT CAF BIT12 # Y: RESET RUPT. TERMINATEEXTENDWOR CHAN13TCF TASKOVERCOUNTEM CAF BIT13 # ARE WE IN ATTITUDE-HOLD?EXTENDRAND CHAN31EXTENDBZF RESETRPT # YES: SKIP REDESIGNATION LOGIC.CA L # NO.MASK -AZBITCCS A-AZ CS AZEACHADS AZINCR1CA LMASK +AZBITCCS A
  12. 12. PROGRAMLAMA DİLLERİ - prosedürel programlama* 1960larda kodlar düzensiz ve dağınıktı* kod okumak ve Bug bulmak çok zorlu bir süreçtİ* APOLLO 11İN KALKIŞINDAN 3 HAFTA ÖNCEÇOK ÖNEMLİ BİR BUG TESPİT EDİLDİ* kod KARMAŞAsını ENGELLEMEK İÇİN çalışmalar,PROSEDÜREL PROGRAMLAMA DİLLERİ* c VE algol DİLLERİNİN YÜKSELİŞİ
  13. 13. PROGRAMLAMA DİLLERİ - nesne TABANLI PROGRAMLAMA* 1983 – İLK GENİŞ ÇAPLI nesneye yönelİMLİ PROGRAMLAMA DİLİ (C++)Daha modüler yapılar kurabİLMEMİZİ SAĞLIYORKOD ORGANİZASYONUNU KOLAYLAŞTIRIYORNAMESPACE KULLANIMI* 1995 – SANAL MAKİNELER, Vırtual machines (Java)DONANIM VE İŞLETİM SİSTEMİNDEN BAĞIMSIZ ÇALIŞABİLME
  14. 14. Php Dİlİ nerede?* prosedürel* NESNE TABANLI (php 5ten berİ)* NAMESPACE DESTEKLİYOR* FONKSİYONEL PROGRAMLAMAYI DESTEKLİYOR* VİRTUAL MACHİNE ÜZERİNDE ÇALIŞMIYORİŞLETİM SİSTEMİNE BAĞIMLI
  15. 15. KÖTÜ PHP PRATİKLERİ - php.net
  16. 16. KÖTÜ PHP PRATİKLERİ - CODEıgnıterclass CI_DB_driver {var $username;var $password;var $hostname;var $database;var $dbdriver = mysql;var $dbprefix = ;var $char_set = utf8;var $dbcollat = utf8_general_ci;var $autoinit = TRUE; // Whether to automatically initialize the DBvar $swap_pre = ;var $port = ;var $pconnect = FALSE;var $conn_id = FALSE;var $result_id = FALSE;var $db_debug = FALSE;var $benchmark = 0;var $query_count = 0;var $bind_marker = ?;var $save_queries= TRUE;var $queries = array();var $query_times = array();var $data_cache = array();var $trans_enabled = TRUE;var $trans_strict= TRUE;
  17. 17. KÖTÜ PHP PRATİKLERİ - CODEıgnıter* abstract class, ınterface yok* HERHANGİ BİR FONSKİYONUN İÇİNDE YER ALMAYANAÇIKTA KALMIŞ KODLAR MEVCUT, ÇOK FAZLA* TRANSFER OBJELERİ YERİNE ÇOĞU YERDE İLETİŞİMDİZİLER (ARRAY) ÜZERİNDEN YAPILMIŞ* NAMESPACE KULLANILMAMIŞ* VERİTABANI İLE MODÜLERLİĞİ SAĞLAYAN BİR KATMAN YOK
  18. 18. KÖTÜ PHP PRATİKLERİ - WORDPRESSfunction check_password_reset_key($key, $login) {global $wpdb;$key = preg_replace(/[^a-z0-9]/i, , $key);if ( empty( $key ) || !is_string( $key ) )return new WP_Error(invalid_key, __(Invalid key));if ( empty($login) || !is_string($login) )return new WP_Error(invalid_key, __(Invalid key));$user = $wpdb->get_row($wpdb->prepare("SELECT * FROM $wpdb->users WHEREuser_activation_key = %s AND user_login = %s", $key, $login));if ( empty( $user ) )return new WP_Error(invalid_key, __(Invalid key));return $user;}
  19. 19. KÖTÜ PHP PRATİKLERİ - WORDPRESS* KATMANLAR ARASI AYRIM YAPILMAMIŞ* HTML VE SQL İÇİÇE* NESNEYE YÖNELİK PROGRAMLAMA KULLANILMAMIŞ* HATTA ÇOK FAZLA FONKSİYON VE METODLARIN DIŞINDA KOD VAR* NAMESPACE DESIGN PATTERN HAK GETİRE :)* PHPNİN BU KADAR GELİŞMEDİĞİ BİR DÖNEMDE ÇIKMIŞTIGünahı yok :)
  20. 20. KÖTÜ PHP PRATİKLERİ - drupal* kod organİZASYONU ÇOK KÖTÜ* NESNE TABANLI DEĞİL* ESKİ BİR PROJE OLDUĞU İÇİNPHPNİNYENİ ÖZELLİKLERİNİİÇERMİYOR
  21. 21. OPENCART – EKSİKLERİ VAR AMA...ARTILARI* NESNE TABANLI* MVC DESENİNE GÖRE TASARLANMIŞEKSİLERİ* VERİ KATMANI MODÜLER DEĞİL* verİ İLETİŞİMİ SIKÇA DİZİLER ÜZERİNDENYAPILIYOR* ÇOK UZUN METODLAR İÇERİYOR
  22. 22. İYİ PHP PRATİKLERİ - SYMPHONY CMSARTILARI* NESNE TABANLI* ÖNYÜZ TAMAMENXSLT ÜZERİNE KURULMUŞ,DİLDEN BAĞIMSIZ, TERTEMİZ* MVC KATMANLARI BİRBİRİNDEN ÇOK İYİ AYRILMIŞEKSİLERİ* arayüzler üzerİNDEN İLETİŞİM KURULMAMIŞ
  23. 23. İYİ PHP PRATİKLERİ - SYMPHONY CMS<h2><a href="{$root}/articles/{title/@handle}/"><xsl:value-of select="title"/></a></h2><ul class="meta"><li class="icon-filed-under"><xsl:apply-templates select="categories/item"/></li><li class="icon-comments"><a href="{$root}/articles/{title/@handle}/#comments"><xsl:text>Comments (</xsl:text><xsl:value-of select="@comments"/><xsl:text>)</xsl:text></a></li></ul>
  24. 24. İYİ PHP PRATİKLERİ – yıı FRAMEWORKARTILARI* tamamen NESNE TABANLI* MVC DESENİNE GÖRE TASARLANMIŞ* arayüzler (INTERFACE)üzerİNDEN İLETİŞİM KURULUYOR* TÜM KODLAR BİR sınıfın(CLASS)İÇİNDE YERALIYOR* TYPE HINTING KULLANILMIŞ BAZENEKSİLERİ* NAMESPACE İLE ORGANİZE EDİLMEMİŞ* MODÜLLER BAĞIMSIZ OLARAK KULLANILAMIYOR
  25. 25. İYİ PHP PRATİKLERİ – yıı FRAMEWORKclass CDbDataReader extends CComponent implements Iterator, Countable{private $_statement;private $_closed=false;private $_row;private $_index=-1;/*** Constructor.* @param CDbCommand $command the command generating the query result*/public function __construct(CDbCommand $command){$this->_statement=$command->getPdoStatement();$this->_statement->setFetchMode(PDO::FETCH_ASSOC);}
  26. 26. ÇO00K İYİ PHP PRATİKLERİ – ZEND FRAMEWORKARTILARI* tamamen NESNE TABANLI, EXCEPTION* MVC DESENİNE GÖRE TASARLANMIŞ* arayüzler (INTERFACE)üzerİNDEN İLETİŞİM KURULUYOR* NAMESPACELER İLE ORGANİZE EDİLMİŞ* VERİ kAtMANI ORM KULLANIYOR* Dependency Injection DESTEKLİYOR* ÇOK FAZLA BİLEŞEN DESTEĞİ VAR* Bİleşenler ayrı olarak da kullanılabİlİyorEKSİLERİ* orm yerİNE zend DB KULLANILIRSA ÇOK BAŞ AĞRITIR. VERİ KATMANI İLE İŞ KATMANINIAYIRMASI ÇOK ZORLAŞIYOR.DOCTRINE İLE KULLANMAK GEREK.
  27. 27. ÇO00K İYİ PHP PRATİKLERİ – SYMFONY FRAMEWORKARTILARI* tamamen NESNE TABANLI* MVC DESENİNE GÖRE TASARLANMIŞ* arayüzler (INTERFACE)üzerİNDEN İLETİŞİM KURULUYOR* NAMESPACELER İLE ORGANİZE EDİLMİŞ* VERİ AKMANI ORM (DOCTRINE) KULLANIYOR* DOCTRINEİ GELİŞTİREN TAKIMIN ÜRÜNÜ* Dependency Injection DESTEKLİYOREKSİLERİ* BİLMİYORUM :)
  28. 28. TürkİyeDE PHP NASIL YAZILIYOR?* KODLAR APOLLO 11İNKODLARINA BENZİYOR, ORGANİZASYONher ZAMAN SIKINTILI* FONKSİYONLAR çok UZUN TUTULUYOR* NESNE tabanlı Dİzayn yapılmıyor* verİ İLETİŞİMİ İÇİN SÜREKLİ DİZİLER (ARRAY) KULLANILIYOR.* ARAYÜZLER ÜZERİNDEN İLİŞKİLER KURULMUYOR.PHP DİLİNİ ÖĞRENDİĞİMİZ KAYNAKLAR YETERSİZ-KİTAPLAR, BLOGLAR, KURSLARARTIK SPAGETTİYE DOYANLAR BAŞKA BİR ŞEYLER ARIYOR :)
  29. 29. KAYNAKLAR
  30. 30. Sorular ?
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×