Upgrade to Pro — share decks privately, control downloads, hide ads and more …

e-Tohum Geliştirici Günleri

e-Tohum Geliştirici Günleri

Web uygulama geliştirme yaparken dikkat etmemiz gereken hususlar...

Uğur Özyılmazel

December 13, 2012
Tweet

More Decks by Uğur Özyılmazel

Other Decks in Programming

Transcript

  1. 1
    UĞUR ÖZYILMAZEL
    asp | php | perl | python | ruby | c | js | html | css | objective-c | assembly | rexx | bash | applescript
    http://ugur.ozyilmazel.com
    @vigobronx | @ugurozyilmazel
    1
    13 Aralık 12 Perşembe

    View Slide

  2. 2
    Süper bir fikrim var!
    2
    13 Aralık 12 Perşembe

    View Slide

  3. 3
    Peki hangi teknolojileri
    kullanmalıyım?
    3
    13 Aralık 12 Perşembe

    View Slide

  4. En İyi Hangilerini Biliyorum?
    ★ php
    ★ perl
    ★ asp
    ★ .net
    ★ java
    ★ scala
    ★ python
    ★ ruby
    ★ javascript ?
    ★ mysql
    ★ postgres
    ★ oracle
    ★ ms-sql
    ★ mongodb
    ★ sqlite ?
    4
    13 Aralık 12 Perşembe

    View Slide

  5. Yazılımı Tasarlama Aşaması
    ★ Uygulamanın ne yapacağını anlatan minik
    hikaye parçacıkları (User Stories)
    ★ İlgili testlerin yazılması: Unit ve Behavior
    ★ Tüm testleri geçtikten sonra: Refactoring
    ★ Tüm uygulamanın test edilmesi: Integration
    ★ ve Deployment
    5
    13 Aralık 12 Perşembe

    View Slide

  6. Yazılımı Tasarlama Aşaması
    https://class.coursera.org/saas/
    6
    13 Aralık 12 Perşembe

    View Slide

  7. Yazılım Geliştirme Metodolojileri
    ★ Waterfall *
    ★ Prototyping
    ★ Incremental
    ★ Spiral
    ★ Rapid
    ★ Object Oriented
    ★ Top-down Programming
    ★ Unified Process
    ★ Agile
    http://en.wikipedia.org/wiki/Software_development_methodology
    7
    13 Aralık 12 Perşembe

    View Slide

  8. “Havalı” Terminolojiler
    ★ Design Patterns
    ★ Framework
    ★ Refactoring
    ★ DRY
    8
    13 Aralık 12 Perşembe

    View Slide

  9. Design Patterns
    ★ Singleton
    ★ Factory
    ★ Prototype
    ★ Decorator
    ★ Module
    ★ Proxy
    ★ Iterator
    ★ Lock
    ★ Thread Pool
    http://en.wikipedia.org/wiki/Software_design_pattern
    9
    13 Aralık 12 Perşembe

    View Slide

  10. Framework
    ★ Sizin adınıza uygun Design Pattern’lerini kullanır.
    ★ Tekerleği yeniden icad etmenizi önler, ileride karşınıza
    çıkabilecek pek çok sorun için çözümleri vardır. (Full stack)
    ★ Templating, Caching, Security, Data Mapping, URL Mapping
    gibi pek çok hayat kurtarıcı özellik mevcuttur.
    http://en.wikipedia.org/wiki/Web_application_framework
    10
    13 Aralık 12 Perşembe

    View Slide

  11. Refactoring
    ★ Yeniden yazmak
    ★ Prototip olarak yazdığınız kodu optimize
    etmek
    ★ RED - GREEN - REFACTOR
    http://en.wikipedia.org/wiki/Refactoring
    11
    13 Aralık 12 Perşembe

    View Slide

  12. DRY: Do not Repeat Yourself
    http://en.wikipedia.org/wiki/Don%27t_repeat_yourself
    Kendini Tekrar ETME!
    .red_title {
    font-family: Arial;
    font-weight: bold;
    font-size: 22px;
    color: #f00;
    }
    .blue_title {
    font-family: Arial;
    font-weight: bold;
    font-size: 22px;
    color: #00f;
    }
    12
    13 Aralık 12 Perşembe

    View Slide

  13. DRY: Do not Repeat Yourself
    http://en.wikipedia.org/wiki/Don%27t_repeat_yourself
    Kendini Tekrar ETME!
    .red_title {
    font-family: Arial;
    font-weight: bold;
    font-size: 22px;
    color: #f00;
    }
    .blue_title {
    font-family: Arial;
    font-weight: bold;
    font-size: 22px;
    color: #00f;
    }
    13
    13 Aralık 12 Perşembe

    View Slide

  14. DRY: Do not Repeat Yourself
    http://en.wikipedia.org/wiki/Don%27t_repeat_yourself
    Kendini Tekrar ETME!
    .title_base {
    font-family: Arial;
    font-weight: bold;
    font-size: 22px;
    }
    .red_title {
    color: #f00;
    }
    .blue_title {
    color: #00f;
    }
    Merhaba
    14
    13 Aralık 12 Perşembe

    View Slide

  15. “Test Yazmak Zaman Kaybıdır!”
    15
    13 Aralık 12 Perşembe

    View Slide

  16. “Test Yazmak Zaman Kaybıdır!”
    ★ Test Driven Development (TDD)
    ★ Behavior Driven Development (BDD)
    ★ Integration Tests
    Kullandığınız dil farketmez! Mutlaka
    test yazmanız gerekir!
    16
    13 Aralık 12 Perşembe

    View Slide

  17. Versiyon Kontrol Sistemi
    ★ CVS
    ★ SVN
    ★ MERCURIAL
    ★ PERFORCE
    ★ GIT
    17
    13 Aralık 12 Perşembe

    View Slide

  18. GIT Kullanımı
    ★ “branch” kullanımı
    ★ Anlaşılır ve açıklayıcı “commit”
    mesajları
    18
    13 Aralık 12 Perşembe

    View Slide

  19. GIT FLOW
    Time
    release branches
    master
    develop hot xes
    feature
    branches
    Feature
    for future
    release
    Tag
    1.0
    Major
    feature for
    next release
    From this point on,
    “next release”
    means the release
    after 1.0
    Severe bug
    xed for
    production:
    hot x 0.2
    Bug xes from
    rel. branch
    may be
    continuously
    merged back
    into develop
    Tag
    0.1
    Tag
    0.2
    Incorporate
    bug x in
    develop
    Only
    bug xes!
    Start of
    release
    branch for
    1.0
    Author: Vincent Driessen
    Original blog post: http://nvie.com/archives/323
    License: Creative Commons
    19
    13 Aralık 12 Perşembe

    View Slide

  20. github.com
    ★ Sınırsız repository (public)
    ★ Issue / Ticket sistemi
    ★ Wiki
    ★ Hosting (gh-pages)
    ★ Organization
    ★ Git Hook
    ★ Öğrenciler için private repo
    20
    13 Aralık 12 Perşembe

    View Slide

  21. Deployment
    ★ Amazon AWS
    ★ Heroku
    ★ Engineyard
    ★ DotCloud
    ★ Rackspace
    ★ Kendi sunucu / cloud sisteminiz!
    21
    13 Aralık 12 Perşembe

    View Slide

  22. Hangi Developer’ları Takip Ediyorum?
    ★ http://github.com
    ★ https://gist.github.com
    ★ https://bitbucket.org
    ★ http://www.quora.com
    ★ http://geekli.st/
    ★ https://coderwall.com
    22
    13 Aralık 12 Perşembe

    View Slide

  23. Haftalık E-Posta Listeleri
    ★ http://statuscode.org
    ★ http://javascriptweekly.com
    ★ http://rubyweekly.com
    ★ http://www.pythonweekly.com
    ★ http://tthor.com
    ★ http://css-weekly.com/
    23
    13 Aralık 12 Perşembe

    View Slide

  24. Podcast’ler
    ★ http://devpod.tumblr.com
    ★ http://rubyshow.com
    ★ http://javascriptshow.com
    ★ http://ruby5.envylabs.com
    ★ http://radiofreepython.com/
    ★ http://www.phpclasses.org/blog/category/podcast/
    ★ http://thechangelog.com
    24
    13 Aralık 12 Perşembe

    View Slide

  25. İnternet Eğitim Kaynakları
    ★ YouTube
    ★ Vimeo
    ★ Coursera
    ★ UDemy
    ★ Confreaks
    ★ Py Video
    ★ Learn Street
    ★ GoDjango
    ★ Code School
    ★ Tree House
    ★ Destroy All Software
    ★ Zed Shaw : Learn...
    ★ Railscast
    ★ Cooper Press
    ★ Avdi
    ★ Tuts+
    Ücretsiz
    25
    13 Aralık 12 Perşembe

    View Slide

  26. Teşekkürler
    Slide renkler, (Font: Open Sans)
    http://zachholman.com/talk/git-github-secrets/
    Fotoğraflar
    http://flic.kr/p/dnitdr
    http://flic.kr/p/agdVAC
    Sorular?
    26
    13 Aralık 12 Perşembe

    View Slide