Slide 1

Slide 1 text

RUBY 101 Ruby Programlama Dili ve Ruby Ekosistemi Tayfun Öziş ERİKAN, Genel Koordinatör Lab2023 Bilişim Teknolojileri AŞ [email protected] - @toziserikan

Slide 2

Slide 2 text

Ben kimim? • “Lab2023” Kurucu ortağı & Genel Koordinatör • “Bulutfon” Kurucu ortağı • Web geliştirici • Ruby / Rails , ExtJS, Sencha Touch, Sass, Compass • Front-end & Graphic, UI, UX • Native & Web Tabanlı Mobil Geliştirici • [email protected] - @toziserikan • www.tayfunoziserikan.com

Slide 3

Slide 3 text

–Matz “Dünyadaki tüm programcılara daha yaratıcı olmaları, programlardan keyif almaları ve mutlu bir geliştirme yapmalarını istiyorum…”

Slide 4

Slide 4 text

Ruby nedir ? • Ruby programlama dili 1993 yılında Yukihiro Matsumoto (Matz) tarafından, Perl, Python, Smalltalk, Eiffel, Ada ve Lisp gibi dillerden esinlenilerek geliştirilmiştir. • Bu dillerin eksilerini atıp artılarını alarak kendi tarzını yaratan Matz, koddan çok işinize odaklanabileceğiniz ve okunabilirliği yüksek, sade ve keyifli bir programlama dili yaratmıştır. Bu kadar sade bir dil olmasına rağmen altyapısı oldukça güçlü bir programlama dilidir. • Ruby programlama dilinin ilk göze çarpan özelliği ingilizceye çok yakın ve okunabilirliği çok yüksek bir dil olmasıdır. Bu da öğrenme sürecini hızlandırmaktadır.

Slide 5

Slide 5 text

Neden ruby? 3.times { puts “We love ruby!” }

Slide 6

Slide 6 text

Neden ruby? • Basitlik, sadelik ve anlaşılabilirlik • Nesne yönelimli olması. Herşey nesne! • Öğrenmesi kolay • Her platformda çalışabilir • Birçok dilde satırlarca kodla yaptığınız işi ruby’de çok az satırla yapabilirsiniz • Ekosistemi çok güçlü

Slide 7

Slide 7 text

Ruby ile neler yapabilirsiniz ?

Slide 8

Slide 8 text

Mobil Uygulama

Slide 9

Slide 9 text

Web Uygulamaları

Slide 10

Slide 10 text

Web Uygulamaları

Slide 11

Slide 11 text

Robotik - Elektronik

Slide 12

Slide 12 text

Ruby Gems

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

The Ruby Toolbox

Slide 15

Slide 15 text

Ruby Temellerine Göz Atalım

Slide 16

Slide 16 text

Nesneler Ruby’de herşey bir nesnedir. String, Integer, Array, ActiveRecord::Models v.b.

Slide 17

Slide 17 text

Methodlar (Fonksiyonlar) Methodlar nesnelerin eylem veya iş yapan parçacıklarıdır. “Tayfun”.reverse => “nufyaT” 3.even? => false

Slide 18

Slide 18 text

Methodlar (Fonksiyonlar) Methodlar çoğu zaman parametre alırlar. Parametreler genellikle parantez içinde kullanılır. “Ben yürümeyi severim.sub(“yürümeyi”, “uyumayı”) => Ben uyumayı severim.

Slide 19

Slide 19 text

Çekirdek Methodlar Bazı methodlar heryerden erişilebilir. gets # terminalden string okur puts “hello” # terminale çıktı verir exit # programdan çıkar

Slide 20

Slide 20 text

Methodlar (Fonksiyonlar) Kendi methodlarınızı tanımlayabilirsiniz. “Tayfun,”.say_hi => Tayfun merhaba!

Slide 21

Slide 21 text

Method zincirleme Methodları ardı ardına çalıştırabilirsiniz. “Hello dlrow”.reverse.sub(“dlrow”, “world”).capitalize => "World olleh"

Slide 22

Slide 22 text

Değişkenler Değişkenler programda daha sonra kullanmak üzere veri saklamak için kullanılır. Basit bir kelime ile tanımlarsınız. İstediğiniz zaman ve yerde değişken tanımlayabilirsiniz.

Slide 23

Slide 23 text

Strings Text saklamak için kullanılan değişkendir. (Kelime,paragraf v.b.) “rail”.lenght => 4 “rail”.reverse => liar “rail”.capitalize => Rail “Ruby on” + “rails”.capitalize => Ruby on Rails “Ruby on rails”.split(“”) => [“Ruby”, “on”, “Rails”]

Slide 24

Slide 24 text

Array Liste türündeki veri kümeleridir programlama_dilleri = [“ruby”, “python”, “lisp”, “ada”] => [“ruby”, “python”, “lisp”, “ada”] programlama_dilleri.count => 4 programlama_dilleri.sort.join(“, ”) => ada, lisp, python, ruby programlama_dilleri[2] => lisp

Slide 25

Slide 25 text

Hashes key / value şeklindeki veri türleridir books = {“title” => “Harry potter”, “author” => “J.K. Rowling”, “page_count” => 320} book[“author”] => J.K. Rowling

Slide 26

Slide 26 text

Try ruby! Yeterince konuştuk biraz da kod yazalım :)

Slide 27

Slide 27 text

Bazı Kaynaklar • http://ruby-lang.org • http://rubygems.org • http://bundler.io • https://github.com/ruby • https://www.ruby-toolbox.com/ • https://github.com/lab2023/playbook/blob/master/development/ruby.md • https://github.com/lab2023/kamp2013/blob/master/KAYNAKLAR.md • Ruby Turkiye - http://www.rubyturkiye.org

Slide 28

Slide 28 text

Teşekkürler Soru-cevap Tayfun Öziş ERİKAN, CTO Lab2023 Bilişim Teknolojileri AŞ [email protected] - @toziserikan