hoşgeldİnİz!
Ruby on Rails Workshop
Pamukkale Üniversitesi
Kader Sucuk
Information Technology and Services Professional
Yeni Hayat Bilişim A.Ş.
kadersk@gmail.com
@sucuklukfasulye
- Ruby
- Ruby on Rails
- Framework (web çatısı) nedir?
- RESTful nedir?
- MVC nedir?
- Gem nedir, nasıl kullanılır, en yaygın kullanılanlar nelerdir?
- Versiyonlama nedir?
- Uygulama örneği çalışması
-
Barındırma yöntemleri
Ruby
- Dinamik dil
- Başlayanlar için kolay
- Uzmanlar için güçlü
- Object Oriented
- Basit syntax, anlamlı sözdizimi
- Cross platform
Framework
Kullanıcıların
daha sağlıklı ve hızlı kodlama yapabilmesi için kullanılan,
yazılımın iskeletini oluşturan,
proje altyapısıdır.
Neden kullanırız ?
- Tutarlı yapılar üzerine çalışmayı sağlar.
- MVC pattern
- Düzenli yapı, düzenli çalışma
- Altyapı kolaylığı
- Zaman tasarrufu
RESTful
Client-server ilişkisini HTTP protokolü üzerinden sağlamak.
- Basit ve hafif (halihazırda world-wide-web yapıda HTTP üzerine kurulu)
- Mimari esneklik
- Cross-platform
- Yapılacak işlemlerin HTTP methodlar ile ifade edilmesi (POST-PUT-DELETE-GET)
- Kolay anlaşılır
- JSON, HTML, XML, CSV
MVC
- Bir mimari desen (pattern)
- Veri ve gösterimin ayrılması
- Model (M) : Veri özellikleri, veritabanı ile konuşma
- View(V) : Tasarım. Son kullanıcının NASIL gördüğü
- Controller(C) : Model ve View bölümünün konuştuğu yer. Son kullanıcının NE gördüğü.
NEDEN MVC ?
- Düzenli, anlaşılır, sistematik
- Zaman tasarrufu
- Performans
- JSON kullanımı
- Ekip çalışmasını mümkün kılma, kolaylaştırma
- /controller/function URL yapısı ile SEO dostu routing
GEM
Ruby üzerinde yazılmış bir paket yönetimi.
yum, apt-get tarzı bir işlem
en sık kullanılanlar
- devise
- carrierwave
- will_paginate
- pry
- quit_assets
- friendly_id
- capistrano
- cucumber+rspec
- simple_form
- koala
- twitter-bootstrap-rails
-
rails-i18n
Versİyonlama
Değişikliklerin Yönetilmesi
- Majör değişiklik (1.0.0) database, architecture, dil
- Minör değişiklik (1.1.0) yeni özellik(feature), arayüz
- Bug fix, build (1.1.1) yama, hataların giderilmesi
neden yapılır ?
- Takım çalışmasını olanaklı hale getirir
- Kod merkezileşir
- Yazılan kodun sahibi bellidir
- Sunucu güncelleme kolaylığı
Local reposıtory
(Yerel Depo)
remote reposıtory
(Uzaktaki Depo)
COMMIT > PULL > MERGE > PUSH
Öyle bir dünya yok :)
Conflict!!!
Manuel müdahale ile sorunun çözülmesi gerekir.
Gıt
Geliştiricinin en sadık dostu
- Her yerel depo bir uzaktakinin yedeğidir
- Conflict üretme olasılığı azdır
- Hızlı
https://github.com/
https://bitbucket.org/
Populer Rails app hosters
- Heroku http://heroku.org/
- Engineyard https://www.engineyard.com/
VPS yada aws kullanmak İstİyorsak
- Phusion Passenger
- Capistrano