Bu hafta yaptıklarıma şöyle bir göz gezdiriyim..
İlk gün : 4Primes’ın bir mail listesi mevcut, burası önceki stajyerlerin projeleriyle ilgili konuları ya da merak ettikleri şeyleri paylaştıkları, fikir alışverişi yaptıkları bir platform. İlk gün bu mail listelesini okudum.
İkinci gün : Bu şirkette naylon staj yok :) Staj boyunca her stajyerin bir projesi oluyor. Projemi belirlemeden önce bütün projelerde Play Framework kullanılacağı için ve ben bu konuya aşina olmadığım için öncelikle bu Framework’ü öğrenmeliydim. Bu gün ve diğer 3 günlük uğraşım bu olacaktı.
Neler yaptım??
Play Framework‘ün kendi sitesinden versiyon 1.2.4’ü indirdim. Bunun yanında Play Framework’de java kullanılıyor, javanın da 1.6 versiyonunu indirdim, bir diğer gerekli araç da, eclipse bunu da javayı kullanacağımız için kuruyoruz. Kurulumlar tamamlandıktan sonra, play’in her yerden çalışabilmesi için ´.bashrc´’ye :
export PATH=' play'in kurulu olduğu yol' :$PATH
ayarın tanımlanması için bilgisayarı açıp kapatmamak için(ayarların etkinleşmesi için) şu komutu komut satırına yazıyoruz:
source .bashrc
play’in kurulu olduğu dosyamızın içine girip,güncelleme için:
$ play deps --sync
uygulamamızın çalışacağı klasörün içine de eclipse de projemizi görebilmemiz için aşağıdaki komutu çalıştırıyoruz:
$play eclipsify
$play run
´play run´ ile de play’i çalıştırmış oluyoruz.
Eclipse’i ilk açtığımızda karşımıza
ekranı geliyor. Eclipse’i açmadan önce bir yerde workspace adlı bir dosya açmamız gerekiyor ve bu ekran geldiğinde de o dosyanın yolunu seçmeliyiz çünkü eclipse çalışmaları o dosyaya depoluyor. Bu adımdan sonra play projemizi açmak için:
import -> general -> existing project into workspace
select root directory -> browse -> proje_adı
Eclipse, java, play.. Bunlar daha önce haşır neşir olmadığım araçlardı. Kurulum kısmı geçtikten sonra play’i kurcalama zamanı gelmişti.. Play ile çalışmanın güzel yanı, bir deneme yapınca hatanı ya da yaptığını anında kontrol etme fırsatının olması mesela; application.java’da bir değişiklik yapıp kaydettikten sonra tarayıcımızın 9000 portu çalıştırdığımızda sonucu direkt olarak görebiliriz. Play kendi içindeki ´H2´ adlı bir SQL veritabanı yönetimi sistemi kullanıyor.
/conf/application.conf
içinde, db=mem
satırının komentini kaldırdığımızda ´in_memory´ veritabı kullanıyoruz yani, verilerimiz bellekte tutuluyor. Böylelikle Play uygulamamızı açtığımızda verilere ulaşabiliyoruz, uygulamayı kapattığımızda ulaşamıyoruz.
Uyarı
Hemen burada kendi yaptığım bir hataya düşmemeniz için uyarı da bulunayım. ´Play run´ komutu girdikten sonra eclipse de çalışmaya başladım.localhost:9000 porttan yaptıklarımı kontrol ediyordum derken bum! localhost’da hata almaya başladım kurcaladım,adımları baştan yaptım düzeltemedim, en sonunda bilgisayara reset attım düzeldi fakat sorunu bulamadım. Ertesi gün Umut abi’ye sorduğumda sorunu ve çözümünü anladım: Ben ´play run´ diyip çalıştırdığım süreci tekrar çalıştırmaya çalışmışım, yani terminali kapatmışım fakat process hala arkada çalışıyor ve ben üstüne yeniden play run dediğimde hata veriyormuş.Çözüm: Süreci nasıl sonlandıracağız?
$ps aux |grep java :içinde java geçen process isimlerine bakıyoruz.
$kill -9 process number
ilk komutun çıktısındaki verilerden java processinin numarasını buraya yazarak o süreci sonlandırıyoruz. Bu kadarcık.
Play’de oluşturduğumuz projemizin içindeki dosyalara göz gezdirecek olursak:
app
Controller bir java sınıfıdır. Bir HTTP (request) isteği alındığında action çağırılır. Action methodu HTTP isteğinden gelen ilgili veriyi ayıklar,okur ve model nesnesini günceller ve HTTP yanıtı(response) ile geri gönderir.
Burada veri yapıları ve her uygulama işlecinin işlemleri yer alır.
Burada HTML,XML,JSON gibi model sunumu yapan şablonlar yer alıyor.
Play (request-response) istek-yanıt mantığıyla çalışır. 1.HTTP isteği framework tarafından alınır. 2.Router bileşeni bu isteği kabul edebilecek en uygun router’ı bulmaya çalışır. 3.İlgili uygumala methodu yürütülür ( controller) . 4.Şablon dosyası oluşturulur ( render,model) . 5.Action methodunun sonucu HTTP response olarak yazılır.
Routerdan bahsettik peki bu router nedir, nerede bulunur? conf içinde iki adet konfigürasyon dosyası vardır.
routes :Rota tanımlama dosyasıdır.
Resimler, css stil dosyaları ve javascript dosyaları burada bulunuyor.
Play Framework’un sitesinden Bu adımı ve devamındaki 11 adımı okuyarak kendiniz de uygulayabilir, kolaylıkla geliştirebilirsiniz.