Soyutlama (abstraction) programlamadaki en önemli ilkedir. Yapacağın
yazılımı her aşamada katmanlara böl, her katman kendi içinde bir şeylerden
sorumlu olsun. Bu bakış açısını web'e uyarlarsan, data işlerini (model),
görüntüleme işlerini (view), asıl işin yapıldığı yerleri (controller)
birbirinden ayır.

Nasıl bir arabanın lastiği bozulunca motoruna dokunmak zorunda kalmıyorsak,
bir programın da önyüzünü değiştirmek için arkaplandaki aksamlarına
dokunmamamız gerekir. Yani aslında bu bir mühendislik ilkesi.

Yazılım içinde her katman (modül) bir alanda uzmanlaşacak, öteki katmanlarla
bağımlılığı olmayacak. Eğer yazılımı bu ilkelere göre geliştirirsen, ilerde
büyük bir yazılım yapman gerekirse, eline yüzüne -çoğu programcı gibi-
bulaştırmazsın.

Bence symfony frameworkünü kullan, dailymotion da bunu kullanıyor.
Piyasadaki büyük çaplı projelerde kullanılan tek framework sanırım şu anda.
Zend ya da diğer frameworkler büyük projelerde pek kullanılmıyor. Büyük
proje derken dailymotion gibi projeleri kastediyorum.

Ufak bir iş yapıyorum zaten haldur huldur yazayım deme, bunu diyen
programcılar asla büyük işlere bir zaman sonra geçemiyorlar. Hala dünya
çapında türk yazılımı yok, skype estonyadan çıktı, 8.5 milyar dolar ediyor.
Demek ki onlar daha iyi kabul etmek lazım. Mümkünse amerikalı, alman,
estonyalı yazılımcıların tavsiyelerini dinle :) Lafım kimseye değil, bu
ülkede yaşadığıma göre bu benim de başarısızlığım.

Ve türkçe php kitaplarını okuma, benim yazdığım şöyle bir yazı var, bir
ingilizce php kitabının tanıtımını içeriyor:
http://negaripseylervarya.blogspot.com/2011/04/kaliteli-php-projesi-uretmek-icin.html

18 Haziran 2011 17:56 tarihinde Ömer ÖZKAN <[email protected]> yazdı:

> Aslında her ikisi de geçerli ama en başta öğrenmek için geliştiriyorum bu
> tür projeleri. Daha önce birçok prosedürel sistemler geliştirdim fakat artık
> daha büyük projeleri geliştirebileceğim programlama tekniklerini öğrenmek
> istiyorum. Asıl amacım dediğim gibi öğrenmek. Şu anda 2 projem var.
> Birincisi shoutcast ile uyumlu radyo sistemi, diğeri de elektronik dergi
> sistemi. Bunları üniversitedeki kulübümüz için kullanacağız.
>
> 18 Haziran 2011 15:45 tarihinde Atıf CEYLAN <[email protected]> yazdı:
>
> **
>> Şahsi bir tavsiyem de şu, eğer bu uygulamayı merakından geliştiriyorsan o
>> ayrı ancak eğer şahsına ait ve ileride de senden başkası müdahil olmayacaksa
>> uygulamanı procedural (ama düzgün tasarlanmış) olarak geliştirmendir.
>>
>> Çıktılarını üreteceğin html'leri ayırman ve ekran çıktılarını burada
>> değişkenleri çağırarak veya önceden cache'lenmiş verileri import ederek
>> kullanmandır.
>> Bu sadelik, performans, geliştirme kolaylığı vs.. sağlar. MVC yapıları
>> genel itibarla, büyük ve ağır işleyen projelerde (en azından başlangıç
>> aşaması) ve daha önemlisi "nerede çokluk, orada bolluk" deyimindeki
>> karmaşanın önlenmesi için kullanılabilecek yapılardır. Bir web sitesini MVC
>> yapayım dersen aç kalırsın.
>>
>>
>>
>> On 06/18/2011 03:10 PM, Ömer ÖZKAN wrote:
>>
>> Öncelikle teşekkürler. Bu şekilde de yapmak mümkün ama veritabanından
>> makalaleri tablo vs şeklinde listelediğimde, buna benzer döngüler vs.
>> kullandığımda baya sıkıntı olur gibi.
>>
>> 18 Haziran 2011 15:02 tarihinde Serkan YARAMAZ <[email protected]>yazdı:
>>
>>> Echo yerine
>>> this->content="Merhaba dunya";
>>> Sonra divin icinde print $app->content; kullansaniz olacak sanirim. Sizin
>>> hatanizclass icinde echo kullanmak gibi gorunuyor.
>>>   On Jun 18, 2011 2:30 PM, "Ömer ÖZKAN" <[email protected]> wrote:
>>> > function load_component(){
>>> > global $_GET;
>>> >
>>> > $app = $_GET['com'];
>>> >
>>> > include "components/$app/$app.php";
>>> >
>>> > $obj = new $app;
>>> >
>>> > $app ->main();
>>> >
>>> > if($app->theme_load){
>>> >
>>> > theme_load($app);
>>> >
>>> > }
>>> >
>>> > function theme load($app){
>>> >
>>> > echo "<html><head><title>$app->title</title></head>
>>> > <body>
>>> > $app->main();
>>> > </body>
>>> > </html>
>>> > ";
>>> >
>>> >
>>> > }
>>> >
>>> >
>>> >
>>> > }
>>> >
>>> > class $APP {
>>> >
>>> > var $title;
>>> > var $header;
>>> > var $theme_load;
>>> >
>>> > public function main(){
>>> > global $_GET;
>>> > $alt_islem = $_GET['islem'];
>>> >
>>> > switch($islem){
>>> >
>>> > default:
>>> > $this->default();
>>> > break;
>>> > }
>>> >
>>> > }
>>> > public function default(){
>>> >
>>> > $this->title = "ozel baslik";
>>> > $this->theme_load = true;
>>> > echo "merhaba dunya";
>>> > }
>>> > }
>>> >
>>> >
>>> > Yaklaşık böyle birşey. Burda metoda özel title gibi değerlerin temaya
>>> > yazılmasını istiyorum. Ayrı metod da çağırabilirim ama. Aynı metod
>>> > içerisinde bu tür işlemleri yapmak istiyorum. Burdaki theme_load
>>> fonskiyonu
>>> > özel değerleri head etiketine, echo "merhaba dunya" kodunu da istediğim
>>> bir
>>> > div in içerisinde çalıştırmak istiyorum. Fakat metodu önceden çağırmak
>>> > zorunda kaldığım için tema yüklenmeden ekrana "Merhaba dünya" yazısını
>>> > yazmış olacak. Umarım bu sefer biraz olsun anlatabildim :)
>>> >
>>> > 18 Haziran 2011 13:47 tarihinde Atıf CEYLAN <[email protected]>
>>> yazdı:
>>> >
>>> >> **
>>> >> Inbox'larımıza mail geldiğine göre sorununu anlatabilmişsin demektir,
>>> ancak
>>> >> anlayan var mı? Bilemeyeceğim. :)
>>> >> Dilersen biraz daha somut birşeyler yaz, örnek kodlar paylaş, kısaca
>>> biraz
>>> >> daha açık ol. :)
>>> >>
>>> >> On 06/18/2011 12:45 PM, Ömer ÖZKAN wrote:
>>> >>
>>> >> Merhabalar
>>> >>
>>> >> PHP ile bir web sistemi geliştiriyorum. Fakat sistemi planlarken
>>> sıkıntılar
>>> >> yaşıyorum.
>>> >>
>>> >> Kısaca şöyle anlatayım. Sistem uygulamalar diye adlandırdığım ufak
>>> >> bileşenlerden oluşuyor. Bir de ayrı tema dosyaları var. Her bileşen
>>> istediği
>>> >> şekilde tema içerisindeki title metakeys gibi değerleri
>>> değiştirebilmesini
>>> >> istiyorum. Bir bileşen de bir sınıftan oluşuyor. Sınfın kurucu
>>> fonksiyonu
>>> >> her sayfa veya işlem için bir metod çağırıyor. Bu metod ise artık
>>> duruma
>>> >> göre metakeys, title gibi değerlerin değiştirmesini istiyorum.
>>> index.php
>>> >> sayfasında bu bileşen için nesne oluşturduğumda gereken değişkenleri
>>> >> değiştirebilir. Fakat gereken çıktılar html sayfası yüklenmeden ekrana
>>> >> yazılır. Bu konuya bir çözüm arıyorum. Yardımcı olursanız sevinirim.
>>> Umarım
>>> >> sorunu anlatabilmişimdir :)
>>> >>
>>> >>
>>> >>
>>> >> _______________________________________________
>>>  >> Linux-programlama mailing
>>> [email protected]://
>>> liste.linux.org.tr/mailman/listinfo/linux-programlama
>>>
>>> >> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>>> >>
>>> >>
>>> >>
>>> >> --
>>> >> /**
>>> >> * *@author* Atıf CEYLAN
>>> >> * Software Developer & System Admin
>>> >> * http://www.atifceylan.com
>>> >> */
>>> >>
>>> >> _______________________________________________
>>> >> Linux-programlama mailing list
>>> >> [email protected]
>>> >> https://liste.linux.org.tr/mailman/listinfo/linux-programlama
>>> >> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>>> >>
>>> >>
>>>
>>> _______________________________________________
>>> Linux-programlama mailing list
>>> [email protected]
>>> https://liste.linux.org.tr/mailman/listinfo/linux-programlama
>>> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>>>
>>>
>>
>> _______________________________________________
>> Linux-programlama mailing 
>> [email protected]https://liste.linux.org.tr/mailman/listinfo/linux-programlama
>> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>>
>>
>>
>> --
>> /**
>> * *@author* Atıf CEYLAN
>>
>> * Software Developer & System Admin
>> * http://www.atifceylan.com
>> */
>>
>> _______________________________________________
>> Linux-programlama mailing list
>> [email protected]
>> https://liste.linux.org.tr/mailman/listinfo/linux-programlama
>> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>>
>>
>
> _______________________________________________
> Linux-programlama mailing list
> [email protected]
> https://liste.linux.org.tr/mailman/listinfo/linux-programlama
> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>
>


-- 
Anıl Özselgin
http://negaripseylervarya.blogspot.com/
_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php

Cevap