JavaScript ve Django ile Geleceğin Web Uygulamalarını Geliştirme

5 yıl önce

Sağlam web uygulamalarını hızla oluşturmak çok zordur, zaman alıcıdır ve kaynak tüketir. Her web uygulaması geliştirme dilinin ve çerçevesinin kendi dezavantajları vardır. Bazı web uygulaması programlama dilleri yavaş geliştirme, güvenlik sorunları, karmaşık ve öğrenmesi zor olduğundan, web uygulamalarını kolay, hızlı ve etkili bir şekilde oluşturmanın kolay ve etkili bir yoluna ihtiyacınız vardır.

Sağlam web uygulamalarını hızla oluşturmak çok zordur, zaman alıcıdır ve kaynak tüketir. Her web uygulaması geliştirme dilinin ve çerçevesinin kendi dezavantajları vardır. Bazı web uygulaması programlama dilleri yavaş geliştirme, güvenlik sorunları, karmaşık ve öğrenmesi zor olduğundan, web uygulamalarını kolay, hızlı ve etkili bir şekilde oluşturmanın kolay ve etkili bir yoluna ihtiyacınız vardır.

Teknolojik gelişimin kaotik doğası bazen dünyayı kargaşaya sürükler; aniden popüler olmak için tasarlanmayan bazı şeyler ve kaybolmaya başlayan şeyler. Son zamanlarda modern programlama dilleri denizinde zirveye yükselen JavaScript olmasa hiçbir programlama dili beni daha fazla şaşırtamazdı. Web'de olmadan yapamayacağınız ilk kararlı dil olmak.

NodeJS'nin (bir javascript motoru) yükselişiyle, Javascript daha fazla güç, farkındalık, işlevsellik ve mevcut uygulamaları yeniden kullanma becerisi kazanır.

Python söz konusu olduğunda, öğrenmesi ve kullanması kolay, ancak daha fazla işlevselliğe sahip, ilerleyen programlama dillerinden biri olduğunu bilmelisiniz. Hepimizin bildiği gibi, Django Python üzerine inşa edilmiştir ve son teslim tarihlerine sahip mükemmeliyetçi için web çerçevesi olarak kabul edilir. Bunun iyi bir yanı, açık kaynak olması ve arkasında büyük bir topluluk olmasıdır.

Gelecekteki web uygulamaları hakkında konuşurken, Django'nun sunabileceği çok şey var ve her türlü modern web uygulaması yapısını barındırma yeteneği var. Modern web uygulamaları oluşturmak için Django ve Javascript web çerçevelerini yığınlamak, arka uç ve ön uç çerçevelerini yığınlamanın en iyi yollarından biridir.

Django ve Vue ile oynayarak edindiğim bilgilerle, Django-Javascripts yığınındaki web uygulamalarının geleceğini gördüm ve PWA, SPA, Isomorphic Javascript uygulamaları, Yerel uygulamalar ve benzerlerini içeriyor.

Javascript'in Gücü

javascript'in kazandığı yetenek hakkında biraz konuşalım ...

 

Gönderi için resim

Web’in başlangıcından beri, göz atma deneyimi basit bir döngü halini aldı; bir istemci web tarayıcısı bir sayfa talep eder (örneğin, " http://www.scholarsglobe.com /"), bir yerde bir sunucuyu çağırır. İnternet'in bir HTML sayfası oluşturması ve internet üzerinden geri göndermesi. O zamanlar bu yöntem işe yarıyor gibi görünüyor çünkü tarayıcılar çok güçlü değildi ve HTML sayfaları çoğunlukla statik içerikler içeriyordu. O zamanlar JavaScript, web sayfalarının daha fazla olmasına izin veriyor dinamik, resim slayt gösterilerinden, tarih seçici widget'larından ve bazı jQuery eklentilerinden çok fazla özelliğe sahip değildi.

Bilgi işlem ve internette birkaç yıl süren gelişmeden sonra, yaratıcı fikirli geliştiriciler / programcılar web'i sınırlarına (henüz bilinmeyen) taşıdılar ve web tarayıcıları javascript teknolojilerine ayak uydurmak için gelişti. Web artık iyi özellikli bir uygulama platformu haline geldi. Geliştiricilerin artık HTML5, CSS3, Javascript çalışma zamanları standartlarıyla web üzerinde gerçek ve zengin web uygulamaları oluşturmalarına olanak tanır.

Bir acemi olarak Javascript öğrenmesi çok kolay, orta seviye olarak kafa karıştırıcı ve bir uzman olarak zor olabilir.

Bir arkadaşım bundan söz ederdi:

Javascript en kafa karıştıran programlama dilidir

Bana göre bunun nedeni, dağıtılmış yapıları nedeniyle yazmanın farklı yolları olduğu anlamına geliyor.

Bu nedenle, web geliştiricisi olarak, bir profesyonel veya uzman olarak olmasanız da Javascript'te kod yazmayı bilmeniz gerekir çünkü şu anda web'deki her şey bir miktar Javascript'e sahiptir ve şimdi mobil ve masaüstü uygulamaları bile Javascript'i NodeJS ile derleyerek çalıştırır bayt kodlu.

Bence bu harika. Bir Javascript programını başlatmak için karmaşık bir yapı uygulaması yazmanıza gerek yok, tek ihtiyacınız olan bir fonksiyon yazmak ve sonra onu çağırmak. Çoklu dolgulara sahip eski tarayıcılara yeni özellikler eklemek çok kolaydır. ES6'yı ES5'e dönüştürmek babel ile mümkündür ve daha fazla işlevsellik için Typescript'i kullanabilirsiniz.

JavaScript'in dikkate değer özellikleri:

Sunucu Tarafı Oluşturma: Javascript'in Node.js kullanarak sunucu üzerinde çalışma yeteneği, onu tek kod tabanlarında birleştiriyor. Büyük ölçekli uygulamalar için karmaşıklığı azaltır ve daha karmaşık mimarilerin daha kolay işlenmesine izin verme avantajına sahiptir. Bu, İzomorfik Javascript uygulaması fikrini yaratır. Yani ön uç şablonlarınızı sunucudan oluşturursunuz.

Yerel Çapraz Platform Desteği: Javascript, IOS, Android ve hatta Windows / Mac Masaüstü genelinde yerel çapraz platform için yeterince olgunlaştı. Bu, beceriler ve uygulamaları için destek etrafındaki darboğazları azaltır.

Ölçeklenebilirlik: Javascript tek iş parçacıklı yapısı, çoğu durumda performansı ve ölçeklenebilirliği artıran yazılım tasarımına bir standart uygular. Tipik olarak bu senaryolar, yüksek yüklerin hizmet olması gereken bir web bağlamındadır.

Yeniden kullanılabilirlik : Javascript, yeniden kullanılabilirlik özelliğine sahip en iyi programlama dillerinden biridir. Javascript kodları her zaman yeniden kullanılabilir ve bu, jQuery'yi ve eklentilerini destekleyen özelliklerden biridir. Daha sonra npmNodeJS'de olana gelince, herhangi bir Javascript paketini kurabilir ve yeniden kullanabilirsiniz.

Python / Django'nun Gücü

Django 2.0 sürümüyle birlikte, django artık birçok güçlü özelliğe sahip.

 

Gönderi için resim

Django, hızlı geliştirmeyi ve web uygulamalarının pragmatik, temiz tasarımını teşvik eden, Python ile yazılmış yüksek seviyeli, MVC tarzı, açık kaynaklı bir kitaplık koleksiyonudur. “Son teslim tarihlerine sahip mükemmeliyetçiler için çerçeve” olarak bilinen Django, geliştiricilerin sıfırdan kodlamaya başlamak zorunda kalmadan veritabanı temelli web uygulamaları yazmasına olanak tanıdığından, aslında haber siteleri için tasarlandı.

Bununla birlikte, yıllarca süren güncelleme ve iyileştirmelerle, Django artık tam özellikli bir web uygulama çerçevesi olarak olgunlaştı.

Bir web uygulaması çerçevesi, tüm web uygulamalarının işleri hızla halletmek için ihtiyaç duyduğu bir araçtır. Buradaki amaç, geliştiricilerin, aynı çözümleri tekrar tekrar uygulamak yerine, uygulamalarının yeni ve projelerine özgü olan kısımlarına odaklanmalarına izin vermektir.

Gerçek şu ki, Django piyasadaki diğer birçok çerçeveden çok daha tam özellikli. Tekerleği yeniden icat etmeye gerek kalmadan uygulamanızı yazmaya odaklanmanıza izin vererek, Web geliştirmenin birçok zorluğunun üstesinden gelir. Ücretsiz, açık kaynak ve hızlı.

Yaygın web geliştirme görevlerinin daha hızlı tamamlanmasının yanı sıra, Django tasarımın temiz ve pragmatik kalmasına yardımcı olur. Django, yeni Python web geliştiricileri için en iyi yerdir çünkü resmi belgeler ve eğitimler yazılım geliştirmenin en iyilerinden bazılarıdır.

Ek olarak, Django çerçevesi, etki alanınızı ve kod sınıflarınızı modellemenizi sağlar ve bunu bilmeden önce, zaten bir ORM'ye sahip olursunuz.

Django'nun dikkate değer özellikleri:

Django'nun ORM'si : ORM, Django'nun dikkate değer özelliklerinden biridir. Bu, veritabanları ile ilgilenir. Dolayısıyla, ihtiyaç duyulan veriler için veritabanını sorgulamak için elbette kullanılan Yapılandırılmış Sorgu Dili (SQL) ile ilgili sorunlar gibisi yoktur. Django geliştiricilerinin, SQL aracılığıyla veritabanıyla doğrudan ilgilenen diğer birçok Python çerçevesinin aksine, karşılık gelen Python model nesnesini işlemek için özel bir yolu vardır. Django, varsayılan olarak PostgreSQL, MySQL, SQLite ve Oracle gibi ilişkisel veritabanı yönetim sistemleriyle kullanıma hazır çalışır.

Yerleşik Şablon Sistemi: Bu, Django ile ilgili harika özelliklerden biridir, bir şablon sistemini destekler ve hatta genişletebilirsiniz. Devralma sisteminin yardımıyla, Django'nun şablonları, geliştiricilerin çok az miktarda ön uç koddan eksiksiz, dinamik web siteleri oluşturmasına izin verir.

Güvenlik: Django, bilmiyorsanız son derece güvenlidir. Web çerçevesi, XSS saldırılarına, CSRF saldırılarına, SQL enjeksiyonlarına, tıklama hırsızlığına, kullanıcı yönetimine, çerezlere, e-posta başlığı enjeksiyonuna, kriptografiye, dizin geçişine vb. Karşı varsayılan korumayla birlikte gelir.

Kolay Veritabanı Taşıma İşlemleri: Django geçişleriyle, bir veritabanı şemasını hızlı bir şekilde kolayca değiştirebilirsiniz. Veritabanı şemanızı ve ilişkili değişiklikleri izlemek de çok kolaydır. Geçiş adları, sürüm kontrolünün yönetilmesine yardımcı olur ve sürümleri birleştirmek ve değişiklik yapmak için çok sayıda seçenek mevcuttur.

Esneklik ve Yeniden Kullanılabilirlik : Django uygulamaları esnek ve bağımsızdır, bu nedenle yeniden kullanılabilirler. Bunları settings.pyaltındaki dosyada projenize ekleyebilirsiniz INSTALLED_APPS. Ve Python modülleri Django projelerinde de kullanılabilir.

Restful API'nin Gücü

şimdi rest api hakkında konuşalım, tüm bunlar ne hakkında?

Restful API, tanımı gereği verileri GET, PUT, POST ve DELETE için HTTP isteklerini kullanan bir uygulama programı arayüzüdür (API). Web hizmetleri geliştirmede sıklıkla kullanılan bir mimari stil ve iletişim yöntemi olan temsili durum transferi (REST) ​​teknolojisine dayanmaktadır.

biraz parçalayalım ...

 

Gönderi için resim

Geri kalan, web'in temel mimari prensibidir. Rest , API'nin nasıl görüneceğine karar verir ve "Temsili Durum Transferi" anlamına gelir. Bu, geliştiricilerin API'larını oluştururken izledikleri bir dizi kuraldır. Bu kurallardan biri, belirli bir URL'ye bağlandığınızda döndürülen bir veri parçası (kaynak denir) alabilmeniz gerektiğini belirtir.

API , bir uygulama programlama arayüzüdür. Bu, programların birbirleriyle konuşmasına izin veren bir dizi kuraldır. Geliştirici, sunucuda API'yi oluşturur ve istemcinin onunla konuşmasına izin verir.

Web ile ilgili iyi olan şey, istemcilerin (tarayıcıların) ve sunucuların, istemcinin sunucu ve barındırdığı kaynaklar hakkında önceden bir şey bilmeden zor yollarla iletişim kurabilmesidir. Önemli olan, hem sunucunun hem de istemcinin kullanılan medya üzerinde hemfikir olması gerektiğidir , ki bu web durumunda HTML'dir .

Her URL'ye bir istek , size geri gönderilen verilere yanıt denir .

REST API'lerinin temel avantajlarından biri esnek olmalarıdır. Veriler kaynaklara veya yöntemlere bağlı değildir, bu nedenle REST birden fazla arama türünü kolayca işleyebilir, farklı veri formatlarını döndürebilir ve hatta hiper medyanın doğru uygulamasıyla yapısal olarak değişebilir. Esneklik, geliştiricilere güçlü Rest API oluşturma yeteneği sağlar.

Rest altında istek şunlardan oluşur:

  1. Uç nokta
  2. Yöntem
  3. Başlıklar
  4. Veriler (veya gövde)

Rest API ile ilgili en güzel şeylerden biri, herhangi bir platformda ve herhangi bir programlama dili ile kullanılabilmesidir. Django Rest Framework ile tam özellikli bir web uygulamasını güçlendirmek için kullanılabilecek güçlü bir Rest API oluşturabilirsiniz.

Web Uygulamalarının Geleceği

Bu, gelecekteki web uygulamalarının Django ve Javascripts'i nasıl kullanacağına dair kişisel düşüncem.

Progresif Web Uygulamaları (PWA)

Progresif Web Uygulamaları, adından da anlaşılacağı gibi, progresif web uygulamalarıdır. Hangi tarayıcı veya mobil cihaz kullanıyor olursa olsun her kullanıcı için çalışan bir uygulamadır. Duyarlıdırlar ve bir mobil veya tablet cihazda kullanıldıklarında bir uygulama gibi hissederler.

Başka bir bakış açısıyla, Progressive Web Apps, bir bilgisayarda harika görünen ancak aynı zamanda bir mobil cihazda kullanıldığında yerel bir uygulama gibi hisseden web uygulamalarıdır. Örneğin, telefon kamerasını kullanabilir, anlık bildirimler sağlayabilir vb.

 

Gönderi için resim

Wikipedia'ya göre:

"Aşamalı Web Uygulaması (PWA), yeni bir yazılım geliştirme metodolojisini belirtmek için kullanılan bir terimdir . Geleneksel uygulamaların aksine , progresif web uygulamaları, normal web sayfalarının (veya web sitelerinin ) ve bir mobil uygulamanın bir karışımıdır . Bu yeni uygulama modeli, çoğu modern tarayıcının sunduğu özellikleri mobil deneyimin avantajlarıyla birleştirmeye çalışıyor . "

İnternette PWA'nın pek çok tanımı var, ancak şunu bilin:

Web'de harika kullanıcı deneyimleri sunmanın yeni bir yolu.

PWA'nın temel özellikleri:

  • Güvenilir - Anında yükleyin ve belirsiz ağ koşullarında bile downasaur'u asla göstermeyin. Bu, hendekle çevrimdışı bile çalışabileceği anlamına gelir.
  • Hızlı - İpeksi pürüzsüz animasyonlarla ve düzensiz kaydırma olmadan kullanıcı etkileşimlerine hızla yanıt verin. Uygulanan önbelleğe alma teknolojisi nedeniyle çok hızlı.
  • Etkileşim - Sürükleyici bir kullanıcı deneyimi ile cihazda doğal bir uygulama gibi hissedin. Bu, normal mobil uygulamaların deneyimini verir.

Bu yeni kalite düzeyi, Progresif Web Uygulamalarının kullanıcının ana ekranında bir yer kazanmasını sağlar.

Tek Sayfalı Uygulamalar (SPA)

Bana göre Tek Sayfalı Uygulamalar, adından da anlaşılacağı gibi sayfanın yeniden yüklenmesini gerektirmeyen, ancak durumu göndermek ve verileri almak için Ajax veya Web Soketi yöntemlerini kullanan bir uygulamadır.

Basitçe söylemek gerekirse, Tek sayfalı uygulama, bir tarayıcı içinde çalışan ve kullanım sırasında sayfanın yeniden yüklenmesini gerektirmeyen bir uygulamadır.

Microsoft'a göre :

Tek Sayfalı Uygulamalar (SPA'lar), tek bir HTML sayfası yükleyen ve kullanıcı uygulamayla etkileşim kurduğunda bu sayfayı dinamik olarak güncelleyen Web uygulamalarıdır.

SPA'lar, sürekli sayfa yeniden yüklemeleri olmadan akıcı ve duyarlı Web uygulamaları oluşturmak için AJAX ve HTML5 kullanır.

SPA, biçimlendirmeyi ve verileri bağımsız olarak ister ve sayfaları doğrudan tarayıcıda işler. Bu, ReactJS, VueJS, AngularJS, Meteor.js, Knockout.js gibi gelişmiş JavaScript çerçeveleri sayesinde mümkündür.

Tek sayfalı uygulama, kullanıcıyı içeriğin basit, kolay ve uygulanabilir bir şekilde sunulduğu tek ve rahat bir web alanında tutmaya yardımcı olur.

SPA'nın başa çıkmanız gereken birçok dezavantajı olmasına rağmen, yine de gelecekteki bir web uygulaması.

İzomorfik JavaScript Uygulamaları:

İzomorfik uygulama, kodu hem sunucuda hem de istemcide çalışabilen basit bir uygulamadır. İzomorfik uygulama, istemci tarafı ve sunucu tarafı uygulamaların kesişimi olarak da tanımlanabilir.

Web geliştirmede olduğu gibi izomorfizm , hem sunucu hem de istemci tarafında sayfaları oluşturmak anlamına gelir. Her şey NodeJS ortamında sunucudan küçük bir değişiklik yaparak tarayıcı Javascript kodunu çalıştırmakla ilgilidir.

İzomorfik bir uygulamada, web tarayıcısı tarafından yapılan ilk istek sunucu tarafından işlenirken, sonraki istekler istemci tarafından işlenir.

İzomorfik uygulamalarla, MVC veya MVVM yapıları her zaman hem istemci tarafında hem de sunucu tarafında bulunur. Sayfalar, yine JavaScript MVC veya MVVM yapıları ile sunucu tarafında oluşturulabilir.

Böylelikle benzer render motorları ve benzer JavaScript mantığı sunucu tarafında kullanılabilir, sayfa sunucu tarafında oluşturulabilir ve istemci tarafı mantığın geri kalanıyla ilgilenir.

 

Gönderi için resim

Geliştiricilerin izomorfizmi önemsemesinin üç ana nedeni şunlardır:

  • Daha İyi Arama Motoru Optimizasyonu (SEO)
  • Daha iyi performans
  • Daha iyi bakım

 

More Posts