Back-end Nedir? Ne İşe Yarar?
Back-end Nedir? Ne İşe Yarar?
İster bir web sitesi ister bir mobil uygulama olsun yazılımları temelde iki parçaya ayırmak mümkün. Birincisi kullanıcının etkileşime girdiği kısım olan ön uç (front-end), ikincisi ise tüm işlemlerin gerçekleştiği, verilerin saklandığı ve yönetildiği arka uç (back-end) kısmıdır. Bu ayrımın en önemli nedeni yazılım geliştirme sürecini daha kolay ve kontrol edilebilir hale getirmesidir. Yazılım geliştirme sürecini birbirinden ayrı iki süreç haline getirerek farklı alanlarda uzmanlaşmış yazılım ekiplerinin oluşmasına imkan sağlanır.
Back-end uygulamanın en hayati kısmı, uygulamanın mantıksal sürecinin yönetildiği, beyni desek yanlış olmaz. Şimdi gelin back-end ne demek, back-end geliştirici ne yapar detaylı bir şekilde irdeleyelim.
Back-End Nedir?
Yazılımların front-end ve back-end olarak adlandırılan iki parçaya ayrılması geliştiriciler için oldukça önemlidir. Bu ayrımı betimlemek için sıklıkla kullanılan bir takım benzetmeler mevcuttur. Yazılımları tiyatro oyunu, buz dağı gibi görünenin çok daha fazlasını vurgulayan benzetmeler kullanılabilir. Kullanıcı bir web sitesine ya da bir uygulamaya giriş yaptığında önüne gelen ekran ile sahnelenen bir tiyatro oyununa benzetebiliriz. Perde arkasında seyircinin görmediği birçok çalışma mevcuttur. Bir yazılımda da kullanıcının gördüğünden çok daha fazla ve karmaşık işlem bulunur. İşte back-end tam da bu kullanıcıların görmediği ancak yazılım için hayati önem taşıyan kısmıdır.
Back-End Ne İşe Yarar?
Bir web sitesine ya da mobil uygulamaya girdiğinde nasıl çalıştığını düşündün mü? Bu yazıyı okumak için tıkladığında sunucuya bir istekte bulunmuş oldun. Bu istek sonucunda veri tabanından yazı getirilerek senin ekranına geldi. Biraz daha detaylı düşünelim. Bir alışveriş sitesine girildiği anda veri tabanından içerikler gelir. Bunlar kampanyalar, indirimli ürünler, kategoriler ve benzeri verilerdir. Sonrasında kullanıcı bir ürüne detaylı bakmak için tıkladığında back-end’den “bana bu ürünün özelliklerini getir” benzeri bir istekte bulunmuş olursun. Back-end veri tabanından o bilgileri bulur ve front-end’e gönderir. Front-end gelen bilgiyi ekrana yansıtır. Front-end ve back-end arasındaki iletişim benzer şekilde her aşamada devam eder.
Back-End Geliştiricisinin Sorumlulukları Nelerdir?
Uygulamanın back-end kısmını geliştiren yazılımcının yerine getirmesi gereken bazı sorumlulukları vardır. Bunlar şöyle ifade edilebilir:
- Temiz kod yazılmalıdır. Her geliştiricinin sahip olması gereken bir özellik olmasına rağmen back-end geliştiriciler için temiz ve bakımı kolay kod yazabilme ihtiyacı had safhadadır.
- Stabil ve performanslı uygulamalar geliştirmelidir.
- Ekip çalışmasına uygun olmalıdır. Geliştirme sürecini belirlenen hedefler doğrultusunda sürdürmelidir.
- Doğru iletişim kurabilmelidir. Back-end geliştiriciler özellikle front-end geliştiriciler ile sürekli iletişim halinde olmalıdır. Bu iletişimin doğru sağlanması uygulama geliştirme sürecinin sağlıklı olarak sürdürülebilmesi için önemlidir
Back-End Geliştirici Ne İş Yapar?
Backend uygulama geliştirme farklı yetkinlikler gerektiren süreçlerin bir birleşimidir. Uygulamanın veri tabanının tasarım ve bakımından, API’Inın oluşturulmasına kadar pek çok süreç mevcuttur. Bir ekip içerisinde geliştiriciler bu süreçleri görev dağılımı yaparak üstlenebilir.
Backend geliştiriciler sunucu tarafında çalışan uygulamaları kodlar. Bu uygulamalar kullanıcılardan gelen istekleri işleyip yerine getirme, veri tabanı ile iletişim kurma ve kullanıcılara uygun yanıtı göndermeden sorumludur. Verilerin saklandığı veri tabanını tasarlamak ve bakımını sağlamak backend geliştiricisinin görevlerindendir. Performansı optimize edilmiş veri tabanı sorguları oluşturmak ve veri güvenliğini sağlamayı amaçlar.
Backend’in uygulamanın diğer parçaları ile iletişime geçmesi için API (Application Programming Interfaces) kullanılır. API’ların yazılması, test edilmesi ve dokümante edilmesi backend geliştiricinin görevidir.
DevOps süreçlerini yönetmek çoğunlukla ayrı bir roldür. Ancak backend geliştiricinin sorumluluğunda da olabilir. Sunucuların sağlığından, uygulama performansına kadar farklı konular ile ilgilenir. Backend’in güvenliğini de sağlamak yine geliştiricinin görevidir. DevOps’da olduğu gibi çoğunlukla ekiplere bu alanda uzmanlaşmış özel kişiler dahil edilir.
Back-End Avantajları Nelerdir?
Uygulama geliştirmeyi front-end ve back-end şeklinde birbirinden kısmen bağımsız iki ayrı geliştirme sürecine ayırmanın geliştiriciye sağladığı avantajlar vardır.
Backend geliştiriciler, frontend geliştiricilerin ilgilendiği arayüz geliştirme ve benzeri süreçlerle ilgilenmediği için daha temiz, performanslı uygulamalar geliştirmeye yoğunlaşabilir. Benzer faydalar frontend geliştiriciler içinde geçerlidir. Takımların üzerindeki iş yükü dağıtılmış olur.
Back-End Dezavantajları Nelerdir?
Tam olarak dezavantaj diyemesek de, back-end geliştiri olmanın zorlukları yok değil. Back-end geliştiriciler karmaşık süreçler ile ilgilenir.Bu karmaşık süreçleri mantıksal bir çerçeveye oturtmakla sorumludur. Kullanılan teknolojilerin özellikleri, veri tabanı işlemleri derken işler zorlayıcı bir hal alabilir. Yine her geliştirici için geçerli olan gelişen teknolojileri takip ederek sürekli güncel kalmaya çalışmak yorucu olabilir.
Back-end geliştiricilerin sahip olması gereken teknik gereksinimler vardır. Bunlar programlama dillerinin yanı sıra veri tabanı çözümleri gibi teknolojilerdir. Gelin back-end geliştiricilerin sahip olması gereken belli başlı teknik gereksinimlerden bazılarına göz atalım.
Back-End Programlama Dilleri Nelerdir?
Backend geliştiricilerin tercih ettiği belli başlı programlama dilleri ve frameworkler mevcuttur. Yazılım sektöründe kabul görmüş ve backend programlama için biçilmiş kaftan olan bu back-end yazılım dilleri ve teknolojilere yakından bakalım.
PHP
Personal Home Page açılıma sahip olan PHP, 1995 yılından bu yana kullanımda. Günümüzde geliştiricileri tercih edilmesi konusunda ikiye bölmüş olsa bile hala milyonlarca web sitesinin backend’ine güç verir. Öğrenme eşiğinin düşük olması ile PHP hızlı bir şekilde ürün ortaya çıkarılmasına imkan verir. Popüler PHP frameworkleri Laravel ve Symfony backend geliştirmede sıkça kullanılır.
.NET
Backend geliştirmede sıkça kullanılan .Net, geliştiriciye ihtiyaç duyabileceği pek çok araç için destek sağlayan bir uygulama geliştirme platformudur.
Go
Popülerliği gün geçtikçe artan Go, backend geliştirme için günümüzde çokça tercih edilir hale geldi. Go geliştiriciye sunduğu kullanım kolaylığı, hızı ve ölçeklenebilirliği ile öne çıkar.
Python
Sunduğu performans ve nispeten kolay öğrenilmesiyle öne çıkan Python, nesne yönelimli bir programlama dilidir. Django ve Flask gibi frameworkleri backend geliştiriciler tarafından tercih edilmesinin önemli sebeplerindendir.
Java
Platform bağımsız yapısı, sunduğu performans ve ölçeklenebilir yapısı ile Java backend geliştirme için tercih edilen en popüler dillerden biridir. Genel olarak daha kompleks ve büyük ölçekli uygulamalar hazırlamak için kullanılır. Spring framework Java ile backend uygulama geliştirmede en çok tercih edilen frameworklerden birisidir.
Node.js
Ölçeklenebilir ve performanslı sunucu tarafında çalışan uygulamalar oluşturmak için kullanılır. Sunucu tarafında da JavaScript kullanılmasına imkan sağlar.
Ruby on Rails
Rails, Ruby dili ile yazılmış bir web uygulama geliştirme framework’üdür. Ruby on Rails backend geliştiricileri arasında tercih edilen popüler bir seçenektir.
Veritabanları
Veritabanı uygulamanın olmazsa olmaz parçasıdır. Kullanılacak veri tabanı çözümü saklanacak veriye ve beraber çalışacağı programlama diline uygun olarak seçilir. Seçilen veri tabanı geliştiricinin veri ile nasıl iletişime geçeceği konusunda belirleyici olur. Backend geliştirmede sıklıkla tercih edilen popüler birkaç veri tabanı çözümü ise şu şekildedir.
MySQL
Ücretsiz ve açık kaynak kodlu ilişkisel veri tabanı yazılımıdır. En popüler çözümlerden biridir.
Microsoft SQL Server (MSSQL)
Microsoft tarafından geliştirilen ilişkisel veritabanı yönetim sistemidir. Windows işletim sistemi üzerinde çalışır. Büyük ve karmaşık veritabanları için uygundur.
Oracle Database
Oracle tarafından geliştirilen gelişmiş bir ilişkisel veri tabanı yönetim sistemidir. 1977 yılından bu yana geliştiriliyor.
PostgreSQL
Açık kaynak kodlu ilişkisel veri tabanı yönetim sistemidir. Sahip olduğu yetenekler ve topluluk desteği ile popüler bir seçenek haline gelmiştir.
MongoDB
Açık kaynak kodlu ve ücretsiz, NoSQL (Not Only SQL) veri tabanı çözümüdür.
Redis
Remote Dictionary Server ifadesinin kısaltması olan Redis açık kaynak kodlu anahtar/değer (key/value) tabanlı NoSQl veri tabanıdır. Redis veriyi bellekte tutar. Sunduğu performans ile oldukça popüler bir seçenektir.
Web Sunucuları
Backend uygulamaları bir sunucuda barındırılır. Uygulama bu sunucu üzerinde çalışır ve buradan dünya ile iletişime geçer. En çok tercih edilen web sunucuları ise şu şekildedir.
Nginx
Açık kaynak kodludur. Düşük kaynak tüketimi ile yüksek performans sunabilir. En çok tercih edilen seçeneklerden biridir.
Apache
Tam adı Apache HTTP Server olan Apache açık kaynak kodlu bir sunucu yazılımıdır. En çok tercih edilen seçeneklerden bir diğeridir.
LiteSpeed
Yüksek performanslı ve ölçeklenebilir bir web sunucu çözümüdür. Açık kaynak kodlu OpenLiteSpeed adlı versiyonu da bulunuyor.
Microsoft-IIS
Microsoft tarafından geliştirilen web sunucu yazılımıdır. Windows sistemlerde çalışmak üzerine tasarlanmıştır.
Backend geliştirme sürecinde kullanılacak teknolojilerin seçimi konusunda birkaç nokta mevcuttur. Bir programlama dili ya da veri tabanı çözümü seçmeden önce uygulamanın gereksinimleri net bir şekilde ortaya konmalıdır. Uygulamanın büyüklüğü, kullanıcı sayısı, uygulamayı geliştirecek ekibin yetkinlikeri gibi parametreler göz önüne alınmalıdır. Sonrasında uygun olan teknolojiler seçilerek yazılım geliştirme sürecine başlanabilir.
Back-end Geliştirici Olmak İyi Bir Kariyer Seçeneği midir?
Kariyerinde backend geliştirici olarak yön vermek istersen hakim olman gereken pek çok konu var. Kendini çok yönlü olarak geliştirmelisin. Bir yazılım çalışma mantığını anlayabilmeli, karmaşık bir süreci mantıksal bir şekilde ifade edebilmelisin. Kendini sürekli güncel tutarak teknolojik gelişmeleri takip edebilmeli ve adapte olabilmelisin. Eğer tüm bunları yapmaktan keyif alıyorsan, backend geliştirici olmak oldukça iyi bir kariyer seçeneğidir.
Kariyerine back-end geliştirici olarak devam etme konusunda ilk adımı Techcareer.net tarafından hazırlanan Bootcamp eğitimleri ile atabilirsin. Techcareer.net tarafından düzenlenen Back-End .Net, Java bootcamplerini kaçırma. Yazılım geliştirme kariyerinde senle aynı süreci yaşayan geliştiriciler ile bir araya gelmek istersen topluluk sayfamızdan Discord kanalımıza katılabilirsin.
Sıkça Sorulan Sorular
Full-stack geliştirici nedir?
Geliştiriciler üstlendikleri görevler açısından frontend ve backend olarak ikiye ayrılır. Bu iki rolün yanı sıra full-stack geliştiriciler de vardır. Full-stack geliştirici baştan sona tüm yazılım geliştirme sürecini hakim olmalıdır. Full-stack geliştirici uygulamanın hem frontend kısmını hemde backend kısmını geliştirecek yetkinliğe sahiptir.
Back-end ve Front-end geliştirici arasındaki fark nedir?
Uygulama geliştirme süreci iki ayrı ekip tarafından geliştirilen iki ayrı sürece ayrılır. Back-end geliştirici web sitesinin ya da mobil uygulamanın arka planında gerçekleşen işlevlerinden sorumludur. Verileri saklar, bunları işler ve kullanıcıya geri gönderir. Front-end geliştirici ise uygulamayı açtığımız anda ekrana gelen kısımdan sorumludur. Back-end’den gelen veriyi arayüz ile birlikte kullanıcıya sunmakla sorumludur.
Back-end ve Full-stack geliştirici arasındaki fark nedir?
Back-end geliştiriciler yukarıda saydığımız gibi yazılımın, kullanıcı tarafından görülmeyen arka plandaki sürecini geliştirmekle sorumludur. Full-stack geliştirici ise backend geliştirme sürecini üstlenmenin yanı sıra uygulamanın front end geliştirme sürecini de gerçekleştirir. Normalde backend geliştiricinin sorumluluğunda olmayan kullanıcı tarafında çalışan arayüz tasarımı gibi konularla da ilgilenir.
Back-End geliştirme kariyerime nasıl başlayabilirim?
Back-end geliştirici olmak için ilk adımı techcareer.net üzerinden ücretsiz eğitimler ile atabilirsin. Katılacağın Bootcamp’leri başarıyla tamamlamanın ardından iş başvurularını yapabilirsin.