Front-End ve Back-End'cilerin bilmesi gerekenler nelerdir?

111520

Megapat
Katılım
16 Mayıs 2016
Mesajlar
1.322
Çözümler
3
Selamlar,
Sorum giriş veya orta seviyesi için değil, ileri seviye bir web geliştirici size göre front ve back end kısımlarında neleri bilmeli?
Örnek:
Front: Bootstrap, tailwind vs vs.
back: PHP, React, Angular, Laravel vs vs.
 
Çok detaylı bir konu, dil özelinde vs çok derinlere iniyor. Frontend için popüler olanlardan bir tanesini seçip bilmeniz yeterli olacaktır. Sektörde tailwind şuan için iyi bir izlenim bırakıyor. Backend için ise node temellerini atmanız faydalı olabilir, belki nest js vs. diyebilrim tabi bu mvp bir proje için yeterli olacaktır. Backend kısmında yenilikçi takımlar go vs gibi dilleri tercih ederek temelleri atarken geleneksel firmalar php ve frameworkleri üzerinden ilerlemeyi tercih ediyorlar.
 
Ucu çok açık bir soru, temel taşları saymazsak her dönem veya şirketler için değişken. Sen React biliyorsundur fakat Angular öğrenmen gereken bir zaman da gelir onu öğrenirsin. Ya da bambaşka bir framework gelir daha iyi olduğunu düşünüyorsundur ve trend haline gelmiştir onu öğrenirsin vesaire.
 
Arkadaşların dediği gibi genel bir soru.
Frontend ile ilgilenen bir kişi hangi frameworkte yazdığı önemli değil. Konseptleri bilmeli. UI & UX bilmeli. JavaScript sular seller gibi bilmeli. SEO optimizasyonunu bilmeli. vs uzar gider bu durum.
Ben bootstrap kullanıyorum, tailwind yazamam diyen biri "Ben frontend'ciyim" diye gezmesin bir zahmet. Yada React kullanıyorum, Vue yazamam. gibi gibi. Bu tür şeyler olmamalı. Proje gereksinimleri ve ekip bilgisi ne ise odur.

Backend tarafında işler bir tık daha değişken. Çok fazla alt başlığı var. İleri düzey dediğin için;
  • Microservice yapısını bilmeli. Docker, kafka, RabbitMQ gibi bu kısımda kullanılan bir projenin haberleşmesi ayağa kaldırılması vs. Bunları bilmeli ve uygulayabilmeli.
  • Distrubute system aşinalık olabilir. Yine docker, kubernetes kullanılabilir.
  • Cloud çözümler. AWS gibi.
  • Loglama kesinlikle olmalı. Bir kullanıcının hangi isteklere geldiğini hangi servislere ulaştığını debug edebilmelisin. Correlation-id dediğimiz konsept. Burada elasticsearch kullanılabilir.
  • Security. JWT, oAuth, ApiKey gibi auth yöntemler.
  • Performans. Cache (Redis), CDN kullanımı vs olabilir. Yine burada projelerini sunucuda scale edebilmeli. Horizontal veya vertical farketmez. İstek durumuna göre scale edebilmeli. Rabbitmq kurdun, arka tarafta consumer çalışıyor. Ama aşırı istek geldi. Tek consumer yetersiz. Hemen hızlıca kendini auto scale edebilmen bir sistem kurulabilir. Bu durumda yeterli istek sayısına göre kendi kendine instance oluşturup kapatabilir. Detaylı girdim ama canlı ve milyon kullanıcı olan projede öyle kuyrukta kaç istek var kaç tane consumer kaldırayım diye düşünecek fırsatınız olmayabilir.


Hem Frontend hemde Backend;
  • Test otomasyonu. Unit testleri yaz. (API test, UI testi vs)
  • Versiyon kontrol. Git kullanabil mesela. Branch, PR, Conflict, Commit, Cherry-Pick nedir bil.
  • En önemlisi DevOps bil. Detaylı girmek istemiyorum ama yine anlatayım, yapılan bir değişikliği canlıya çıkabilmek için manuel ilerleme olmasın. Sen branch oluştur değişikliğini yap, master branche PR olarak at. Jenkins, GithubActions, CircleCI artık ne kullanırsan, o otomatik CI dediğimiz kısımları halletsin Unit Testler koşulsun, kod analizi yapılsın. Master branche birleştiğinde de CD dediğimiz kısım devreye girer ve otomatik deploy aşamasına geçilir. Proje sunucuda ayağa kaldırılır.
 

Technopat Haberler

Geri
Yukarı