web İçin teknoloji geliştirmek

Post on 24-Jun-2015

3.592 Views

Category:

Technology

4 Downloads

Preview:

Click to see full reader

DESCRIPTION

Ocak Ayı Web Seminerlerindeki "Web İçin Teknoloji Geliştirmek" sunumu -- Volkan Özçelik

TRANSCRIPT

Volkan Özçelik blog: www.fikribol.com

Web İçin Teknoloji Geliştirmek

Volkan Özçelikcember.net – Bilişim ve Teknoloji Direktörü

Baş Döndürücü Bir Evrim Süreci1994

<MARQUEE>

Baş Döndürücü Bir Evrim Süreci 2008

XHTML, CSS, JS, DHTML, AJAX, OOP, XML, XSTL, RSS, OPML, SQL, DDL, UML, RPC, SOA,

Folksonomi, MVC, J2EE, Microformat, XFN, Hcal,

Ruby on Rails, DTD, W3C, WAI, JAVA, .NET, SSI,

WYSIWYG, WYSIWYM, API, UGC, Wiki, blog,

thumblog, GTD, microblog, webtop, CMS, ERP, Mashup,

Semantik Web, Yapay Zeka, Kollektif Zeka,

beta, web2.0, web3.0, web4.0 ... daha gider bu!

Baş Döndürücü Bir Evrim Süreci Altavista Google Hotmail Gmail / Yahoo! Mail(beta) Ofoto Flickr Mp3.com iTunes Netscape Mozilla Firefox

Baş Döndürücü Bir Evrim Süreci

Hizmet Ürün Software Infoware Statik Dinamik Zengin Kullanıcı Deneyimi

Kolay Eğlenceli Sosyal

Baş Döndürücü Bir Evrim Süreci

API RSS AJAX Standartlar

DOM XHTML CSS

Web Uygulaması Geliştirmek İçin Harika Bir Dönem!

Her gün yeni bir web uygulaması Hızlı gelişen bir internet pazarı

Kolay veri ve bilgi paylaşımı Basitleştirilmiş bir dağıtım kanalı Düşük Sabit Masraflar

Hızlı olgunlaşan bir İnternet ekonomisi

Daha Başlamadan...

Hedef Kitlenizi Belirleyin Amaçlarınızı Belirleyin Bütçenizi Belirleyin

Web İçin Teknoloji Geliştirmek Proje Yapısının Belirlenmesi Plan Üretilmesi Geliştirme Süreci Test ve Bakım

Web İçin Teknoloji Geliştirirken (olması gereken)

İş Mantığının ve İş Nesnelerinin Belirlenmesi İşlevsel Gereksinimlerin Belirlenmesi Uygulamanın Kodlanmaya Başlanması Bakım ve Destek Prosedürlerinin Belirlenmesi

Web İçin Teknoloji Geliştirirken (genelde olan)

Uygulamanın Kodlanmaya Başlanması

Web İçin Teknoloji Geliştirirken... Amacınızı bilin Değer katın Deneyim kazanın

Gözardı Edilenler

Dokümantasyon Gereksiz, kimse okumuyor. Test Zaman Kaybı, o kadar lüksümüz yok. Bakım? Destek?

Web Teknolojilerinde Güvenlik

Web Teknolojilerinde Güvenlik Bir Hacker

Sistemin açıklarından yararlanarak Size ait olmayan veri enjekte edebilir Verinizi değiştirebilir Verinizi çalabilir

Tüm bunları nasıl yapar? Sisteminizle haberleşerek Sıradan kullanıcının yapmadığı şeyler deneyerek Sosyal Mühendislik

Web Teknolojilerinde Güvenlik Kullanıcıya Asla Güvenmeyin

Sunucu – İstemci arasında bağlantı kopabilir Eksik/hatalı veri

Sunucu – İstemci arasında veri kirlenebilir Kullanıcı tarafından beklenmeyen bir şekilde

değiştirilebilir Sistemi çökertmek, yetkisiz erişim sağlamak için özel

olarak tasarlanmış bir saldırı olabilir

Web Teknolojilerinde Güvenlik Kendi uygulamanızı hackleyin Bir kayıt dosyası (log) tutun

Sık Yapılan Gaflar (güvenlik)

JavaScript korur beni JavaScript iptal edilebilir JavaScript kullanıcı tarafından modifiye edilebilir Sisteme kullanıcı tarafından JavaScript enjekte

edilebilir Cross Site Scripting / Script Injection

Sık Yapılan Gaflar (güvenlik)

Gizli form alanlarını kimse göremez Rahatlıkla görütülenebilir Rahatlıkla değiştirilebilir Rahatlıkla yeni form alanları eklenebilir

Kaynak kodunu kim okur ki? Sizce?

Web Teknolojisi Modeli

Kullanıcı Hizmetleri İş Hizmetleri

Veri Hizmetleri

Web Teknolojisi Modeli

Kullanıcı Arayüzü İş Mantığı

Veritabanı

Web Teknolojisi Modeli

Kullanıcı ArayüzüVIEW

İş MantığıCONTROLLER

VeritabanıMODEL

Web Teknolojisi Modeli

Kullanıcı ArayüzüVIEW

Görünüm (biçem)CSS

İşlev JavaScript (betik)

(AJAX)

SunumXHTML

Sunum, Görünüm ve İşlev (genelde olan)

tek bir HTML dosyası

Sunum, Görünüm ve İşlev (olması gereken)

cssjs

xhtml

Sunum, Görünüm ve İşlev

Uygulama Mimarisi Gafları

Kullan-At Düşüncesi geçici çözüm geçici prototip günü kurtarmak

Halının Altına Süpürmek Kod spagethisi

Sil baştan başlamak...

Geliştirme Ortamı

Her geliştiricinin kendi oyun alanı olsun (sandbox)

Uygulamanızı Düzenli Olarak Gözden Geçirin Pre-review / Internal Auditing

Bir Sürüm Kontrol Sistemi Kullanın CVS Subversion

Web Teknolojisinin Hayat Çizgisi

Web Teknolojisinin Hayat Çizgisi

Yararlı Bir Şeyler Üretin!

Sık Yapılan Gaflar

Yazılım Geliştirici Gafları Kontrolsüz büyüyen kod kalabalığı “yeniden kullanılırlık”? O da neymiş? Dokümantasyon eksikliği Önce ateş edip sonra soru sormak Duvardaki sinek için roket atar kullanmak

Performans Önemlidir

8 Saniye Kuralı Birinci günden planlamaya başlayın İşlevsellik ve performans arasında denge kurun Pes etmeyin Az aslında “çok”tur

Performans

Bazen kuralları çiğnemek gerekebilir Algılanan performansı arttırmaya çalışın Yapabiliyorsanız hile yapın

Kod Yapısı

Sürdürülebilen (maintainability) Ölçeklenebilen (scalability) Değerlendirilebilen (auditability)

Veritabanı

Veritabanınızı normalize edin (3rd normal form) Her zaman uygun veri tiplerini kullanın SQL Injection saldırılarına dikkat edin Verilerinizi düzenli olarak gözden geçirin

Sık Yapılan Gaflar

kopyala / yapıştır sağını solunu değiştir çalışacağına inan / dua et üstünkörü bir test et <çalışıyor mu ?>

EVET çalışıyorsa elleme! HAYIR

Bir Framework Kullanmalı mıyım? framework kullanmak

Uygulama geliştirmeyi hızlandırır Güvenilir / Test edilmiş bir yapı

... ya da framework kullanmamak Öğrenme eğrisi Kontrol

Söz Gider, Yazı Kalır

Uygulama Gereksinim Dokümanı (Functional Specification)

Gizlilik Notu Giriş Kullanıcı Senaryoları Sistem Analizi Son-kullanıcı Görevleri Yönetici Görevleri Diğer Gereksinimler (non functional requirements)

Mutlaka Yapın

Sürüm Kontrol Sistemi Kullanın Tek kişi olsanız bile!

Önce varolan hataları düzeltin Sistem Kurulumu (build) işlemini günlük

olarak yapın Bir hata veri bankanız olsun Güncel bir iş takviminiz olsun Sakin bir çalışma ortamınız olsun

Az Aslında Gerçekten Çok mudur? Kullanıcı ne yapmak istiyor? Bu özelliği kaldırmak

Kullanıcının bu işini kolaylaştıracak mı? Uygulamanın kullanılırlığını nasıl etkiliyor?

Bu özellik “olması beklenen” bir şey mi? Bu özelliğin varlığı kullanıcıları mutlu eder mi? Bu özelliğin eksik olması kullanıcıları rahatsız

eder mi?

Bir Web Uygulamasını Yönetmek Sihirli Kelime: “Organize Olun” Projenizi Planlayın Gerçekçi bir Takviminiz Olsun Proje Yönetim Araçlarından Yararlanın

Basecamp (basecamphq.com) Zoho Projects (projects.zoho.com) Free Mind (freemind.sourceforge.net) Open Workbench (openworkbench.org)

Öncelikleri Belirlemek (yönetim) Görünür Değer Ekip Üretkenliği Çelişki / Uyum (vay be!) / (aslında gerçekte yapılan iş)

Sık Yapılan Gaflar

Yönetim Gafları “Bir An Önce Büyüyelim!” Sendromu “Bir An Önce Herkes Duysun Bizi” Sendromu “Hazır Olunca Yayınlarız!” Sendromu

Mutlaka Yapın

Vizyon sahibi bir diktatör olun

Uygulamanız varsayılan haliyle kullanılır olsun Çoğu kullanıcı ek özelliklere dokunmayacaktır bile

Görev odaklı düşünün

Mutlaka test edin

Mutlaka Test Edin

Genel Unit Test Integration Test System Test

Uygulamaya Özel Güvenlik Testleri Performans, Yük ve Stres Testleri XHTML / CSS Doğrulaması Erişilirlik Testleri Kullanılırlık Testleri

Teşekkürler

Sorularınız?

top related