Ruby 101 Kitabı
Önsöz
Kitap yazmak hep hayalini kurduğum bir şeydi. Hem kendi işime yarayacak hem de başkalarının işini görecek bir kitap olmalıydı. Aslında bir sene önce bu işe soyundum ama bir türlü fırsat bulamadım.
Kafamda kabaca planlar yaptım hep ama son noktayı bir türlü koyamadım. Gitbook.io bu konuda çok işime yaradı. Hem beni fişekledi hem de GitHub ile kolay entegre olması kendimi organize etmem açısından çok rahat oldu.
Hep O'Reilly'nin Pocket yani cep kitaplarına bayılmışımdır. Hem boyut itibariyle hem de içerik anlamında. Sürekli yanınızda taşıyabileceğiniz, içinde konusuyla ilgili her şeyin kompak bir şekilde bulunduğu kaynak.
Amacım, bu kitaplar tadında, her zaman yanınızda bulunabilecek, tabiri caizse başucu kitabı hazırlamak.
Kitabı hazırlarken en çok zorlandığım kısım İngilizce'den anlamlı Türkçe metinler çıkartmak oldu. Bazı şeyleri İngilizce olarak ifade etmek çok kolay, fakat bazı durumlarda tam Türkçe anlamlı karşılık bulmak gerçekten zor oluyor.
Prensip olarak Developer (Yazılım Geliştiren Kişi) denen insanın default olarak İngilizce bilmesi gerektiğine inanıyorum. Neden? Örneğin milyonlarca açık-kaynak projenin bulunduğu GitHub'da herkes İngilizce konuşuyor.
Takıldığınız bir konuda, GitHub'da yorumları okumanız gerekecek. Hatta bazen siz bir şey soracaksınız. Issue'lara bakacaksınız, Pull Request yapacaksınız. Gördüğünüz gibi bir cümlede iki tane İngilizce terim. Bunlar evrensel. Bilmemiz gerekiyor yoksa çuvallarız :)
Özellikle pek çok şeyi olduğu gibi İngilizce olarak kullanmak istedim. Tabii ki Türkçe anlamını da yazdım fakat, genel olarak kullandığım terminoloji Ruby ve yazılım geliştirme terminolojisi.
Örneğin Constant dediğimde bunun ne anlama geldiğini anlamış olmanız gerekiyor. Ya da Instance dediğimde, bunun sınıftan oluşturulmuş bir nesne olduğunu anlamanız gerekiyor.
Yazılım dünyası ne yazık ki İngilizce ve tüm kaynaklar da İngilizce. Bu bakımdan orijinal kelimeleri ve terminolojiyi öğrenmemiz, bilmemiz şart :)
Lisans Mevzusu
Prensip olarak, GitHub'a Public olarak koyduğum her şey, herkes tarafından her türlü şekilde kullanılabilir. Bence Public olarak sürülen bir şey (ki ben eski Amiga'cı Public Domain'ci biriyim) herkesin tepe tepe kullanabilmesi amaçlı olmalıdır.
Her türlü lisans olayına karşıyım. Eğer bir tür lisanslama yapacaksanız kendinize saklayın :)
Bu kitap ananızın ak sütü gibi hepinize helal olsun. Umarım işinize yarar!
Kitabı online olarak okumak için:
https://vigo.gitbooks.io/ruby-101/content/
Tamamlanma Durumu (%78)
Bölüm 1 (%94)
- Ruby Hakkında
- Kurulum
- İnteraktif Kullanım
- Ruby Komutu ve Parametreleri (%98)
Bölüm 2 (%100)
- Syntax (Söz Dizimi) ve Rezerve Kelimeler
- Değişkenler
- Ön Tanımlı ve Pseudo (Gerçek Olmayan) Değişkenler
- Operatörler
- Global Constants (Genel Sabitler)
Bölüm 3 (%100)
- Methods (Fonksiyonlar)
- Blocks (Bloklar)
- Proc ve Lambda
- Conditional Statements (Koşullar)
Bölüm 4 (%100)
- Object
- Number
- String
- Array
- Hash
- Symbol
- Class ve Module
Bölüm 5 (%58)
- Enumeration ve Iteration
- Ranges
- File System ve IO (Dosya Sistemi) (%90)
- Exception Handling (--)
- Kernel Modülü (--)
Bölüm 6 (%50)
- Monkey Patching
- Regular Expressions (--)
- Time ve Date Nesneleri (%50)
- Ruby Paketleri: RubyGems
- Paket Yöneticisi: Bundler (--)
- Komut Satırı (Command-Line) Kullanımı (--)
- Meta Programming
Kod Yazma Tarzı (Style Guide) (%98)
- Değişken Tanımlamaları
- Blok Tanımlamaları
- Syntax Tanımlamaları
- Semantik Tanımlamalar
- Yanlış ve Doğru Kullanımlar
- İsimlendirmeler
Gerçek Hayat Ruby Örnekleri (%25)
- Neden Ruby?
- Ruby ve TDD/BDD/CI (--)
- Kendi Rubygem'imizi yapalım! (--)
- Sinatra ve Web (--)