İçeriğe geç →

Yusuf Karaçin Yazılar

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

Önceki bölümlerde; Python (Django) ile Test Odaklı Geliştirme (TDD) – 1

Bölüm 1:  TDD Temelleri ve Django (Part 1: The Basics of TDD and Django)

​Kısım 2: unittest Modülü Kullanarak Functional Testimizi Genişletmek (Extending Our Functional Test Using the unittest Module)

Bir önceki kısımda yazdığımız test, Django’nun “it worked” sayfasının çalışıp çalışmadığını kontrol ediyordu. Şimdi bu testi, kendi uygulamamıza göre geliştireceğiz. Ama öncesinde, şu “functional test (FT)” deyimini biraz açıklamak gerek;

  • Functional Test == Acceptance Test == End-to-End Test

Functional testler (FT), uygulamamızın fonksiyonlarını son kullanıcı gözünden görmemizi sağlar. “Functional test” denmesinin sebebi de bu zaten. FT’yi bir çeşit uygulamamızın tanımlaması olarak da düşünebiliriz. “User Story”leri takip edip, kullanıcıların uygulamamızın belirli özellikleriyle çalıştığında uygulamanın nasıl cevap verdiğini izler.

FT’ler okunabilir ve takip edebileceğimiz hikayelere sahip olmalı. Test kodları yazarken açık ve net yorumlarla bunu sağlayabiliriz. Yeni bir FT yazarken, öncelik yorumları yazmakta olmalı. Yorumlar “User Story”lerin anahtar noktalarını yakalamalı. Ayrıca, öyle okunabilir olmalı ki, programcılar dışındaki kişilerle de bu yorumları paylaşıp, uygulamanın gereksinimleri ve özellikleri hakkında tartışma yapabilmeliyiz.

Yorum Bırak

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…

Yorum Bırak

GraphQL – Hızlı Başlangıç

Bu yazıyı okuduğunuza göre siz de benim gibi GraphQL’i merak edip, öğrenmeye çalışıyorsunuz demektir. Bu yazıda Github’ın sunduğu GraphQL API’ı üzerinden hızlı bir tanışma yapmayı planlıyorum. Yapacağım işlemler Github API’ına istekler göndermekten ibaret olacak ama genel olarak  GraphQL’i tanımak açısından faydalı olacağını düşünüyorum. Başka bir zamanda da Django ile kendi GraphQL API servisimi oluşturmayı deneyeceğim.

Kısaca bahsetmek gerekirse GraphQL, Facebook tarafından 2012 yılında mobil uygulamalarında veri alışverişini kolaylaştırmak için oluşturulmuş bir  “query language”.  Yani dil bağımsız olarak kendi graph servislerimizi yazabiliriz. 2015 yılında ise proje açık kaynak olarak paylaşıldı. Şu anda kullananlar arasında Github, Shopify, Coursera, Pinterest var.

Fazla uzatmadan GitHub GraphQL API’yı kullanamaya başlayalım. Giriş yaptıktan sonra ilk örnek sorgumuz bizim için hazırlanmış durumda zaten;

Yorum Bırak

Digital Ocean’da Django Projeleri Oluşturmak (Ajenti + Nginx + Gunicorn + Postgres)

Güncelleme: Eğer Django öğrenmeye yeni başladıysanız ve, benim yazıyı yazdığım zamanki gibi, uygulamayı sunucuya yükleme, sunucuyu hazırlama gibi konularda hiç bilginiz yoksa okumaya devam edebilirsiniz. Yinede ısrarla başka kaynaklardan da araştırma yapmanızı tavsiye ederim.

Eğer sizde benim gibi bir proje üzerinde çalışırken localhost yerine gerçek bir server üzerinde projenizi test etmeyi seviyorsanız mutlaka Digital Ocean‘ı denemelisiniz. Eğer akademik bir eposta hesabınız varsa (edu.tr) Digital Ocean‘ın $100’lık hediyesini kaçırmamanızı tavsiye ederim.

Yukarıda verdiğim Digital Ocean linkleri ile ya da buraya tıklayarak üye olursanız, $10 daha hediye alarak kendinize ait serverler kurmaya başlayabilirsiniz.

Bu yazıda anlatacaklarım:

  • Nginx ve Gunicorn kurulumu
  • Django projemizi kurup, yayına almak
  • Ajenti + Ajenti V kurulumu

Bu işlemlerin çoğunu Digital Ocean‘ın sunduğu dokümantasyonlardaki adımları izleyerek ve googlelayarak öğrendim ve paylaşmak istedim. Şu anda Ubuntu 14.04 serverım üzerinde Django uygulamalarım mevcut ve sorunsuz şekilde çalışıyor.

Başlayalım

Yorum Bırak

Python İle Masaüstü Uygulama Geliştirme – 4

Bu bölüme kadar epeyce bir şey öğrendik ve basit bir indirme yöneticisi yazdık. Şimdi geliştirdiğimiz bu programı biraz daha işlevsel hale getirelim.

  • İndirme işleminin başarılı ya başarısız olduğunu kullanıcıya bildiren bir mesaj gösterebiliriz.
  • Ayrıca indirme konumunu elle yazmak yerine, kullanıcıya bir dosya yöneticisi penceresi sunarak daha kullanıcı dostu bir şekilde bu işlemin gerçekleşmesini sağlayabiliriz.

İlk olarak geri bildirim mesajlarıyla başlayalım.

Yorum Bırak

Python İle Masaüstü Uygulama Geliştirme – 2

Bu bölümde ufak bir uygulamaya yapmaya başlıyoruz. İlk önce arayüzü tasarlayarak işe koyulacağız. Yapmak istediğimiz program, bir indirme yöneticisi.

Line edit’e girilen URL’den bir dosya indirmeye çalışacağız. Dosyanın indirme durumu progress bar ile kullanıcıya bildirilecek. Ayrıca kullanıcı dosyayı indireceği konumu seçebilecek ve indirme tamamlandığı zaman kullanıcıya bir mesaj gösterilecek. Hata durumlarında da aynı şekilde kullanıcıya dönüt verilecek. 

Yorum Bırak
Back To Top