Linux Yaz Kampı - 2

Linux Yaz Kampı - 2

Bolu’da yaz kamp devam ederken, teorik eğitim sona ermişti. Artık kod yazmanın zamanı gelmişti. Yazacağımız uygulama Tekir ön muhasebe projesiydi. Bu arada sınıftaki öğrenci sayısı da azalmaya başlamıştı. Daha sonra ekiplere ayrıldık. Toplam 5 ekip vardı. Ben de controller (Java) sınıfı yazmak istediğim için ekip4’te yer almak istedim. Proje içerisinde kod satırı / gün sayısı hesabına göre az iş yapsak da Scrum çevik yöntemini uyguladık. Ekip olarak biz de çok az iş vardı. Öncelikle basit bir temel ayar sayfası ve JournalEntry nesnelerini kontrol eden bir Api yazacaktık. Ben tabiki Api yazan ekipte yer aldım. Ekibimiz 10 kişiydi, 6 kişi Api, diğer 4 kişi ise ekran sayfası üzerine yoğunlaştılar. Başlangıçta çok hevesliydim. Teorik kısımda kafamda soru işaretleri olduğu için ekip içerisinde aktif olmak istedim. İşe başlamadan önce JournalEntry sınıfı ve ilişkili bütün sınıfların UML diyagramlarını çizerek Hakan Hoca’nın yanına gittim. Detaylı bir şekilde neleri kontrol edip edemeyeceğimizi öğrendik. Aslına bakarsanız oturup tek başıma 20dk da belki de daha kısa sürede bitirebileceğim bir işti :) Fakat diğer ekip arkadaşlarımın daha iyi öğrenmesi amacı ile ben kod yazmak istemedim. 6 kişi ile bir yumurta taşıyacaktık. Neyse işleri tam orta yerinden 2’ye böldük. 6 kişi, 3 er kişilik alt ekiplere bölünmüştü. Mehmet ve Nursel bizim ekipteydiler. Öncelikle Nursel’i bilgisayar başına geçirdik. Mehmet ve ben de yanında yazdırmaya devam ediyorduk. Nursel’den sonra Mehmet bilgisayar başına geçti ve işi kısa sürede bitirdik. Diğer alt ekip halen devam ediyordu. Bu sefer ben geçtim bilgisayar başına refactoring konusunda sadece fikir sahibi olmama rağmen kendi kodlarımıza refactoring uyguladım. Daha anlaşılır ve daha sade bir kod yapısı oluştu.

Diğer alt ekipte kendi kodlarını tamamladıktan sonra sınıfımız oluşmuş oldu. Fakat bu controller sınıfının (JournalEntryApi) doğru yazıp yazmadığımızı test etmemiz gerekliydi. Bunun için birim testleri uygulayacaktık (JUnit). Test güdümlü yazılımı (Test Driven Development) çok merak ettiğim için baya sevinmiştim. JournalEntryApi sınıfı ile ilgili bir detaya yer vermek istiyorum. Hataları bir liste içerisinde tutuyorduk ki ekip5 de verilerin XML, SOAP, MQ gibi servislerle import edilmesini sağlıyordu. Sonuçta hata varsa, hata kodlarına göre işlem yapmaları gerekmekteydi. Hem testlerde rahat edebilmemiz için hem de ekip5’in işini biraz daha kolaylaştırmak amacı ile kendi hata modelimizi yazdık. Bu modelimiz basit bir şekilde bir hata numarası ve hata açıklaması vardı. Testleri yaparken de sadece hata numarası ile yapacaktık elbette. Hata modelini yazarken bir ekip arkadaşımız, bana laf sokmaya kalkınca moralim baya bir bozuldu. Sonuçta ben de bir yazılım geliştiricisi olmak için çalışan biriyim. Yanlış da yapabilirim ki birçok hatam vardı elbette. Ama yine de kendi mesleğime, kişiliğime laf sokulması kesinlikle kabul edemeyeceğim bir olaydır. Yine kendisini rezil etmemek için olayı açıklamayacağım.

Moralim bozulunca geri çekildim ve ne yapabilecekler diye uzaktan bekledim. Ekip içerisindeki heyecanımın yok olduğunu ekiptekilerin bir kısmı farketti. Mehmet, JUnit ile ilgili güzel veriler edindi. Kafama takılan birkaç şeyi ona sordum. Sami ise JUnit testi yazmaya çalışıyordu. Bu arada Hakan hoca JUnit’i nasıl kullanacağımızı basitçe anlatmıştı. Günün sonunda kodları incelediğimde çok az kişinin uğraş verdiğini gördüm. Ben ise hayatımda hiç JUnit testleri yazmamıştım. Kendi kendime bu iş başa düştü dedim. Tabiki Mehmet ve Nursel’e de (kendi ekibime) gelin başlayalım dedim. Onların da işleri vardı. Saat akşam 8 civarıydı. Sen yaz sonra bize anlatırsın dediler. Ben de oturdum, kendi test sınıfımı yazmaya başladım. Tüm sınıfın testini yapacaktım. Fakat ekipteki arkadaşlar, “Tüm işi sen yaptın, bize bir iş bırakmadın.” dememeleri için kendi sınıfımı sürüm takip sistemine göndermedim. Test sınıfını yazarken birçok hata düzelttim. Bunları gecenin 2sinde sürüm takip sistemine gönderdim. Moralim bozulduğu için ayrıca ekipte bir sıkıntı çıkmasın diye başka iş almak istemedim. Tabi bu konuda kampın son günü Hakan hocadan fırça da yedik.

Yurttaki ortamımız da güzeldi. Oda arkadaşlarım ile güzel güzel sohbetler ettik, espriler yaptık. Hatta ekip içerisindeki yaşadığım olayı onlara da anlattım baya bir güldük :) Hepsine buradan çok teşekkür ederim onlardan çok şey öğrendim. Bu arada öğrenci hayatım boyunca ilk defa bir yurtta kalmış oldum :)

Başta yazılıma bakış açımı değiştiren Hakan Uygun ve kamp etkinliğini başlatan Mustafa Akgül hocamıza, organizasyonda emeği geçen herkese, yaşadığım sorunlarla uğraşmaktan bıkmayan, kurs içerisinde büyük sabır gösteren Deniz Korkmaz ve Umuthan Uyan’a, özellikle kendi ekibimde ve beraber takıldığım Mehmet, Sami ve Nursel’e bu güzel ortamı bana yaşattıkları için çok teşekkür ederim.

linux yaz kampı eğitim kurs java javaee etkinlik