Yeni Başlayanlar İçin Web Geliştirme Kılavuzu Bölüm 2: Back End

 Yeni Başlayanlar İçin Web Geliştirme Kılavuzu Bölüm 2: Back End
Okunuyor Yeni Başlayanlar İçin Web Geliştirme Kılavuzu Bölüm 2: Back End

Bugün web geliştirmeye girişimize devam ediyoruz. In önceki yazı biz önyüzü gelişimini keşfetmek ile başladı ve bugün biz arka uç gelişimi hakkında konuşacağız.

Bazen sunucu tarafı geliştirme olarak da adlandırılan arka uç geliştirme, sunucuda gerçekleşen ve genellikle kullanıcılar tarafından görülmeyen süreçleri geliştirmeyi ifade eder. Bir web kullanıcı arayüzü, arka uca bir miktar HTML oluşturmayı, kullanıcı girişini bir veritabanına kaydetmeyi, bir kullanıcının kimliğini doğrulamayı, bir e-posta göndermeyi veya bir ödeme isteğini işleme koymayı isteyen talepler gönderebilir. Uygulamanın bu kısmı kullanıcı için şeffaf olsa da, hiçbir şekilde daha az önemli değildir. Bu, başvurunuzun kalbi ve beynidir.

http://www.webodasi.com

Grafiğin renk kodlaması çok basittir: sarı çizgiler öğrenmeniz gereken temel şeyleri gösterir, turuncu daha sonra bırakabileceğiniz daha ileri konuları temsil eder ve gri, özel projeler için faydalı olabilecek niş konulardır.

Diller

Ön uç geliştirme ile karşılaştırıldığında, arka uçtaki programlama dillerinin seçimi çok daha geniştir ve kullanım durumunuza ve ortamınıza bağlı olarak bir çözümde özgürsünüz.

Programlama dillerini sınıflandırmanın birçok yolu vardır ve bunları komut dosyası oluşturarak ve derlenmiş dillerle gruplamak için keyfi bir karar verdik. Yine de, bunun tamamen doğru olmadığını kabul etmeliyim. Bazı betik dilleri aslında anında derlenir ve derlenen bazı dillerin çevirmenleri olabilir. Ancak bu ayrım, analizimiz için uygun bir başlangıç ​​noktası görevi görür.

Komut dosyası dilleri

Yürütülmeden önce açık derleme gerektirmeyen dillere komut dosyası dilleri veya yorumlanmış diller denir. Derlenmiş dillerin aksine, çalıştırılabilir ikili bir dosya üretmezler. Bunun yerine kod değerlendirilir ve anında çalıştırılır. Bazen, kodlama dillerini derleyicinin gerektirdiği katı bir şekilde yazmanız gerekmediğinden, başlamak daha kolaydır. Ancak bu, derleme sırasında keşfedilebilecek hataların yalnızca çalışma sırasında ortaya çıkacağı anlamına gelir.

Daha popüler betik dillerinden bazıları şunlardır:

  • Node.js sunucu tarafı çalışma zamanını kullanan JavaScript . Kendi JavaScript özelliklerini destekler ve dosya sistemiyle çalışma gibi arka uç kullanım durumlarını karşılamak için bir dizi API sağlar. Node.js öğrenmek harika bir seçimdir çünkü tek bir dil öğrenerek hem ön uçta hem de arka uçta çalışabilirsiniz. Node.js, express , koa veya LoopBack gibi birkaç popüler çerçeveye sahiptir .
  • Python , genel amaçlı bir programlama dilidir. Basit sözdizimi ve net yapılar, yeni başlayanlar için öğrenmeyi oldukça kolaylaştırır. Python, uygulama geliştirmek için yaygın olarak kullanılmaktadır, ancak aynı zamanda bilimsel araştırma yapmak ve yapay zeka ile çalışmak için önemli bir çekiş gücü kazanmıştır. Şu anda kullanılan iki ana sürüm var: Python 2 ve Python 3. Python üzerinde geliştirilen popüler projelerden biri Django içerik yönetim sistemidir. Flask , web geliştirme için popüler bir mikro çerçevedir.
  • PHP – web uygulamaları için başka bir popüler programlama dili. Dilin kendisi, yeni başlayanlar için düşük bir giriş engeline sahiptir, ancak aynı zamanda orta düzey kullanıcılar için daha gelişmiş özellikler sağlar. PHP’de oluşturulan en popüler projelerden bazıları WordPress ve Drupal’tır , eskisi tartışmasız dünyanın en çok kullanılan içerik yönetim sistemidir. Göze çarpan çerçeveler Laravel , Symfony ve CodeIgniter’dır .
  • Ruby – okumak ve yazmak için basit ve doğal olacak şekilde tasarlanmış bir komut dosyası dili. Ruby için en popüler geliştirme çerçevesi Ruby on Rails’tir . Popüler bir statik web sitesi üreticisi olan Jekyll , Ruby üzerine kurulmuştur.

Derlenen diller

Derlenmiş bir dil kullanılarak yazılan kodun çalıştırılmadan önce bir ikili dosyada derlenmesi gerekir. Bu, geliştirici tarafından gerçekleştirilmesi için açık bir ekstra adım gerektirse de, ek faydalar da sağlar. Derleyici, kodu uyumsuzluklar için analiz edebilir ve olası sorunlar hakkında size erken geri bildirim verebilir. Bazı derleyiciler, sonuçta ortaya çıkan bayt kodunu belirli bir platform için optimize ederek üstün performans sağlayabilir. Derlenen diller, betik dillerinden daha yüksek bir giriş engeline sahip olsalar da, genellikle ek güvenlik önlemleri ve daha açıklayıcı kodlar nedeniyle büyük projelerde tercih edilirler.

Aralarından seçim yapabileceğiniz çok sayıda dil var.

  • Java , Sun Microsystems tarafından geliştirilen ve şu anda Oracle tarafından sürdürülen üst düzey bir nesne yönelimli programlama dilidir. Java, farklı platformlar arasında taşınabilir olacak şekilde tasarlanmıştır: kaynaklar, herhangi bir platform için bir Java Sanal Makinesi üzerinde çalıştırılabilen Java bayt koduna derlenir. En popüler olan Bahar olmak üzere, web uygulamaları geliştirmek için birçok farklı çerçeveye sahip oldukça olgun bir dildir . Ek olarak, Android uygulamaları geliştirmek için Java kullanılabilir. Java’nın eski moda olduğunu ve Kotlin gibi diğer JVM dillerinden daha düşük olduğunu düşünmede eğilimler olsa da, hala en popüler programlama dillerinden biridir. Java, işletme sektöründe oldukça popülerdir.
  • C # , Microsoft tarafından geliştirilen bir başka üst düzey nesne yönelimli programlama dilidir. Başlangıçta Windows’ta kullanılmak üzere geliştirilmiştir, artık nispeten yeni .NET Core çalışma zamanını kullanarak platformlar arası uygulamalar oluşturmak için kullanılabilir . C # kullanarak web uygulamaları oluşturmak için en popüler çerçevelerden biri ASP.NET Core’dur . C #, Microsoft’un teknoloji yığınını benimseyen şirketler arasında popülerdir.
  • Go , Google tarafından geliştirilen ve hızla popülerlik kazanan nispeten genç bir dildir. Java veya C # ‘dan daha az ayrıntılı olacak şekilde tasarlanmıştır ve diğer dillerde mevcut olan karmaşık yapıların bazılarını kasıtlı olarak dışarıda bırakarak basit ilkellere dayanır. Go son derece hızlıdır, minimum bellek ayak izine sahiptir ve birinci sınıf eşzamanlılık desteğine sahiptir, bu nedenle hızın ve düşük kaynak tüketiminin önemli olduğu projeler için iyi bir adaydır. Go’nun etrafındaki kütüphane ve araç ekosistemi hala gelişiyor ve toplulukta pek çok ilginç projenin ortaya çıktığını görüyoruz. Go, blockchain geliştirmede önemli bir popülerlik kazandı.
  • Kotlin , JetBrains tarafından geliştirilen ve Java’nın yakın bir rakibi olan bir dildir. Kontlin, Java sanal makinesinde çalışır, ancak JavaScript’e de derlenebilir. Java’dan daha az ayrıntılı olacak şekilde tasarlanmıştır, birinci sınıf işlev desteği ekler ve yaygın hataları önlemek için ek güvenlik önlemleri sunar. Java gibi, Android uygulamaları geliştirmek için de kullanılabilir.
  • Scala , başka bir JVM tabanlı dil ve Java’ya bir alternatiftir. Daha kısa bir sözdizimine, ek güvenlik özelliklerine sahiptir ve fonksiyonel programlamayı yoğun bir şekilde kullanır.
  • Erlang – eşzamanlılık ve yüksek kullanılabilirlik için tasarlanmış işlevsel bir dil. Erlang, yüksek performans ve ölçeklenebilirliğin kritik olduğu uygulamalarda popülerdir. Popüler kullanım örnekleri, görüntü ve sinyal işlemeyi veya büyük miktarda verinin analizini içerir.
  • Haskell – güçlü yazma sistemi ve açık ve güvenilir kod üretmeye yardımcı olan bir tasarım için değer verilen başka bir işlevsel programlama dili. İşlevsel bir dil olduğu için, aynı zamanda verimli bir şekilde ölçeklenir ve iyi performans sunar.

Veritabanları

Çoğu uygulamanın önemli bir yeteneği, kullanıcının verilerini depolamaktır. Genellikle veritabanı yönetim sistemleri (DBS) adı verilen özel bir yazılım kullanılarak yapılır. Bir DBS, uygulamaların verileri depolamasına, almasına ve güncellemesine izin veren temeldeki veri depolarına erişim sağlar. Farklı veri şekilleri ve hacimleri için optimize edilmiş farklı veri tabanları vardır. Bu kılavuzda, en popüler iki türe bir göz atacağız: ilişkisel ve ilişkisel olmayan.

İlişkisel

İlişkisel veritabanları, satırların girişleri ve sütunları – giriş özelliklerini temsil ettiği tablolarda verileri depolar. Farklı tablolardaki satırlar, farklı giriş türleri arasındaki ilişkileri temsil etmek için yabancı anahtarlar kullanılarak bağlanabilir. Örneğin, bir çevrimiçi mağaza oluşturuyorsanız, her satırın ayrı bir siparişi temsil ettiği “sipariş numarası”, “müşteri adı” ve “teslimat adresi” gibi sütunlara sahip siparişleri depolamak için bir tablonuz olabilir. Sipariş edilen ürünlerle ilgili bilgiler, sipariş tablosuna referanslarla birlikte “sipariş kalemleri” adı verilen farklı bir tabloda saklanacaktır.

Çoğu ilişkisel veritabanı, verileri sorgulamak veya değiştirmek için Yapılandırılmış Sorgu Dili (SQL) adı verilen bir dili veya onun lehçesini kullanır. Bu nedenle, genellikle SQL veritabanları olarak adlandırılırlar.

Popüler ilişkisel veritabanları:

  • Oracle Database , Oracle tarafından geliştirilmiş bir veritabanıdır. Yüksek ölçeklenebilirliği ve güçlü özellik seti nedeniyle, genellikle büyük işletmeler tarafından kullanılır. Yüksek lisans maliyetleri nedeniyle küçük ve orta ölçekli projelerde daha az kullanılır.
  • MySQL – İsveçli bir şirket MySQL AB tarafından geliştirilen ve şu anda Oracle’a ait olan ücretsiz bir açık kaynaklı veritabanı. MySQL, verileri farklı şekilde depolamak ve kullanmak için her tablo için farklı depolama motorları kullanabilir. MySQL, çok çeşitli durumlarda kullanılır, ancak web uygulamaları için, özellikle LAMP (Linux, Apache, MySQL, PHP) yığınında çok popülerdir. Ayrıca, büyük ölçekli kullanıcılar için çeşitli ücretli sürümler sunar.
  • MSSQL olarak da anılan SQL Server , Microsoft tarafından sağlanan bir veritabanıdır. Çeşitli iş yüklerini ve veri hacimlerini işlemek için bir dizi farklı sürüme sahiptir. SQL Server, Oracle’ın büyük bir rakibidir ve Microsoft yığın kullanıcıları arasında popülerdir.
  • PostgreSQL – dünya çapında bir gönüllüler ekibi tarafından geliştirilen ücretsiz bir açık kaynak veritabanıdır. Zengin bir dizi özellik sağlar ve büyük iş yüklerini idare edebilir.

İlişkisel olmayan

İlişkisiz veritabanları, verileri tablo dışındaki modellerde depolar. Anahtar / değer çiftlerinin, belgelerin, grafik ilişkilerinin veya zaman serilerinin depolanması gibi kullanım durumlarınıza bağlı olarak seçebileceğiniz farklı modeller vardır. İlişkisiz veritabanları bir süredir ortalıkta olmasına rağmen, son zamanlarda daha basit tasarım ve daha kolay ölçeklendirme nedeniyle popülerlik artışı yaşadılar.

İlişkisiz veritabanları, çoğu SQL yerine kendi sorgu dilini kullandığından NoSQL veritabanları olarak da adlandırılır.

Bu üç veritabanı web geliştirmede sıklıkla kullanılmaktadır.

  • MongoDB , JSON benzeri nesneleri depolayan ücretsiz bir açık kaynaklı belge veritabanıdır. Bu nesneleri depolayabilir, alabilir ve uygulamanızdaki nesnelerle eşleyebilirsiniz. Ayrıca olağan sorgulama ve toplama yeteneklerine de sahiptir. MongoDB, veri tutarlılığının öncelikli bir sorun olmadğı uygulamalar için iyi bir adaydır.
  • Redis , genellikle önbelleğe alınmış verileri geçici olarak depolamak ve mesajları aktarmak için kullanılan bir bellek içi anahtar / değer veritabanıdır. Bu tür verilerin kalıcı olması gerekmediğinden, performansı artırmak için verileri diske kaydetme devre dışı bırakılabilir veya geciktirilebilir. Redis, dizeler, sayılar, listeler, haritalar vb. Gibi farklı değer türlerini saklayabilir.
  • Elastic Search , açık kaynaklı bir metin arama ve analiz motorudur. Metin belgelerini saklamanıza ve aranabilir bir metin dizini oluşturmanıza olanak tanır. Elastic Search, genellikle günlük analizi (özellikle ELK yığınının bir parçası olarak ) ve serbest metin belgesi araması için kullanılır.

Mesajlaşma

Bazen sunucu tarafındaki bileşenlerin arka planda yürütülmesi gereken işleri tetiklemesi gerekir. Örneğin, bir iş raporu istemek, raporu oluşturan ve kullanıcının beklemesine gerek kalmadan kullanıcıya e-posta ile gönderecek uzun bir süreci tetikleyebilir. Bunu yapmak için, farklı bir bileşene bir mesaj gönderebilmemiz ve başarıyla işlendiğinden emin olmamız gerekir. İş başarısız olursa, yeniden başlatılması gerekir. Bu tür bir işlevsellik sağlayan yazılıma mesaj simsarı denir.

En popüler iki mesaj komisyoncusu şunlardır:

  • RabbitMQ , farklı mesaj teslim modellerini ve yönlendirme kurallarını destekleyen geleneksel bir mesaj aracısıdır. Mesajın tüketici tarafından teslim edilip işleneceğini garanti eder. Başarısız mesajlar teslim edilemeyenler kuyruğunda saklanabilir. RabbitMQ , diğer mesaj aracıları ve istemci kitaplıkları tarafından da desteklenen standart AMPQ protokolü üzerinden çalışır .
  • Apache Kafka , mesaj aracısı olarak da kullanılabilen bir akış işleme motorudur. Standart ileti simsarı özelliklerinin çoğunu sağlamanın yanı sıra, geçmişten gelen iletileri yeniden işleyebilme gibi gelişmiş özellikler de sunar. Ayrıca, yüksek hacimli mesajların işlenmesine izin veren daha yüksek performans sağlar.

Bu iki bölüme katlandıysanız, hem arka uç hem de ön uç geliştirme için kullanılan teknolojiler hakkında zaten bir fikriniz olmalı. Bağlantıları takip etmenizi ve karar vermeden önce ve hangi konuda uzmanlaşmak istediğinize karar vermeden önce biraz araştırma yapmanızı tavsiye ederim.

Bir sonraki bölümde, her geliştiricinin bilmesi gereken araçlara bir göz atacağız.

Dilerseniz Bir Sonra Ki Blog Sayfalarımıza Göz Atabilirsiniz..

Görüşmek Üzere Hoşçakalın WebOdasıyla Kalın..

Yapılan Yorumlar
Bir Yorum Yapın