Lütfen, "Sık Sorulan Sorular" sayfasını dikkatli bir biçimde okuyun.


27 Ocak - 3 Şubat
2018
Karabük Üniversitesi

       

Ana Sayfa

Kurs Listesi

Güncellemeler için takip edin.

Ruby on Rails ile Web Programlama

Kursun amacı katılımcıları Ruby ve Ruby on Rails ekosistemi ile tanıştırarak bu araçlarla web uygulaması geliştirme süreçlerini ögrenmelerini hedeflenmektedir. Bunun yanı sıra, proje yönetimi, sürüm kontrol sistemleri, versiyonlama, MVC, ORM, RESTful vb. temel kavramlar ve uygulamaların web sunucusuna yayınlanması gibi aşamalarda bilgi sahibi olmalarını sağlamaktır.

Kurs Sorumlusu/Sorumluları: Tayfun Öziş Erikan
Eğitmen/Eğitmenler: Tayfun Öziş Erikan, Anıl İyidoğan

Eğitmene iş günlerinde izin vererek kursun yapılmasına sağladığı katkıdan ötürü Lab2023 Bilişim Teknolojileri AŞ’ye teşekkür ederiz.

Katılımcılar için ön-şartlar:

* Temel ruby bilgisine sahip olmak
* Web teknolojileri konusunda bilgi sahibi olmak (HTTP, HTML, CSS, JS, SSL, GET/POST, Cookie, vs)
* OOP: Object-oriented programming – Nesne yönelimli programlama bilgisine sahip olmak
* Başka bir dilde MVC, ORM tasarım şablonlarını kullanan frameworkler kullanmış olmak
* Herhangi bir VCS kullanmış olmak ve tercihen Git biliyor olmak
* Bir GitHub hesabına sahip olmak
* Temel bash kabuğu bilgisine sahip olmak ve en azından chmod, tail, nano veya vim gibi temel konsol
araçları basit düzeyde kullanabiliyor olmak.

Katılımcıların kursa getirmesi gereken donanım/yazılım:

* 30–40 dk sürecek http://tryruby.org serisini bitirmek.
* 15–20 dk sürecek http://try.github.io serisini bitirmek.
* Geliştirme ortamlarının hazırlanması. Bu işlem için aşağıdaki adımları takip edebilirsiniz.
* Ubuntu GNU/Linux dağıtımını http://www.ubuntu.com/download/desktop adresinden bilgisayarınıza kurmak.
* Eğer Ubuntu kuracaksanız, performans problemleri yaşamamak için işletim sistemini, sanal makine yerine, bilgisayarınızın herhangi bir bölümüne kurmanız önerilir.
* Ubuntu veya OS X için https://github.com/lab2023/builder adresinde bulunan bash kurulum scripti’ni kullanınız.

Kurs İçeriği:

Başlangıç
* Çevik programlama araçları
* Git
* GitFlow – http://danielkummer.github.io/git-flow-cheatsheet/index.tr_TR.html, http://nvie.com/posts/a-successful-git-branching-model/
* Semver – https://github.com/lab2023/semver/blob/master/semver_tr.md
* Huboard Kanban – https://github.com/lab2023/playbook/blob/master/development/cevik_proje_yonetimi.md#huboard
* Temel ruby bilgileri
* Ruby tanıtımı ve genel özellikleri
* Irb konsol ile ruby kullanımı
* RubyGems – Ruby Paket Yöneticisi
* Bundler
* Alternatif konsol: Pry
* Ruby & Rails kaynaklarının paylaşılması
* Geliştirme ortamlarınında problem yaşayan öğrencilerin kurulumlarının tamamlanması

Rails İle Isınma Turları
* Rails Doktrini: Ruby on Rails İlke ve Görüşlerini Anlamak
* Rails İçin Gereken Temel Bilgiler
* MVC
* REST ve RESTful
* DAO ve ORM
* Rack Middleware (Basit bir web uygulaması hazırlanacaktır)
* Rails’e Hızlı Başlangıç
* Rails Guides tanıtımı ve kullanımı
* Rails nedir?
* Rails’i kurmak
* Yeni bir rails projesi oluşturmak
* Bir blog uygulaması oluşturmak
* İlk rails uygulamanıza “Merhaba!” demek
* Uygulamayı geliştirmek ve detaylandırmak
* Uygulamaya ikinci bir model oluşturmak
* Kodunuzu iyileştirmek ve sadeleştirmek (Code refactoring)
* Yorum eklemek ve yorumları silmek
* Blog uygulaması için güvenlik ayarları
* Scaffolding

Temel Rails Bileşenleri
* Models (Model Katmanı)
* Active Record temelleri
* Rails Database Migrations
* Active Record Validations
* Active Record Callbacks
* Active Record Assocations
* Active Record Query Interface
* Views (View Katmanı)
* Action View genel bakış
* Layouts & Rendering in Rails
* Action View Form Helpers
* Controllers (Controller Katmanı)
* Action Controller genel bakış
* Routing ve router kullanımı

Derinlemesine Rails
* Active Support temel bileşenleri (Hızlı bakış)
* Uluslararasılaşma (I18n) API
* Action Mailer temelleri
* Güvenlik (Security) (Hızlı bakış)
* Hata ayıklama (Debuging) (Hızlı bakış)
* Konfigurasyon (Configuring) (Hızlı bakış)
* Komut satırı araçları ve rake görevleri (CLI Tools & Rake Tasks)
* Önbellekleme (Caching) (Hızlı bakış)
* Varlık yönetimi (Asset Pipeline)
* Rails’de JavaScript ile çalışmak (JavaScript in Rails)
* API uygulamaları için Rails’i kullanmak
* Action Cable ile Rails’de WebSocket kullanımı
* Rails için rack (Hızlı bakış)

Araçlar ve Alet Çantası
* Kullanılan bazı GEM’lerin tanıtımı
* Haml ve haml-rails
* Compass ve compass-rails
* Sass ve sass-rails
* Devise
* Simple Form
* Twitter Bootstrap ve Bootstrap-sass
* Responder
* Whenever
* Capistrano
* Daha fazlası için bkz: https://github.com/lab2023/playbook/blob/master/development/ruby.md#ruby-gems, https://github.com/kebab-project ekosisteminin ve GEM’lerinin tantılması
* Cybele
* Katip
* Hierapolis ve hierapolis-rails
* Blankable
* Kangal
* ve diğerleri…

Uygulamanızın Yayınlanması (Deployment)
* Bu bölümde Rails uygulamanızın Heroku’ya ve standart bir VPS’e gönderilmesi anlatılacaktır. Deploy öncesi uygulamanız local ortamda Production’a çekilecek ve test edilecektir.

Heroku
* Heroku Toolbelt / Heroku GEM kurulumu
* Heroku hesabı açılması
* Heroku yönetim konsolunun tanıtılması
* Heroku’ya deploy

VPS
* Standart bir VPS’e deploy için https://github.com/lab2023/playbook/blob/master/development/server.md
kaynağından bahsedilecektir.

Topluluk (Community)
* Açık Kaynak felsefesi
* Rails’in gelişimi ve topluluğun katkısı
* Rails’e nasıl katkı sağlarsınız?
* Birlikte neler geliştirebilirsiniz ve açık kaynaklı projelere nasıl katkı sağlarsınız?

Soru & Cevap
Bu bölümde katılımcıların kurs hakkındaki genel soruları cevaplandırılacaktır.