Front-end Teknolojileri
Last updated
Last updated
Merhabalar, bu yazıda bazı front-end teknolojilerinden bahsedeceğim. Önce internet ve web ile ilgili terimlerden, sonra teknolojilerden bahsedeceğim.
İngilizcedeki World Wide Web'in baş harflerinden gelir. Kısaca web olarak ifade edilir. Web, internet ile karıştırılmaktadır. Fakat internet, TCP/IP kullanarak bilgisayar ağlarının birbirlerine bağlanmasını sağlar. Web ise internet üzerinde çalışan bir servistir. Web, HTML kullanan internet üzerindeki tüm kaynakların (yazı, grafik, resim, ses ve hareketli görüntüler) ve kullanıcıların birleşimidir. Kullanıcılar, tarayıcılar yardımıyla web servisinden kolayca yararlanabilir. Tarayıcılarda gördüğümüz her bir web dokümanına web sayfası denir. Ortak bir domainle birbirine bağlanan web sayfalarının bir araya getirilmesiyle bir web sitesi oluşturulabilir.
Domain, web sitelerinin internet üzerindeki adresini belirleyen özgün isimlerdir. Örnek: siberyavuzlar.com
Web tasarımı, kısaca dünya çapında online olarak paylaşılabilmesi ve erişilebilmesi için bir web sitesinde yer alan içeriği planlama ve düzenleme sanatıdır. Bir web sitesinin görünümünü (renkleri, yazı tiplerini, grafikleri vb.) belirleyen, bunun yanında sitenin yapısını ve kullanıcı deneyimini şekillendiren bir süreçtir.
Web sitesi geliştirme, bir web sitesinin yapısal olarak kurulumu ve bakımını ifade eden ve web sitesinin düzgün çalışmasını sağlayan karmaşık kodlama sistemlerini içerir. Web sitesi geliştirmek için kullanılan bazı teknolojiler:
HTML
CSS
JavaScript
PHP
Go Programming
ASP.NET
Türkçesi arkayüz olan back-end; GO, Python, PHP, Ruby, Java, ASP.NET, MySQL, MSSQL, MongoDB vb. teknolojilerle bir sistemin mimarisinin oluşturulması, veri tabanı yönetiminin planlanması, sunucu ayarlamalarının yapılması, sistemin maksimum seviyede verimli ve hızlı çalışmasının sağlanmasıdır. Back-end geliştiren kişilere back-end developer (arkayüz geliştirici) denir.
Türkçesi önyüz olan front-end, bir web sitesinin HTML, CSS ve JavaScript gibi teknolojileri kullanarak geliştirilmesidir. Front-end geliştiren kişilere front-end developer (önyüz geliştirici) denir.
Front-end geliştiricileri, kullanıcının doğrudan etkileşimde bulunduğu kısmı oluşturan arayüzü geliştirir. Bu arayüz, bir web sitesi veya uygulamada kullanıcının gördüğü her şeyi içerir: metin, resimler, düğmeler, formlar, menüler vb. Front-end geliştiricilerin sorumlulukları şunlar olabilir:
Kullanıcı arayüzü geliştirme: HTML, CSS ve JavaScript kullanarak web sayfalarını veya uygulamaları geliştirirler. Kullanıcıların deneyimini şekillendirir.
Arayüz tasarımı: Grafik tasarım yetenekleri kullanarak sayfa düzenleri, renk şemaları, tipografi ve diğer görsel öğeleri belirler.
Kullanıcı etkileşimi: Kullanıcıların düğmelere tıklaması, formları doldurması ve sitede gezinmesi gibi etkileşimleri sağlayan JavaScript kodlarını geliştirir.
Uyumlu tasarım: Farklı cihazlarda ve farklı tarayıcılarda doğru görüntülenme sağlamak için responsive tasarım tekniklerini uygular.
Hız ve performans optimizasyonu: Sayfaların hızlı yüklenmesi ve akıcı bir deneyim sunması için optimizasyonlar yapar.
Türkçe karşılığı "Kullanıcı Arayüzü" olan UI'ın açılımı "User Interface", bir tasarımın dış görünüş (arayüz) özelliklerini kapsar. Örneğin, kullanıcının bir web sitesinde kolayca dolaşması, bilgiye ulaşması ve bunun sayesinde sitede uzun süre kalmasını sağlamak için kullanılan görsel tasarımlardır. Sayfa yapısı, butonlar, resimler, çizgiler, renkler gibi grafik elemanları UI tasarımının bir parçasıdır.
Türkçe karşılığı "Kullanıcı Deneyimi" olan UX'in açılımı "User Experience" ise arayüzden ziyade kullanıcı etkileşimine, erişilebilirliğe, teknolojik yeterliliğe ve işleyiş özelliklerine odaklanır.
Web sayfalarını oluşturmasında iskelet görevinde kullanılan, Türkçe karşılığı "Hiper Metin İşaretleme Dili" olan HTML'in açılımı "Hyper Text Markup Language" olarak bilinir.
HTML, bir programlama dili değildir.
HTML, front-end geliştiricilerinin sayfalar ve uygulamalar için yapı profilleri, bağlantılar, blok alıntılar, paragraflar ve başlıklar gibi iskelet yapıları oluşturmalarında yardımcıdır. HTML, bir web sitesinin iskeletidir denilebilir. Yani HTML kodları olmadan web sitesi geliştirilemez.
HTML kodları, bir web sayfasının yapısını (iskeletini) oluşturan parçacıklardır. Kullanılan HTML kodları “<” ile başlar ve “>” ile biter. Temel bir HTML belge yapısı yukarıdaki kod bloğu şeklinde olmalıdır.
<!DOCTYPE html>: Tüm HTML belgeleri bu kod ile başlar. Bu kod sayfanın HTML5 formatına göre kodlandığını gösterir.
<html>: Kök etiket olarak da bilinen bu temel kullanımda HTML kodları bu iki etiket arasında tanımlanır.
<head>: Web sayfasının dili, başlığı ve diğer düzenlemelerinin yer aldığı etikettir.
<meta charset=”UTF-8″>: HTML kodunun dil seti içerdiğini belirtir.
<title>: Web sitesinin başlık alanını tanımlamak için kullanılır. <title> etiketi, <head> etiketleri arasında olmalıdır.
<body>: Görünebilir HTML kod parçalarının eklendiği alandır.
Web sayfalarının görsel olarak şekillendirilmesinde kullanılan ve kendine has kuralları olan bir tanım dilidir. Türkçe karşılığı "Basamaklanmış Stil Katmanları" olan CSS'in açılımı "Cascading Style Sheets" olarak bilinir.
CSS, bir programlama dili değildir.
CSS kodları web sayfalarının tüm elemanlarını dilediğiniz özelliklerle şekillendirebilmenize ve özelleştirebilmenize imkan sağlar. Bu da doğrudan sıradan bir web sayfasını özelleştirilmiş bir görünüme ulaştırır.
Font boyutlandırma.
Font renklendirme.
Başlık stilleri.
Yatay ve dikey menüler.
Geçiş efektleri.
Gölgelendirme.
Kenar süsleri.
Animasyonlar.
Sayfa arka plan rengi ya da görseli.
CSS kodları seçicilerden ve kod gruplarından oluşur. Kod grupları "{}" sembolleri arasında yazılır ve kod gruplarındaki ifadeler daima bir noktalı virgül sembolüyle sonlandırılır.
seçici: Hangi etiket, sınıf, id vb. ifadeyi sitillendireceğimizi söyler.
{} grubu: Seçiciye yapılacak olan sitillendirme ifadeleri yazılır.
HTML ve CSS'in aksine Javascript, etkileşimli -dinamik- web sayfaları oluşturmak için kullanılan bir programlama dilidir. JavaScript, hem kullanıcı tarafında hem de sunucu tarafında yaygın olarak kullanılan bir programlama dilidir.
Java ile karıştırılsa da Java ve JavaScript birbirinden farklı teknolojilerdir.
JavaScript kodunu çalıştıran bilgisayar programlarına JavaScript motoru denir. İlk JavaScript motorları sadece yorumlayıcılardı ancak modern motorlar performansı artırmak için tam zamanında veya çalışma zamanı derlemesi kullanır.
Web ve Mobil Uygulamalar
Web Sunucuları ve Sunucu Uygulamaları Oluşturma
Web Sitelerinde Etkileşimli Davranış
Oyun Geliştirme
Açıklara karşı oldukça zayıf bir yapıya sahiptir.
Kullanıcı bilgisayarlarında zararlı kod çalıştırmak isteyen kötü niyetli kişilerce kullanılabilir.
Farklı cihazlarda veya tarayıcılarda çalıştırılmasından kaynaklı tutarsızlıklar meydana gelebilir.
HTML, CSS ve JavaScript dillerinden yukarıda bahsetmiştik. Biraz da diğer teknolojilerden bahsedelim.
Kullanıcı arayüzü (UI) oluşturmak için kullanılan açık kaynak kodlu bir JavaScript kütüphanesidir. React JS'nin en önemli avantajlarından biri, tüm sayfayı yeniden yüklemeye gerek kalmadan kullanıcı arayüzünü verimli bir şekilde güncellemesine olanak tanıyan sanal DOM'udur. Bu aracın bileşenleri Facebook tarafından geliştirilmiştir.
React JS, bir JavaScript kütüphanesidir.
Single-page sayfalar ve mobil uygulamalar geliştirmek için kullanılır.
Hızlı ve interaktif kullanıcı arayüzü geliştirmeyi kolaylaştırır. Örneğin Instagram'da karşımıza çıkan arama kutusu, logo ve mesaj gönder butonu gibi görsellerin oluşturulmasını kolaylaştırır.
Arayüzdeki işlemleri kolay, maliyetsiz ve yüksek performanslı olarak yapar. Bu nedenle verilerin ve özelliklerin çok hızlı değiştiği uygulamalarda kullanılır.
Öğrenmesi ve Kullanımı Kolay: Açık kaynaklı bir JavaScript kütüphanesi olan React’ı öğrenmesi nispeten kolaydır.
Artan İş Fırsatları: Çok çeşitli alanlarda React becerisine sahip olanlara talep var.
Gelişen Topluluk: Açık kaynaklı bir kütüphane olduğundan herkes React’ı kullanabilir ve geliştirebilir. Ekosistemi destekleyen ve geliştiren, kendi katkılarını ekleyen bir topluluğu da var!
Yeniden Kullanılabilirlik: Yeniden kullanılabilir bir sisteme sahip olduğu için aynı sistem farklı uygulamalarda tekrar kullanılabilir. Yeniden kullanabilme özelliği React’ın tercih edilmesindeki nedenlerden bir tanesidir.
Hızlı Sonuç: Uygulamalardaki canlı değişiklikleri hızlı, verimli ve gerçek zamanlı bir şekilde aktarır. Ayrıca DOM kullanılarak çok daha çabuk sonuç alınabilir.
Çeşitli Eğitim Materyalleri: React’ın sahip olduğu bilgilerine erişim kolaydır. Çevrimiçi veya çevrimdışı React kursları öğrenmeyi kolaylaştırır.
SEO Friendly: React ile oluşturulan kullanıcı arayüzleri farklı arama motorlarına da erişebilir.
Material UI
Ant Design
React-Bootstrap
React Router
Semantic UI React
Blueprint UI
React Motion
Reactstrap
Next.js bir React JS framework'üdür. Bu framework sayesinde React JS kullanarak SSR (Server Side Rendering) işlemi yapabilen web uygulamaları geliştirebiliyorsunuz. Bu sayede uygulamanız hem daha performanslı hem de SEO uyumlu olmuş oluyor.
Next.js, JavaScript ve React tecrübesi olan herkes tarafından kolayca öğrenilebilir ve kullanılabilir.
Next.js, React JS'in bir framework'üdür.
SSR ve SSG Desteği: Sunucu tarafında işlenen (SSR) veya statik sitelerin üretimi (SSG) modunda çalışabilen tam özellikli bir framework olarak tasarlanmıştır.
Kolay Yapılandırma: Kurulumu ve yapılandırması kolaydır. Önceden yapılandırılmış ayarları sayesinde, geliştiriciler zaman kazanabilir ve hızlı bir şekilde uygulama geliştirebilirler.
Otomatik Kod Bölünmesi: Otomatik olarak kodunuzu parçalara ayırarak uygulamanızın yalnızca ihtiyaç duyduğu kısımları yükleyerek performansı artırır.
Hizmet Prosesleri: Hizmet proseslerini kullanarak veri önyükleme ve uzun süreli işlemler gibi işlemleri istemci tarafından değil, sunucu tarafından yönetebilir. Bu, uygulamanın daha güvenli ve performanslı olmasını sağlar.
Geliştirici Deneyimi: Popüler bir framework olduğu için geniş bir topluluğa sahiptir. Ayrıca React tecrübesi olan herkes tarafından kolayca öğrenilebilir ve kullanılabilir.
Dinamik Yönlendirme: Dinamik URL'leri kolayca yönetmenizi sağlar. Bu özellik sayesinde uygulamanızın yönlendirmesi daha da kolay hale gelir ve kullanıcı deneyimi artar.
Materyal Tasarım Desteği: Materyal tasarım desteği sunar. Bu sayede uygulamanızın tasarımına profesyonel bir görünüm kazandırabilirsiniz.
Ölçeklenebilirlik: Ölçeklenebilir bir yapıya sahiptir. Bu sayede uygulamanızın trafik arttığında bile performansı etkilenmez.
Vercel Entegrasyonu: Vercel platformunda barındırılabilir. Vercel'in küresel ağı sayesinde uygulamanız hızlı ve güvenilir bir şekilde çalışır.
Güncelleme Kolaylığı: Düzenli olarak güncellenir ve yeni özellikler eklenir. Bu sayede geliştiricilerin uygulamalarını her zaman en son teknolojilerle güncel tutmaları mümkündür.
Kısıtlı özelleştirme: Belirli kurallar ve önceden yapılandırılmış ayarlarla gelen bir framework olduğundan bazı özelleştirme seçenekleri kısıtlı olabilir.
Öğrenme zorluğu: React tecrübesi olan herkes tarafından kolayca öğrenilebilen Next.js, yeni başlayanlar için öğrenme zorluğu olabilir.
Yavaş İlk Yükleme Süresi: Büyük boyutlu uygulamaların ilk yüklenmesinde yavaşlık yaşayabilir. Bununla birlikte otomatik kod bölünmesi özelliği ile bu sorunun üstesinden gelinebilir.
Karmaşık Tasarım: Materyal tasarım desteği sunsa da bazı durumlarda karmaşık tasarım düzenleri oluşturmak zor olabilir.
Güvenlik Riskleri: SSR modu kullanıldığında güvenlik riskleri söz konusu olabilir. Bu nedenle geliştiricilerin güvenlikle ilgili en iyi uygulamaları takip etmeleri önemlidir.
Sunucu Maliyeti: SSR modu kullanıldığında sunucu maliyeti artabilir. Bu nedenle büyük ölçekli web uygulamaları için yüksek sunucu kapasitesine ihtiyaç duyulabilir.
Vue (Vue.js / Vue JS), UI ve tek sayfalı uygulamalar oluşturmayı sağlayan, açık kaynaklı popüler bir Javascript framework(çerçevesi)'üdür. Vue.js ile modern, küçük, orta ve büyük ölçekli mobil ve masaüstü uygulamalar oluşturmak mümkün.
DOM (Document Object Model) üzerinde değişiklik yapmak maliyetli olduğu için Vue.js sanal DOM kullanır. MVVM (Model-görünüm-görünüm modeli) mimari deseni kullanır ve bu mimari modelin GUI (Grafik Kullanıcı Arayüzü) ve görünümden ayırt edilmesini sağlar. Bu ayrım, Frontend ve Backend geliştiricilerin birlikte çalışmasını sağlar.
Vue.js bir JavaScript framework'üdür.
Kolay Bir Başlangıç: Klasik CSS, HTML ve JavaScript, Vue öğrenirken yeterli olacaktır.
Büyük Resmi Kütüphaneler: Vue.js’de ek işlevsellik için isteyeceğiniz özellikler, framework’ün resmi kütüphaneleri tarafından kapsanmaktadır.
Hızlı Renderizasyon: Vue.js’nin hafif yapısı (21 KB’lık paket boyutu), onu rakiplerinden daha hızlı kılıyor. Özellikle sanal DOM oluşturmayı hızlandırır.
Bootstrap; HTML, CSS ve JavaScript ile yazılmış kullanışlı ve yeniden kullanılabilir kod parçalarından oluşan dev bir koleksiyondur. Ayrıca geliştiricilerin ve tasarımcıların hızla tam olarak duyarlı web siteleri oluşturmasını sağlayan bir framework'tür.
Responsive yapı sağlar: Ekran boyutuna göre otomatik olarak yeniden boyutlandırma olanağı sağlar.
Komponentler kolaylık sağlar: Web sayfanıza kolayca yapıştırabileceğiniz bir dizi özellik ile birlikte gelir.
Dokümantasyonu vardır: Dökümantasyon desteği çok başarılıdır. Her kod parçası web sitelerinde açık bir şekilde tanımlanmış ve açıklanmıştır.
İhtiyaca göre özelleştirilebilir: Bootstrap, framework'ü özelleştirebilmenize imkan sağlar. Kullanmak istemediğiniz özellikleri uygulamalarınızdan kaldırarak daha hafif, performanslı uygulamalar geliştirebilirsiniz.
Geniş bir topluluğa sahiptir: Bootstrap'ın arkasında büyük bir tasarımcı ve geliştirici topluluğu vardır. GitHub üzerinde barındırılması, geliştiricilerin Bootstrap’in kod tabanını değiştirmesini ve bunlara katkıda bulunmasını kolaylaştırır.
Tema desteği sunar: Bootstrap dayalı özel şablonları paylaşmak ve satın almak için adanmış birçok web sitesi bulunmaktadır.
React JS
HTML'yi doğrudan JS koduna eklemenizi sağlayan bir uzantı olan JSX'i kullanır.
React’in temel yapısı bileşenler, DOM manipülasyonu ve bileşen durumu yönetimidir. Geri kalan her şey topluluk tarafından geliştirilir ve desteklenir.
Sanal DOM kullanır.
React bileşeninin durumunu değiştirdiğinizde, alt bileşenler de yeniden oluşturulacaktır.
React, yerleşik bir mimari modele sahip değildir.
React uygulamaları yalnızca JavaScript kullandığından geliştiriciler kolay ölçeklendirme için geleneksel kod düzenleme yöntemlerini kullanabilir.
Doküman içeriği Vue kadar geniş olmasa da topluluğu çok daha geniştir.
Vue.js
HTML şablonlarını ve JSX'i kullanır
Vue.js, topluluk tarafından oluşturulmuş geniş bir yapıya sahip olsa da, çekirdek ekibi yaygın olarak kullanılan araçlar ve yardımcı kitaplıkları oluşturur ve destekler.
Sanal DOM kullanır.
Vue.js'de gereksiz yeniden oluşturmaları önlemek için bağımlılıklar izlenir.
Vue.js, MVVM modelinin ViewModel yaklaşımına odaklanmıştır.
Dinamik mimari nedeniyle, ölçeklendirme sınırlamalarının üstesinden gelmek için Vue kütüphanelerinden ve Mixin öğelerinden yararlanmanız gerekecektir.
Birçok dilde son derece ayrıntılı açıklamalar içerir.