fatiherikli

Hafta sonları ve boş vakitlerimde uğraştığım dbpatterns'ı nihayet yayına alabildim.

Dbpatterns, ufak tefek veritabanı modelleri oluşturup paylaşabileceğiniz bir araçtır. Ayrıca daha önceden oluşturulmuş olan modelleri fork'layıp, değişiklikler yapıp tekrar paylaşabilmenize olanak tanır. Bunun dışında pattern'ları (modelleri) direkt olarak Django uygulamanızın models.py'sini yapıştırarak da oluşturabilirsiniz.

Geliştirme Notlarım

Backbone Shortcuts

Pattern oluşturma ekranının arayüzünde Backbone.js ve çeşitli eklentilerini kullandım. Bu eklentilerden en hoşuma gideni backbone-shortcuts oldu. Backbone-shortcuts ile istediğiniz view'a kolayca klavye kısayolları atayabiliyorsunuz.

https://github.com/bry4n/backbone-shortcuts

Backbone Global Notifications

Notification kısmını yazarken aşağıdaki blog post'undan faydalandım. Bu post'unda bahsedilen 3. yol tam da aklımda olan şeydi. Notifications kısmını bu yöntemle implement ettim. Tam istediğim gibi, basit ve geliştirilebilir bir notification implementation'u oldu.

http://berzniz.com/post/19351578959/backbone-js-global-notifications

jsPlumb

Arayüz üzerinde modelleri bir birine bağlamak için ilk önce kendim bir şeyler yazmaya çalıştım. Sonra jsPlumb diye bir kütüphanenin istediğim şeyi yapabildiğini farkettim ve bunu kullanmaya başladım. Ancak maalesef ki ortaya çıkan şey çok da hoşuma gitmedi. jsPlumb çok iyi iş yapıyor, ancak API'ı rezalet! İlk fırsatta bu kısmı yeniden yazmayı düşünüyorum.

http://jsplumb.org/

Backbone Tastypie

Backbone.js'nin arka tarafında ise Tastypie tabanlı MongoDB'ye okuma ve yazma yapan bir API koşturuyorum. Tastypie, Backbone.js için tam bir biçilmiş kaftan. Tastypie resource'ları ve Backbone.js modelleri arasındaki senkronizasyonu Backbone-tastypie adlı paketle sağlıyorum. Problemsiz, tıkır tıkır çalışıyor.

https://github.com/PaulUithol/backbone-tastypie

Tastypie Mongodb Resource

Tastypie ve MongoDB entegrasyonu için ise verilen koleksiyon üzerinde CRUD işlemleri yapmanızı sağlayan ufak bir base-resource yazdım.

https://github.com/fatiherikli/tastypie-mongodb-resource

Bu resource'un detaylı açıklamasını ise bir blog post'u olarak yazmıştım. Ona ise şuradan ulaşabilirsiniz.

http://blog.fatiherikli.com/post/tastypie-ve-mongodb-ile-bir-web-servisi-yazalim/

Django Model Parser

Django modellerini içeri aktarmak için Python'un AST(Abstract Syntax Trees) modülünü kullandım. Bu iş için de ufak bir kütüphane yazdım ve github üzerinde paylaştım. Hackernews ve bir kaç yerde neden AST yerine Python'un introspection özellikerini kullanmıyorsun diye sorular geldi. Çok yerinde bir soruydu, ancak maalesef bunu yapamazdım. Çünkü:

Bu AST Parser'a aşağıdaki linkten ulaşabilirsiniz.

https://github.com/fatiherikli/django-model-parser

Deployment Notlarım

Siteyi açtıktan sonra ilk işim Hackernews'e göndermek oldu. Ancak ne yazık ki anasayfaya çıktıktan 10 dakika sonra anasayfanın neredeyse statik olmasına rağmen süpersonik VPS'im göçtü. Bir şekilde ayağı kaldırmayı başarabildim. Problem tamamen deployment hatalarım yüzünden kaynaklanıyordu.

Neyse ki şu anda bir şekilde dengeledim ve problem yok. Hackernews'ten gelen trafik kesildikten sonra ilk işim bu hataları düzeltmek olacak.

Github

Proje'yi github üzerinde public bir şekilde geliştiriyorum. Eğer eksik, güdük, hatalı bulduğunuz yerler varsa issues bölümünden bildirirebilirsiniz.

Ayrıca yardım ve desteklerinden dolayı Berker Peksağ'a teşekkürlerimi iletiyorum.

dbpatterns

comments powered by Disqus