Pythontr

husonet | Tarih: 14.03.2011

Yazılım Projesi Geliştirme

Yazılım projesi geliştirme esnasında yapılması gereken fiziki işlemler.

Dökümantasyon

  • Genel dökümanlar, proje klasörü altında yer alan 'doc/' klasöründe toplanacak
  • Ayrıca her klasöre, klasör altında yer alan dosyalarla ilgili açıklamaları içeren OKUBENI dosyası konulacak
  • 'doc/' altına projenin tamamını kabaca açıklayan bir diagram... Bunun için 'bouml' kullanılsın
  • doc/OKUBENI içine
    iletişim bilgileri
    çalışılacak olan ortam, donanım, işletim sistemi hakkında bilgi
    kullanılacak olan hazır uygulamalar hakkinda bilgi
    kurulum notları

  • 'doc/' altına kullanılan cihazlarla ilgili gelen dökümanlar
  • 'doc/' altına haberleşme protokollerini açıklayan dökümanlar


Sistem Ayarları

  • Değişiklik yapılan her sistem dosyasının bir kopyası 'config/' klasörüne konulacak
  • 'config/surum' içine sürümün numarası yazılacak
  • Kendi uygulamalarımız tarafından kullanılan ve veritabanı formatında olmayan ayar dosyaları bu klasörde tutulacak


Kod geçmişinin takibi ve yedekleme

  • Kod geçmişinin takibi için git kullanılacak
    /makale/git-nasil-kullanilir-git-kullanimi-57
  • Proje ana klasöründe 'git init' yapılacak ve daha sonraki değişikliklerde add, commit v.s.
  • Değişiklik yapılan her günün sonunda rsync ile yeni yedek alınacak.
  • Yedekleme öncesi 'git commit' ile sürüm kontrol sistemini güncellemeyi unutma
  • CD/DVD ve uzak makinede de yedek tut


Veritabanı

  • Veritabanları ile ilgili dosyalar 'databases/' klasörüne konulacak
  • Veritabanlarını oluşturan SQL betikleri (create.sql v.b.)
  • Default değerleri giren SQL komutları (insert.sql v.b.)
  • Veritabanlarını oluştururken tool kullanılmamasında fayda var ama ben kullaniyorum


Daemonlar

  • Arkaplanda sürekli çalışacak olan servis yazılımlarının kodları 'daemon/' klasörüne konulacak
  • Python ile yazılan daemonlar için


GUI

  • Arayüz ile ilgili kodlar 'gui/' klasörüne konulacak
  • Arayüz ile ilgili medya dosyaları (arkaplan resimleri, ikonlar vs) bu klasöre konulacak


Web
Web arayüzleri ile ilgili kodlar 'web/' klasörüne konulacak.

Test

  • Test betikleri 'test/' klasörüne konulacak
  • Python kodlarında unittest için python-nose kullan
  • Kodlar, hata oluştuğunda

    . geliştirme aşamasında hatayı raise eden
    . kullanım aşamasında programı sonlandırmayan ama hata mesajını loglayan şekilde yazılacak
    . finally kullanımına dikkat et; bazı durumlarda raise edilen hatanın üst koda geçirilmesinde sorun oluyor
    mümkün olduğunca finally kullanma


Araçlar
  • Sistemin işleyisi ile ilgili olmayan ama bir aşamada bir işi kolaylaştırmak için kullanılmış olan bütün uygulamalar, kodlar, dosyalar vb 'utils/' klasörüne konulacak

Örneğin projede kullanılacak bazı verileri başka bir kaynaktan alıp projede kullanılmaya uygun hale çeviren betikler...