MESUT ÇAKIR | Tüm yazılar etiketlendi 'TDD'

#2015-11-14 Güncesi | Global Day Of Code Retreat

Bir hafta önce facebook üzerinden bir EventBrite adlı site üzerinde pair-programming konusu üzerine bir toplantıya rastladım. İçeriği olağan dışı geldi ve katılma kararı aldım. Bu linkteki adresten kayıt yaptırdım. Kafamdaki ilk düşünce gidip bir kaç insan tanıyıp gelmekti.


Günün Kuralları
  1. Oturum
    1. Her kişi 1 kişi ile Pair olacak ve 45 dakika boyunca bu konunun çözümü üzerine geliştirmelerde bulunacak. Bilgisayarda kod yazan bir kişi olacak diğeri gözlemci olacak.
    2. 45 dakika sonunda tüm kodlar silinecek.
    3. 10 dakikalık Code Retreat için 8-10 kişilik gruplar halinde 45 dakikada yaşadıklarımızın kritikleri yapılacak.
    4. 5 dakika çay ve kahve molası.
  2. Oturum 
    1. Pair olmadığımız yeni bir kişi ile pair olunacak..
      • Buradaki kriter sana bağlı ben C# yazıyordum , Java yazan bir pair buldum. Java üzerinde Eclips ve Test süreçlerini gördüm. #Beğendim.
    2. 45 dakika boyunca çözüm üzerine geliştirilecek. Fakat Bu Sefer Ping ve Pong eylemi kuralı var. Yani Bir yere kadar yazılacak ve arkadaşına pas atılacak oradan arkadaşı alıp devam edecek.
      1. Örnek olarak; GetModelCount() methodu 10 sayısını döndürmesi lazım şeklinde bir test yazdığımı varsayıyorum. Test şuan çalışmıyor çünkü method içi geliştirilmedi. Arkadaşımda alıyor ve method içini gerekli kodlarla dolduruyor. Oda bir test yazıyor ve bana teslim ediyor bende aynı şekilde dönüş yapıyorum. İşi bu şekilde sonuçlandırıyoruz.
      2. Burada iki kişinin o framework üzerinde kod tecrübesi etkili ama sonuç olarak 3-5 kere sonra alışılıyor.
    3. 45 dakika dolar yazılan kodlar silinir.
    4. 10 dakikalık Code Retreat yapılır.
    5. 5 dakika mola.
  3. Yemek Molası - Yemekler Beleş. :)
  4. Oturum
    1. Pair olmadığımız yeni bir kişi ile pair olunacak..
    2. 45 dakika boyunca çözüm üzerine geliştirilecek. Yine Ping ve Pong eylemi kuralı var. Ek olarak bu oturum üzerinde İf, Switch, For, ForEach, While vb. Condition ve Loop kullanılmayacak.
    3. 45 dakika dolar yazılan kodlar silinir.
    4. 10 dakikalık Code Retreat yapılır.
    5. 5 dakika mola.
  5. Oturum
    1. 3 oturum'a ek olarak yazılan her method içi 5 satırdan daha fazla  olmayacak.
  6. Oturum
    1. Yeni bir kişi ile pair olunur. 
    2. Bu oturumda tek kural vardır yanındaki kişi ile sözlü iletişim kurmayacaksın.
Bunları yapacağımız çalışmanın detayları ise şu şekildeydi;
  1. Conway's Game of Life isimli bir algoritma tanıtıldı. Bu algoritmayı bir kağıt aracılığı ile teslim aldık. Kağıt Eklerde Ek1.jpg olarak bulunmaktadır. Buradaki kurallar wikipedia içerisinden belirtilmiş durumdadır. Ancak ben buraya da yazmak istiyorum. Video'dan anlamak için tıklayın.
    • Any live cell with fewer than two live neighbours dies, as if caused by under-population.
      • Yaşayan bir Hücrenin 2'den daha az yaşayan komşusu varsa, Komşusu olmadığından ölecektir.
    • Any live cell with two or three live neighbours lives on to the next generation.
      • Yaşayan bir Hücrenin 2 veya 3 canlı komşusu olduğunda bir yeni cell doğumu olur.(Burada doğum nerede gerçekleşecek sorunu sordum bilmiyorum. Fikrim 3 hücrenin kesişim kümesi olması olabilir.) Burayı daha iyi anlamak lazım.
    • Any live cell with more than three live neighbours dies, as if by over-population.
      • Yaşayan bir hücrenin 3'den daha fazla komşusu olursa fazla komşusu olduğu için ölecektir.
    • Any dead cell with exactly three live neighbours becomes a live cell, as if by reproduction.
      • Ölü bir hücrenin 3 adet komşusu olursa Hayata Döner.
  2. TDD - Test Driven Development veya BDD - Behavior Driven Development kullanımı yapabileceğimiz kısıtlaması getirildi.
    • Benim burada TDD geliştirme ile ilgili biraz fikrim vardı fakat BDD ilk defa duymuştum.
Günün Kazanımları;
  1. Thought Works Şirketini tanıdım. Çalışanları çok sempatik ve zeki genç insanlardı. Mutlaka iletişimde olunması gereken insanlar.
  2. TDD öğrenmek için Kent Beck adlı adamı takip edebileceğim söylendi. Ayrıca kendimde bir eğitim buldum.
  3. CoderDojo adında çocukların yazılıma kazandırılması için ileriye dönük bir projeden bahsedildi.
    1. Ayrıca MBB ile görüşmemizde @sulhadin arkadaşımında daha önce bahsettiği Code Monkey adlı oyun mantığını çok beğendim.
      1. 15 bölümlük bir seriyi 6 yaşımdaki kızıma sadece 1-2 direktif vererek yaptırmayı başardım. (heyecanlandım)
    2. Karaköy veya Kadıköy tekrar bakmak lazım haftada 2 saatlik seansları oluyormuş çocukların yazılımları ile ilgili ücretlimidir bilmiyorum.
    3. Bize gösterilen Video buradaki gibiydi.
  4. Isaac Asimov ile ilgili bir kaç bilgi edindim.
    1. Ben Robot - IMDB filmi için öneri aldım. İzlemek için tıklayın
    2. System.Core.dll ile makinenin işlemcisine kadar kodlama yapabileceğimi öğrendim.
  5. Şuanki fikrimiz olan Günce yada Haftalık yazma mantığından bahseden @mbb abimizin önerisi ile Serdar Kuzuoğlu adlı kişinin takibine başladım. 
Kendime önerilerim.
  1. Haftanın en az 1 günü algoritma geliştirme çözümleme üzerine geçireceğim. Bunu yaparken TDD kullanmaya özen göstereceğim. SOLİD prensiplerini uygulamayada devam ediyor olacağım.
  2. Haftalık Çalışmalarını @MBB yönetimine benzer şekilde 1 ay dene ve feedbacklerini ver.
  3. Çalışma, Dinlenme, Aile ve Motivasyon zamanlamalarını yapılandırma için bir model oraya koy.