Ruby On Rails MVC (Model-View-Controller) Mimarisi

Bu yazıda size RoR’in çalışma prensibi hakkında elimden geldiğince net bilgiler vermeye çalışacağım, bunu özellikle yapmak istedim çünkü en başlarda kendime hep bu soruları soruyordum, nasıl çalışıyor bu, mantığı nedir? İşleyişini kavradıktan sonra herşeyin daha kolay yürüdüğünü ve üzerine yapılan eklemelerin daha kalıcı olduğunu gördüm ve sizinle paylaşmak istedim hatta bunun için janjanlı bir resim dahi hazırladım :) .

Bunun için tarayıcının adres satırına girdiğimiz RoR ile ilgili bir bağlantının yaşam döngüsünü 8 basamakta inceleyeceğiz. Bunu yaparken örneklerimizi aşağıda verilen bağlantı üzerinden yorumlayacağız.

http://localhost/deneme/ruby

1) Tarayıcınıza bu adresi girdiğiniz zaman tarayıcının ilk işi hostunuzda bulunan web sunucusuna (apache, webrick, lighttpd ….) bağlanmak olacaktır.
2) Web sunucusu daha sonra Ruby on Rails Framework’e bağlanacaktır, bu bağlanma basamağında ilk önce “Routing” denen işlemler topluluğunu gerçekleştirecektir. Burada çok fazla ayrıntı vermeyeceğim ancak bu routing esnasında web sunucusunun public klasörüne uğradığını bilmenizde yarar var. Buraya uğramakta ve deneme adında bir klasör ve onun içinde bulunan ruby.html belgesine bakmaktadır, eğer böyle bir belge bulamazsa yine public klasöründe bulunan bazı verilerden (ruby’nin kurulu olduğu dizin vs..) yararlanarak controllera ulaşacaktır. Bazen karşılaşacağınız routing hatasının nedenide bu basamaktan kaynaklanmaktadır.
3) Bu aşamada controller içindeki app klasörüne giden uygulama bu klasörde deneme contorellerına ve bu controller altındaki ruby actionuna bakacaktır.
4) Bu action eğer modele bağlantı gerektiriyorsa , modele bağlanılacak, modelde (veri tabanına bağlanması gerekirse model aracılığı ile yapar.) 5) veritabanına bağlanacak, gerekli bilgileri alıp aynı yolu izleyerek yine controllera dönecektir. Eğer model bağlantısı gerektirmiyorsa o zaman bu basamaklar atlanacaktır.
6) Controllera gelen bu veriler ile birlikte, gerekli action uygulanmış halde, elde edilen sonuçları kullanıcıya iletmek için view klasörüne uğramak durumunda kalacaktır. View klasöründe amaç alınan sonuçların kullanıcı tarafından görülebilecek şekilde biçimlendirilmesidir. Mesela html, css kodları gibi pek çok özelliği hatta ruby kodlarını gerekirse burada kullanabilirsiniz (esasında view ruby kodlarının kullanılması için pek önerilmez, kullanacağınız ruby kodlarını kontroller içinde kullanmanız ve buraya bir instance variable ya da başka bir şekilde aktarmanız daha uygun olacaktır.)
7) Viewe uğrayıp kullancıya ulaştırılmak için son şeklinin alan web uygulamanız yine web sunucunuzla bağlantı kuracak.
8- Web sunucusuda tarayıcı ile tekrar bağlantı kurarak uygulamadan elde edilen sonucu kullanıcıya aktaracaktır.

Profesyonel mesleğim web uygulamaları geliştirmek olmasa da benim için çok güzel bir hobi olduğunu itiraf etmeliyim ve bu nedenle irili ufaklı hatalarım olmuşsa kusuruma bakmayın lütfen ;)

Kolay gelsin :)
webdr

2 Responses to “Ruby On Rails MVC (Model-View-Controller) Mimarisi”

  1. sedat Says:

    güzel olmuş tebrik ederim

  2. Sadettin Says:

    Teşekkürler bu güzel paylaşım için. elinize sağlık :)

Yorumlarınız ve ilgili sorularınız için öncelikle FORUMUNUZU kullanmayı tercih edin, böylece sorularınıza daha hızlı cevap alabilir, katılımınızla nezih bir topluluk oluşturmada yardımcı olabilirsiniz.