8 Ekim 2013 Salı

Ruby Dersleri Basliyor

Ingiltere'de butun egitimler mi boyle yoksa bu kursa ozel mi boyle bir durum var tam cozemedim ama bizdeki egitim anlayisindan cok farkli. Fazlasiyla bocaladigimi soyleyebilirim.

Biz genelde bir konunun anlatilmasi ve o konu ile ilgili alistirmalar yaparak pekistirilmesi uzerine sistemi kurmusuz. Burada birden bire duvara tosladim. cunku derse girdik hic birsey anlatilmadan alistirmalara baslandi. Dogal olarak hic birsey anlatilmadigi icin ne yapacagimi bile anlamam 15 dakika surdu.

Biraz intibak sorunu yasasam da sorunu cabuk atlattim.

Ruby ogrenmek sandigimdan daha kompleks bir konu. Sadece bir programlama dilini ogrenmekle bitmiyor. .NET programcisi olarak uzak kaldigimiz bir cok konunun icine de mevburen soktugu icin ayni anda sunlari da ogrenmek gerekiyor

  •  UBUNTU Linux
  •  GitHub
  •  RSPEC (Unit Test)
  •  Cucumber (test)
  •  Ruby
  •  Ruby On Rails

Yani kisaca ayri bir disiplin diyebiliriz.

Simdi herseye baslamadan once kisaca bir GitHub konusuna girmekte fayda var.

GitHub


Neredeyse bundan sonraki her adimda github ile kolkola gidecegiz. .NET ile tek tabanca program gelistirirken ihtiyacini hic hissetmedigim ama ekip olarak calismaya baslar baslamaz sorunu yasadigim ve cozum olarak cok uzaklara gitmeden microsoft'a basvurdugum bir konu var "Kod Paylasimi" ve "versiyon kontrolu"

Onceleri yalniz basima proje gelistirdigim icin gunluk backup almak versiyon kontrolu acisindan yeterli oluyordu. Hatta bu konuda simdi adini bile hatirlamadigim ama diski istenilen tarih ve saate donduren programlar da kullanmistim. Ekip olarak proje yazarken de r4gl veya ASP gibi projelerde calistigimiz icin sinirlarimizi belirler ve birbirimizin koduna dokunmadan projeyi yazardik. Ancak ilk defa kod baylasimi ve ekip olarak bir proje gelistirmeye giristigimde daha kompleks bir yapiya ihtiyac duyduk. Microsoft Visual Source Safe kurulumu yaptigimizda herseyin cozuldugunu gordum ve daha da fazla arastirmaya girismeden bunun uzerinde yurumeye basladik. Basitce bir sunucuya yaptigimiz isleri gonderiyor ve versiyon kontrolu, cakisma kontrolu ve kod arsivini temin etmis oluyorduk. .NET ile tam uyumlu oldugu icin kullanmasi da cok rahatti.

Server gene sirkette olan bir baska PC idi. yaklasik 3 sene hic sorun yasamadan bu sekilde proje gelistirdik. Ama takim kucuktu ve gene aslinda birbirimizin ayagina basmamayi konusarak hallettigimiz icin butun fonksiyonlari kullanmamistik.

Sonra Ingiltere'ye ilk geldigimde SVN ile tanistim. Ayni isi baska bir program ile yapiyorduk. Yine Visual Studio ile entegre calistigindan sorun olmadi. nispeten hizla adapte oldum.

Daha sonra sirket politikasi geregi SVN yerine GIT ile calismam gerekti. Sirketin geri kalani zaten git uzerinde oldugu icin beni de kolayca aldilar. Ama bu sefer de butun projede tek basima calistigim icin GIT'in butun nimetlerinden faydalanmadim. Sadece kendi kendime isi biten kodlari gonderiyordum o kadar. Sonra bir arkadas geldi yanima ama 2 projeyi birer birer paylasinca yapisal olarak gene birsey degismedi. Ben de islerin yogunlugundan pek uzerine dusmedim GIT'in.

Ve simdi Ruby'de karsima tum fonksiyonlari ile birlikte cikti. Daha once farketmedigim bazi farklari kisaca soyle anlatabilirim.

Bir kere klasor yapilanmasi farkli. Diger yapilarda bir kod gelistirilen ortam ve bir de sunucu varken bunda durum biraz daha farkli. Arada bir katman daha var.

Offline calismaya imkan veriyor herhangi bir zamandaki herhangi birinin yaptigi katkiya hizla bakmak mumkun.

Web tabanli yapisi ile kodlari incelemek, kimin ne yaptigini bulmak mumkun.

O kadar cok fonksiyon var ki, hersey ciddi ciddi dusunulmus. Ne yapmak istiyorsaniz ona uygun bir komut mutlaka var.

Acik kaynak kodlu. Kodlari paylasmak sartiyla ucretsiz. (aylik ucretini odeyip kimsenin goremeyecegi projeler olusturabiliyorsunuz.)

Simdilik oncelikli yapmaniz gereken eger bir github hesabiniz yoksa onu olusturmak. www.github.com adresinden kayit ucretsiz  oluyorsunuz

Ilk calisma ortaminin hazirligi

GitHub'a uye oldunuz. web'de git uzerinde bir repository olusturuyoruz.
olusturulan repository icin sagdaki resimde gordugunuz gibi bir adres olusacak onu kopyalayin ileride yapistiracagiz.

Simdi "code" diye bir klasor olusturup komut satirindan cd ile icine giriyoruz.

touch readme
readme diye bos bir text dosyasi olusturduk

subl readme
readme dosyasini editor ile actik icine birseyler yazip save edip kapatiyoruz.

git init
ile bu klasorun git ile ilk iliskisini baslatiyoruz

git add .
klasordeki herseyin git'e yollanacagini soyluyoruz.  (evet su anda bos)

git commit
git'e gonderilmek uzere isaretliyoruz. bu asamada bu gonderime dair notlari kaydetmek uzere bir metin dosyasi acilir. Aciklamalari yazip kaydediyoruz.

git remote add origin https://github.com/GitUserName/RepositoryName.git
bilgisayardaki klasor ile github.com'daki klasoru iliskilendirdik.

git push -u origin master
klasordeki son commit edilmis olanlari git'e gonderiyoruz. (git kullanici adi ve parolanizi soracaktir)

temel islemler bunlar.. Klasore yeni kodlar ve alt klasorler ekledikce "gid add ."  ile  eklemeyi unutmayin. sonra gene git commit'den itibaren tekrar ederek yuklemeyi yapabilirsiniz.

Ilk Ders


ilk dersin icerigini size aktararak Ruby ile tanismaya ne dersiniz.

oncelikle koans.heroku.com adresine girerek onunuzdeki iki yoldan birini secmeniz gerekiyor. Koans bunca yildir bu iste olmama ragmen kacirmis oldugum konulardan biri.

Size bir dil ile ilgili cesitli konseptleri anlatan kodlar verilerek bosluklara komutlar, islemler, sonuclar yazarak hata veren kodu hatasiz hale getirme yontemi diyebiliriz.

Yukarida verdigim adresteki koanlari bilgisayariniza indirerek kodlar uzerinde calisabilir veya web uzerinden cozerek ilerleyebilirsiniz. (acikca soyleyeyim cok kisa surmuyor tamaminin bitmesi icin 2-3 gun harcayabiliyorsunuz dolayisiyla bilgisayariniza indirmekte fayda var.) indirmek icin link sayfanin en altinda veya bu adreste http://rubykoans.com/

Benim tavsiyem direk koda atlamadan once biraz okumak. O yuzden ruby-doc.org adresine bakabilir veya http://tutorials.jumpstartlab.com/projects/ruby_in_100_minutes.html adresinden 100 dakikada ruby konusunu okuyabilirsiniz. Gercekten 100 dakikada ana hatlari ile bazi konulari anlayabiliyorsunuz.

Biz indirdik o yuzden sizin de indireceginizi farzediyorum.. indirdiginiz zip dosyasini onceden hazirladigimiz klasore aciyoruz.

rake 
komutu ile indirilan koanlar calistirilip adim adim hatalarin ayiklanmasi saglanir.


boylece unit test olayina baliklama atlamis olduk.






Hiç yorum yok:

Yorum Gönder