Python/Django ile Web Programlama

Başlangıç: 11 Ağustos 2014
Bitiş: 23 Ağustos 2014

 

Eğitime katılacakların sahip olması gereken özellikler:

  • Okuduğunu anlayabilecek düzeyde İngilizce bilgisi
  • Herhangi bir nesneye yönelik programlama dilinde yazılım geliştirebilmek
  • Linux masaüstüne aşina olmak (yazılım geliştirme Linux üzerinde yapılacaktır)

 

KONULAR

  • Web geliştiricileri için temel ağ bilgisi
  • Ağ performansının web uygulamalarına etkisi
    • Çevrimiçi (dial-up) bağlantı
    • DSL Bağlantı
    • İnternet-İntranet
    • HTTP, Ajax, Comet
    • Yük Dengeleyiciler
  • HTTP
    • HTTP hata kodları
    • “Durumsuz” (stateless) olması
    • GET/POST metotları
    • Çerezler (Cookie)
    • Oturumlar
  • HTML
    • Dil yapısı
    • Grafik / HTML gösterim farklılığı
    • İstemciler arasında yorum farkları
  • Test ve hata ayıklama araçları
  • Önbellek
    • İstemci önbelleği
    • Proxy sunucular, Reverse Proxy Sunucular
    • Önbellek Yönetim Teknikleri
    • İçerik Sıkıştırma (JavaScript, CSS, HTML, Resim)
  • Web istemci programlaması
    • İstemci eklentileri ile yorumlama (Java applet, Adobe Flash)
    • Javascript
    • CSS
    • HTML 5
  • Web sunucu programlaması
    • Genel Teknikler ( CGI, ISAPI, NSAPI )
    • Genel Teknoloji Yaklaşımları ( PHP vs Python vs Ruby vs Java vs .Net )
    • Veri Tabanı İşlemleri ( SQL, NoSQL )
    • Web Servisleri
  • Web güvenliği
    • Kullanıcı doğrulama mekanizmaları
    • SSL
    • Uygulamaların tipik güvenlik sorunları
  • Web uygulamalarında sürüm takip sistemi kullanımı (Git)

 

  • Python’a giriş
    • Python’ı nasıl bir dildir
    • Yorumlanan ve derlenen diller
    • Kurulum ve environment hakkında bilgiler
    • Python’da kod yazmaya giriş
    • Python’ın sözdizimsel özellikleri
  • Python Internals
    • Temel program akışı yönetimi komutları
    • Veri tiplerine kısaca bakış
    • Duck typing ne demektir
    • Fonksiyonlar (callable) objeler hakkında bilgiler
    • Generators ve iterable objeler
    • Decorators
  • Object Oriented Programming
    • Object oriented yönelimi hakkında bilgiler
    • Sınıf kavramı ne demektir
    • Inheritance: birbirinden türeyen sınıflar
    • Composition: sınıfların birbiri arasındaki etkileşimi
    • Mixins: birden fazla sınıftan türeyen sınıflar
    • Design pattern’lar nedir ve bize ne kazandırır
  • Functional Programming
    • Fonksiyonel programlama nedir
    • Python fonksiyonel bir dil midir
    • Temel fonksiyonel programlama konseptleri
    • Her şeyin başı map ve reduce
      • Meta Python
    • Bir şeylere isim koymak (naming conventions)
    • Bir işin pitonik yolu
    • Python’ın tasarım prensipleri
  • Django’ya giriş
    • Django nedir
    • MVC kavramı ne anlama geliyor
    • Kurulum ve environment yönetimi
    • Bir proje nasıl oluşturulur
  • Models
    • Basit bir model tanımı
    • Modeller arasındaki ilişkiler
    • ForeignKey
    • ManyToManyField
    • ForeignKey neyimize yetmiyor?
    • Symmetrical seçeneği
    • Model Inheritance
    • Manager kavramı
    • Migrations
    • QuerySets
    • Filtering
    • Karmaşık sorgular
    • Aggregation ve Annotate
    • Optimizasyon
    • Prefect related
    • Select related
    • Values
  • Views
    • View nasıl tanımlanır
    • Templates
    • Nasıl oluşturulur ve kullanılır
    • Template inheritance
    • Template tags & filters
    • Url yönetimi
    • Request ve Response objeleri
    • Session’lar
    • Cookie’ler
    • İstemci bilgilerine ulaşmak
    • POST ve GET metodu
    • Formlar
    • Form tanımlamak
    • Validation sınıfları
    • ModelForm’lar
    • Formset ve ModelFormset kavramı
    • Class based view’lar
    • Middleware kavramı
      • Admin Uygulaması
    • Admin uygulamasını aktif etmek
    • Admin için model yönetimi
    • Özelleştirilmiş bir admin paneli
  • i18n ve l10n
    • Internalization
    • Dil dosyaları oluşturmak ve derlemek
    • Dil dosyalarını dağıtmak
    • Localization