29 entry daha
  • yaklaşık 3 aylık yoğun ve hızlandırılmış öğrenme ve uygulama dönemi içinde, neredeyse 10 senedir php ile hemhal olup kazanamadığım web ile alakalı teknik uygulama becerilerini uygulama yeteneği kazanmamı sağlamış ve insanı web development alanında vizyon sahibi yapan framework. en avam ve basitleştirilmiş söylenişi ile tıpkı php, asp.net, jsp gibi, web sitesi geliştirmenizi sağlayan bir dil kütüphanesi diyebiliriz.

    bu entry'yi okuduğunuza göre muhtemelen ruby on rails lafzını bir yerlerden görüp duymuş, nedir ne değildir diye merak eden ve "acaba sözlük'te bununla alakalı ne yazmışlar" deyip bu başlığa göz atan bir web developersınızdır. eğer ki web developersanız fakat ruby on rails'ı ilk kez bu entry'de duyuyorsanız şöyle bir bilgi ilginizi hayli arttırabilir. twitter'ın alt yapısı ruby on rails'dir.

    müsaadenizle bu müthiş framework ile ilgili yorumlarımı sizinle paylaşmak isterim.

    öncelikle şunu söylemem gerekiyor ki, ror öğrenmek isteyenler veyahut ror'un tam olarak ne olduğunu anlamakla ilgilenenler aşağıda belirteceğim yeteneklere/bilgilere sahip olmalılar:

    1. okuduğunu iyi anlayabilecek ve soru sorup cevap alabilecek kadar ingilizce bilmek.
    2. oop'nin ne olduğunu bilmek.
    3. mvc'nin ne olduğunu bilmek.
    4. orm'nin ne olduğunu bilmek.

    yukarıda saydıklarımdan herhangi biri hakkında malumata/yeteneğe sahip değilseniz, öncelikle bu konular hakkında yüzeysel de olsa bilgi/yetenek sahibi olup, yazacaklarımı ondan sonra değerlendirmeye almanızı tavsiye ederim.

    ruby on rails nedir?
    -------------------------
    kısaca ror, ruby programlama dili ile yazılmış bir web frameworktür. hayli afilli bir kelime gibi duran framework aslında en basit anlamıyla, herhangi bir programlama dilinde geliştirme esnasında sıklıkla ihtiyaç duyulan fonksiyonların/metodların, belli bir pattern çerçevesinde bir araya getirildiği iş kolaylaştırıcı kodlar topluluğudur. gelişmiş bir kütüphane, plug-in'ler manzumesi, çoooook temel bir şablon diyebiliriz belki de. * *

    hemen somutlaştıralım.

    php:

    <?php echo "bu bir yazı"; ?>

    ruby on rails:

    <%= "bu bir yazı" %>

    php:

    <?php
    $counter = 5
    for i, $counter => i , i++
    echo "5 kere yaz";
    ?>

    ruby on rails:

    <% 5.times do %>
    5 kere yaz
    <% end %>

    ruby on rails'in diğerlerinden farkı nedir?
    ----------------------------------------------------
    bu soru, ror hakkında bilgi almak isteyen herkesin aklına gelir sanıyorum. benim de gelmişti. fakat bunun 'yanlış' bir soru olduğunu, 'ror'un ne olduğunu uygulamalı olarak öğrendikçe anladım. bu soruya illa ki bir cevap vermek gerekecekse yazının başında söylediğimi tekrar etmeliyim sanırım: ror'un size kazandırdığı en önemli şey bence web geliştirmenin her açıdan ideal yöntemleri noktasını yakalama * konusunda sizi teşvik etmesi ve vizyon kazandırması.

    nasıl mı oluyor bu? açıklayayım...

    bir defa ruby on rails öğrenmek istediğiniz zaman, onun öncesinde -ve o sırada- öğrenmeniz gereken birçok şey var. birincisi ingilizce! evet, evet... yanlış okumadınız. ruby on rails sizi ingilizce'nizi ilerletmeniz konusunda zorlar. birincisi, ruby programlama dilinin syntax'i bildiğiniz ingilizce gibidir. yukarıda verdiğim örneği hatırlayın.

    <% 5.times do %>
    5 kere yaz
    <% end %>

    "5 kere yap" diyerek oluşturduğunuz blok içinde loop yapıyorsunuz mesela... daha da enteresan bir örnek vereyim.

    <%= 15.minutes.ago %>

    sizce bu komut satırı ne yapar? :) "15 dakika önce"sinin tarih ve saat bilgisini verir... evet, işte ror bu kadar fonksiyonel ve eğlenceli!

    tabii bu söylediklerim sadece işin şov kısmı. dediğim gibi ingilizce bilmeniz zaten başlangıç için bile çok önemli. ruby on rails'in sizi öğrenmeye teşvik edeceği şeyler ingilizce ile sınırlı değil.

    - gerçek anlamda oop'nin web geliştirmede nasıl kullanıldığını öğrenirsiniz. (zira ruby programlama dilinde istisnasız her şey ama her şey birer object'tir.)

    - eğer daha önce kullanmadıysanız, mvc pattern'i ile geliştirme yapmayı öğrenirsiniz. "düzenli" çalışmak, aradıklarınızı bulmak ne kadar kolaymış görürsünüz ve şaşırırsınız...

    - git ile tanışırsınız. version yönetiminin bir yazılımcı için ne kadar faydalı ve önemli bir icat olduğunu görürsünüz. github'daki dünyanın en ayrıcalıklı yazılımcılarla aynı sanal ortamlara girer çıkarsınız.

    - ruby on rails tabanlı geliştirme yapmak için en ideal platform *nix tabanlı işletim sistemleri olduğundan *nix dünyası ile hemhal olursunuz.

    - orm kullanmanın ne kadar büyük bir rahatlık olduğunu görürsünüz. amele gibi satırlarca sql yazmak zorunda kaldığınız zamanları düşünür gülersiniz.

    - ona gülerken sonradan "sql mi??" diyerek artık nosql database'ler * ile çalıştığınızı hatırlar ve yeniden gülümsersiniz.

    - gem uzayına adım atar ve ruby on rails'in ne kadar sadık, çalışkan, üretken bir communitysi olduğunu görür ve imrenirsiniz. github'da birkaç tane türk'ün ror adına ne kadar önemli işler çıkardıklarını görürsünüz, göğsünüz kabarır...

    - testing kavramı ile tanışırsınız. unit testing, integration tests, test driven development gibi kavramlar 'akademik' zırvalar olmaktan çıkar sizin için. çünkü bütün community bu kavramları 'günlük' dil içinde devamlı kullanmaktadır. yazılımda en ideal noktaya gitmek için devamlı imrenecek şeyler bulursunuz.

    velhasılı...

    ruby on rails'in -benim açımdan düşünürsek- php ile arasındaki en büyük fark bence `ruby on rails'in alelade bir dil değil, bir yaşam/yazılım tarzını simgeleyen adeta bir amiral gemi olmasıdır.

    ruby on rails'in ne gibi teknik avantajları var?
    ------------------------------------------------------------
    şimdi şunu baştan söylemek lazım. "proje için en uygun olan dil, o proje için en iyi dildir". şahsen yazılım konusunda agnostik olunması gerektiğine inanıyorum. her projenin spesifik ihtiyaçları, gereklilikleri, kısıtlayıcılıkları olabilir. açıkçası ruby on rails öğrendim diye parasız kaldığımda joomla ile 15 dakikada site hazırlamayacak değilim :)

    benim kafamdaki ruby on rails en ideal olanı simgeliyor.

    bir defa ister ror öğrenin ister öğrenmeyin, mesela php yazıyorsanız ve hala codeigniter'ı bilmiyorsanız, cakephp'yi, yii'yi duymadıysanız, kohana'dan bîhaberseniz; önemli bir vizyon eksikliğiniz var demektir. "ben kodlarımı notepad'te yazıyorum hala be!" diyerek bunu bir "artistlik" vesilesi sayan loserlardan değilsinizdir umarım... hakikaten 2012 yılında olacak iş değil. (bkz: sublime text editor) (bkz: text mate)

    öncelikle framework'ler sizi kısıtlamadığı sürece candır. (asp.net hariç :) mvc design pattern candır. orm'ler candır. fragment caching olmazsa olmazdır.

    bunların bazılarını php ile de elde etmeniz mümkün. ama nasıl? ya yukarıda saydıgım framework'lerden bir framework beğeneceksiniz * ya da yemeyip içmeyip yıllarca oturup tek başınıza yazacaksınız hepsini...

    rivayet odur ki; üstad necip fazıl vapurla karşıya geçerken biri gelip "şeyhe tarikata ne gerek var? biz yolumuzu bulabilirdik" der. üstad cevabı yapıştırır: "ne diye vapura bindin ki? yüzerek geçseydin ya karşıya?"

    benim görüşüm budur.

    işte ruby on rails web development alanında teorideki en ideal olan ne varsa, pratikte bünyesine toplamış bir güzellikler topluluğudur. convention over configuration düsturu ile oluşmuş ve her geçen gün daha da kökleşen bir gelenek anlayışı vardır. community'sindeki herkes bu geleneklere sıkı sıkıya bağlanır ve anlaşması çok kolay olur.

    bence vakit kaybetmeden kolları sıvayın...

    not: sözlükte ruby'ci arkadaşlar varsa mesajlaşalım, kontak kuralım, birbirimizi sevelim sayalım :)
50 entry daha
hesabın var mı? giriş yap