Bir İnternet Sitesinin Anatomisi
Gerek kurumsal gerekse bireysel alanda gün geçtikce zorunlu ihtiyaç haline gelen internet sektörünün arkaplanından biraz bahsetmek istedim.. Özellikle son günlerde “internet sitesi nasıl yapılır” diye merak eden arkadaşlara farklı bir kılavuz oluşturmanın faydalı olacağını düşündüm. Kullandığımız bir çok programlama terimini ve mantığını kısaca anlatıp,sıfırdan bir internet sitesi yapımı için gerekli koşulların neler olduğunu başlıklar halinde toplamaya çalıştım..Umarım bir web sitesinin nasıl yapıldığı kafanızda oluşmuş olur 🙂
1.Web Sitesi yapmak için programlama haricinde neler gerekli?
Öncelikle web sektörünü kategorize ederken programlama kısmından önce öğrenmemiz gereken bazı sistemler vardır. Bunlar bir internet sitesinin olmassa olmazı olan ve normal bilgisayar bilgisiyle halledebilecek düzeydeki işlemlerdir.. Bu konuda araştırmanız gereken keywordler; İnternet sitesinin ismi yani beyazitkolemen.com gibi olan site adresi için “domain” konusunda, web sitesinin internet üzerinde aktif olarak devamlı çalışabilir halde kalması ve programlamlanmış internet sitesi dosyalarını çalıştırmak içinse “hosting” konusunu araştırmanız yeterli diyebilirim.. Domain + Hosting bir internet sitesinin olmazsa olmaz özelliklerinden birisidir. Domain için yıllık ortalama 10-15 dolar arası,hosting içinse 25-1000 dolar arası bir fiyat ödemeniz gerekebilir..Hosting ihtiyacınız programlama dosyalarınızın,içeriğinizin (Resim,video gibi) büyüklüğüne ve sitenizin trafiğine bağlı olarak değişebilir.. Bu konuda da ileriki günlerde daha detaylı bir yazı hazırlayıp paylaşmayı düşünüyorum..
Web yazılım dillerini biz iki alanda ayırıyoruz genelde..Front-End ve Back-End olarak ayrılan bu sektörde programlama dilleri hangi alana yönelmek isterseniz o şekilde ayrılıyor…
2.Web Sitesi Programlaması için öğrenmemiz gereken zorunlu diller:
-HTML (Hem front-end hemde back-end aşamasında öğrenmemiz gereken temel dildir..Dil demekten öte bir betik diyebiliriz aslında.)
Öncelikle HTML olmazsa olmaz dillerimizden birisidir..Yani aktif olarak front-end kısmında kullanılsa da back-end developer yapan bir arkadaş tutup HTML kodlarını kullanmadan yazılımı gönderirse front-end ciden bol bol küfür yiyebilir..
2.1. Front-End Geliştirici Olmak için yani arayüz geliştiricisi olmak için:
-CSS (Yazdığımız HTML kodlarının görsel olarak konumlandırılması,sitenin genel dizaynı,sayfa yapısı,arkaplan,renk,font gibi tüm html kodlarının diğer sitelerden ayırt etmek için yazılmış halidir..Kısaca HTML kodlarına stil vermek için kullanılır.)
-JQUERY ( Eskiden kullanılan javascript kodlarının yeni sistemlere özel modernize edilmiş halidir..Sitenin içeriğini daha kullanışlı bir hale getirmek için kullanılan java temelli bir kütüphanedir.. Az yaz,çok iş yap mantığıyla çalışan bu sistem bugün popüler bir çok internet sitesinde kullanılmaktadır. Flash döneminin kapanmasıyla birlikte HTML5 ile site içeriğinin daha görsel ve daha etkileşimli bir şekilde kullanılması için gerekli bir kütüphanedir)
—-
Bu kısma kadar statik yani içeriği değiştirilmeyen bir internet sitesi yapabilirsiniz veya hazır olarak yazılmış bir yazılımı (WordPress,Joomla,Drupal yada diğer özel yazılımları) görsel olarak değiştirebilir ve istediğiniz şekilde kullanabilirsiniz.
Tabi daha ileri düzeyde ve kaliteli siteler yapmak için bu konuda Grafiker arkadaşlar bize Photoshop yada Fireworks gibi programlar aracılığıyla tüm site arayüzünü,görsellerini çizip gönderiyor..Bizde o tasarım sistemine uygun şekilde hatta bire bir şekilde kodluyoruz.. Yani front-end geliştirici bir şekilde grafikerin çizdiğini internet sistemi için kodlayan kişi oluyor.
2.2.Back-End Geliştirici Olmak için yani sistemi dinamik hale getirmek için;
Arkaplanda sistemi geliştirmek için karşımıza birden fazla dil çıkıyor..En popüler olan iki dil ise birisi açık kaynak yazılım olan ve dünyanın en popüler web yazılım dillerinden birisi PHP, diğeri ise microsoft tarafından geliştirilen .NET Framework’u üzerinden kullanılan ASP.NET oluyor.
Buradaki yol ayrımına çok dikkat etmemiz gerekiyor.. PHP – Linux alt yapısında çalışırken ASP.NET – Windows alt yapısında çalışmaktadır.. (Windows üzerinden php çalıştırabiliyorsunuz tabiki ama performans olarak Linux aktif olarak kullanılır).
Ortak özellik olarak ikisinde de aynı şeyleri yapabilirsiniz (küçük istisnalar haricinde) ve ikisi de OOP yani nesnel yönetimli programlama dilidir.. Mantık olarak aynı çalışır fakat kod yazılımı ve komutları birbirinden farklıdır..ASP.Net masaüstü yazılım entegrasyonu olduğu için (MVC Mimarisi ve C# kullanımı olduğu için) daha aktif olarak masaüstü yazılımcılarının internet sitesi yapmak için kullandığı dil diyebilirim.
ASP.NET daha yoğun olarak devlet dairelerinde,bankacılık sistemlerinde kullanılırken, PHP aktif olarak diğer tüm sitelerde kullanılmaktadır..
Bu konuda 2 programlama dilinden birini seçmek size kalıyor..Fakat özgür yazılım ve özellikle türkçe ve ingilizce kaynak konusunda PHP nin daha iyi olduğunu söyleyebilirim.. Ama ben C# gördüm okulda ve kod denizinde boğulmaya hazırım diyorsanız ASP.Net, abi boşver sakin sakin takılıp,istediğimizi yapalım diyorsanız PHP derim… ( Okulda C# dersi alıp ASP.Neti başlangıç konusunda biliyorum ama PHP candır diyorum 😀 )
Bu diller ne için CSS-XHTML ile zaten bir internet sitesi yapabiliyoruz derseniz size küçük bir örnek veriyim.. Bir haber sitesi düşünün her gün yüzlerce haber giriyorsunuz ama bunu PHP yada ASP.NET kullanmadan yaptığımızı düşünürsek her gün tek tek sayfayı kopyalayıp yeni bir sayfa oluşturup tekrar sunucu atmak gibi bir derdimiz olacağından eğer statik sayfa yerine dinamik olarak bu dilleri kullanıyoruz..
ASP.NET veya PHP öğrenmek konusunda tercih sizin!
2.3. Veritabanı için SQL (MYSQL yada MSSQL)
PHP ve ASP.NET i kullanma amacımız yani siteyi statik halden dinamik hale geçirmek için yazıcağımız verileri saklamamız gereken bir veritabanı olması gerekiyor.. Yani sunucu üzerinden verilerin daha derli toplu kategorize edilmiş bir tablolama halini düşünün.. Ve PHP yada ASP.NET ile bu verileri uygun yerlerde çekip kullanma imkanı sağlayan dile ise SQL diyoruz..
SQL dili tüm programlama dillerinde hemen hemen aynı komutlarla çağrılan bir dildir..Zaten temelindeki mantık 4 Ana komuta bağlı diyebiliriz.. SELECT (Tabloyu seç) , INSERT (Tabloya ekle) , UPDATE (Tabloyu güncelle) , DELETE (Tablodaki veriyi sil) gibi komutları olup hepsinde benzerdir..Sadece aracı bağlantılarda ve sistem yapısı olarak ASP.NET Microsoft SQL Server yani MSSQL, PHP ise açık kaynak MYSQL kullanmaktadır.Ayrıca büyük şirketler ve büyük veriler için Oracle kullanabilirsiniz (Her iki programlama dilinde de bağlanılabilir ama fiyatı fazla tuzludur ve genellikle çok büyük verisi olan şirketler kullanır)
Sonuç olarak ortaya böyle bir flowchart çıkıyor.. Bir web sitenin programlama anatomisi de bu şekilde..
Bu kadar açıklamadan sonra hangisini öğrenelim diye soracak olursanız önce HTML, ardından Front-End kısmına geçin ve CSS-JQUERY öğrenin..Jquery üzerinde fazla durmayın sadece entegrasyonunu ve mantığını anlayın.. Ardından Back-End kısmına geçebilirsiniz..Front-End kısmı oldukça kolaydır Back-Ende göre..
Sırasıyla; HTML-CSS-JQUERY öğrendikten sonra PHP-MYSQL size on numara,beş yıldız bir site yapmanıza yetecek programlama bilgisini verecektir 🙂
Saygılarımla 🙂
CSS ,XHTML
Dediğin gibi, HTML, CSS, JavaScript (başlangıç ve temel), jQuery (Başlangıç ve temek), PHP (Select, insert, update, delete işlemleri) kısımları öğrendim.
Şimdi ne yapmalıyım peki? Nereye daha çok ağırlık vermeliyim? PHP de S I U D işlemleri nereye kadar yeter ve nelere yetmez?
çok güzel özetlemişsin resimlerle desteklemen iyi olmuş 🙂
Yol gösterici bir makale olmuş teşekkürler.