İçeriğe geç →

Python (Django) ile Test Odaklı Geliştirme

True story…

Özet

Test odaklı geliştirme (Test Driven Development) konusuna ilgi duyuyor ve kaynak arıyorsanız, son zamanlarda keşfettiğim ve beğendiğim Test-Driven Development with Python: Obey the Testing Goat: Using Django, Selenium, and JavaScript kitabını tavsiye ederim. Kitabı okuması tamamen ücretsiz. Kitabın haklarını kötüye kullanmamak adına, yazarının da onayını alarak, ilk üç kısmını Türkçe olarak geniş şekilde özetledim. Kitap sadece Python (Django) üzerinden TDD disiplini anlatılmıyor. Okurken bir çok faydalı bilgi edineceksiniz. Bu güzel kitabı ücretsiz olarak sunan Harry’e buradan da teşekkürler (Thanks Harry 😀 )

  1. Python (Django) ile Test Odaklı Geliştirme (TDD) – 1
  2. Python (Django) ile Test Odaklı Geliştirme (TDD) – 2
  3. Python (Django) ile Test Odaklı Geliştirme (TDD) – 3

İbretlik Bir Hikaye

Belki sizin de başınıza gelmiştir. Bir ortamda komik bir hikaye anlatılır ve siz de dahil herkes gülerken, siz içinizden ağlıyorsunuzdur. Çünkü o hikayedeki baş kahraman sizsinizdir ve aslında insanlar size gülüyordur. Çaktırmamak için gülüyormuş gibi yaparsınız siz de. İşte yazının başındaki caps benim için böyle bir şey…

Profesyonel olarak yazılım geliştirmeye başlamadan önce aldığım eğitimlerden, test yazmanın önemli olduğunu teorik olarak kavramıştım. Fakat bir sorun vardı… Kendimi geliştirmek için, tek başıma geliştirdiğim uygulamalarda test yazmanın önemini tecrübe edecek fırsatı bulamamıştım. Çok cahildim, anında geri bildirim alabileceğim ya da beraber çalışabileceğim insanlar yoktu…

Bir kurum altında çalışmaya başladıktan kısa süre sonra, teorik olarak önemini kavradığım “test yazma”, artık ete kemiğe bürünmüştü. Projeye henüz dahil olmuştum ama ardı arkası kesilmeyen revizyon istekleri geldikçe, uygulamayı bozmadan geliştirmeye devam ettiğimizi anlamamız da zorlaşıyordu. Ufak bir proje olmasına rağmen, gelecekte karşılaşabileceğimiz sorunları kestirmek zor değildi. Bir gün dayanamadım ve “Ben bu oyunu bozarım” deyip, o günkü yazdığım kodlar için unit testler de yazmıştım. O ufak şirket tarihinde bir ilke imza atmıştım, mutluydum fakat yine sorunlar vardı. Test yazmayı bir yandan öğrenirken bir yandan uygulamayı geliştirmeye devam etmek, zaten yavaş olan beni, iyice yavaşlatmıştı. Zaman baskısının yanında başka baskılar da vardı ve ne yazık ki ben kaybettim. Test yazmayı bırakmıştım…

Aradan aylar geçti, uygulama binlerce kişiye ulaşmış, ekip büyümüştü lakin bazı şeyler değişmemişti. Ekipte sadece bir kişi uygulamanın işlevselliğini elle kontrol edip, rapor çıkarıyordu –o da pek uzun sürmedi gerçi. Tabii ki, projenin sağlıklı ilerlemesi ve sürdürebilir olması için bu yeterli değildi. Zaman ilerledikçe, zor ve acı yoldan test yazmanın önemini, ihtiyacını iyice anladım.

Obey the Testing Goat!

Geçtiğimiz günlerde, bu ihtiyaç benim için hayati bir öneme sahip hale geldi. Ayrıca artık yeniliklere daha açık ve anlayışlı bir çalışma ortamına da sahiptim. Dolayısıyla test yazmamak için hiçbir bahanem yoktu artık ve zararın neresinden dönsen kardır diyerek, önceleri kulaktan aşina olduğum TDD (Test Driven Development) için kaynak araştırmasına girdim ve okuması tamamen ücretsiz bir kaynak buldum ve oldukça beğendim: Test-Driven Development with Python: Obey the Testing Goat: Using Django, Selenium, and JavaScript

Kitabı okurken, ilk kısımların epey başlangıç seviyesinde olduğunu fark edince düşündüm ki, eğer kitabın Türkçe olarak özetini çıkarıp paylaşırsam, benim yaşadıklarımı başkalarının yaşamasına engel olabilirim ya da bir şekilde yardımım dokunabilir. Böylece kitabı okurken bir yandan da geniş bir özetini de çıkarmaya başladım. Neredeyse yedinci kısmın sonuna kadar gelmiştim ama kitabın haklarını kötüye kullanmadığımdan emin olmak istedim. Sonuçta okuması ücretsiz bir kitaptı ve Türkçe olarak özetini çıkarıp paylaşmam sorun olmaz diye düşünmüştüm. Böylece kitabın yazarı Harry Percival’a, mail atıp durumu anlattım ve ilk kısım için çıkardığım özeti de örnek olarak sundum.

Özet çıkarmayı biraz abartmıştım ve neredeyse satır satır çeviri yapmıştım. Çünkü kitapta TDD disiplinin yanında ufak ufakta olsa diğer disiplinlere dair güzel bilgiler bulunuyordu ve neredeyse hepsini bahsetmeye değer bulduğum için özete dahil ettim.

Harry satır satır çeviriye yakın yaptığım çalışmanın yerine, 2-3 paragraflık, kitabın o kısmına dair özetler çıkarmamı tavsiye etti. Ayrıca, hala kitaptaki kodları ve içeriği güncellemeye devam ettiğinden bahsetti. Yine de yazıları yayımlarsam, sorun çıkarmayacağını da belirtti. Kitabın yazarı oydu ve haklıydı da. Ben de Harry’e bu işten tamamen vazgeçtiğimi, özetleri paylaşmayacağımı söyledim. Sonrasında Harry ile birkaç kere daha mesajlaştık ve ona kitabın ilk 3 kısmı için yazdığım gönderileri yayınlamayı teklif ettim. Kitabın “demo”su gibi bir şey olur ve insanları kitabı okumaya teşvik için de iyi bir yol diye düşündüm. Harry bu teklifime mutlu oldu ve “hiç yoktan iyidir” diyerek kabul etti.

İşte böyle…

Test yazma konusunda endişeleriniz varsa ya da “ben bu kitabı okuyamam”, “okusam mı acaba?” diye düşünüyorsanız sizin için Türkçe olarak geniş bir özet sunuyorum. İngilizcenizin yeterli olmadığını düşünüyorsanız bile, pes etmeyip okumaya devam edin derim. Kitapta bolca kod örnekleri var ve Github üzerinden de açık şekilde paylaşılıyor. Kitabı beğenirseniz ve imkanınız el veriyorsa, satın alarak destek olabilirsiniz.

  1. Python (Django) ile Test Odaklı Geliştirme (TDD) – 1
  2. Python (Django) ile Test Odaklı Geliştirme (TDD) – 2
  3. Python (Django) ile Test Odaklı Geliştirme (TDD) – 3

 

Kategori: Bookmark Python

Yorumlar

Siz de düşüncelerinizi paylaşın

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.