Web geliştirme teknolojisi trendleri 2019

Giriş

Dijital dönüşüm her yıl yaşamın ve iş dünyasının giderek daha farklı alanlarını kapsıyor. Bir işletme rekabetçi olmak istiyorsa, sıradan bilgi siteleri artık yeterli değildir; kullanıcılara yalnızca bilgi sağlamakla kalmayıp aynı zamanda belirli işlevleri yerine getirmelerine de olanak tanıyan mobil ve web uygulamalarına ihtiyaç vardır: mal ve hizmet alma veya sipariş etme, araç sağlama.

Web geliştirme teknolojisi trendleri 2019

Örneğin, modern bankaların bilgi içeren bir web sitesine sahip olması artık yeterli değil; müşterileri için çevrimiçi araçlara, kullanıcının hesapları, yatırımları ve kredileri yönetebileceği kişisel bir hesaba sahip olmaları gerekiyor. Küçük işletmelerin bile dönüşümleri artırmak için doktor veya kuaförden randevu almak veya doğum günü partisi için bir restoranda veya çocuk oyun odasında masa ayırtmak gibi kullanışlı araçlara ihtiyacı vardır.

Ve sahiplerin, şirketlerinin durumu hakkında uygun bir biçimde zamanında bilgi almaları gerekir; örneğin, farklı üretim departmanları için istatistiksel verilerin ve analitiklerin toplanması veya departmanların verimliliği. Çoğu zaman, her departman bu verileri kendi yöntemiyle toplar ve hatta farklı araçlar kullanabilir ve şirket sahibinin tüm bunları anlamak için çok fazla kişisel zaman harcaması gerekir; bu, dolaylı veya doğrudan şirketin verimliliğini ve sonuçta kârını etkileyebilir. Dijital dönüşüm ve web veya mobil uygulama geliştirme de burada yardımcı olacaktır.

Teknolojiler yerinde durmuyor ve sürekli gelişiyor ve birkaç yıl önce kullanılanlar bugün artık geçerli olmayabilir veya birkaç yıl önce yapılamayanlar çoktan gerçeğe dönüştü. Web ve mobil uygulamaları daha hızlı ve daha iyi oluşturmanıza yardımcı olacak daha modern araçlar vardır. Kişisel gözlem ve deneyimlerime dayanarak, yakın gelecekte hangi teknoloji ve araçların talep göreceğine ve modern bir web uygulaması oluştururken neden bunlara dikkat etmeniz gerektiğine dair vizyonumu paylaşmak istiyorum.

Tek sayfalı uygulama

Terminolojiyi biraz tanımlayalım. Tek Sayfa Uygulaması (SPA), bileşenleri tek sayfada bir kez yüklenen ve içeriğin gerektiği kadar yüklendiği bir web uygulamasıdır. Uygulamanın bölümleri arasında geçiş yaparken sayfa tamamen yeniden yüklenmez, yalnızca gerekli verileri yükler ve görüntüler.

Tek sayfalı uygulamalar hız ve kullanım kolaylığı açısından klasik web uygulamalarından büyük fayda sağlar. SPA'nın yardımıyla, bir web sitesinin masaüstündeki bir uygulama gibi çalışmasının etkisini, yeniden başlatmalar ve önemli gecikmeler olmadan elde edebilirsiniz.

Birkaç yıl önce tek sayfalı uygulamalar pratik olarak arama motoru optimizasyonunu desteklemiyor ve çoğunlukla kişisel hesaplar ve yönetim panelleri oluşturmak için kullanılıyordu, bugün arama motoru optimizasyonu (SEO) için tam destekli tek sayfalı bir uygulama oluşturmak çok daha kolay hale geldi. Günümüzde sunucu tarafından oluşturulan tek sayfalı uygulamalar kullanıldığında bu sorun tamamen ortadan kalkmıştır. Başka bir deyişle, bu aynı tek sayfalık uygulamadır, ancak ilk istekte sunucu yalnızca veri üretmekle kalmaz, aynı zamanda görüntülenmeye hazır bir HTML sayfası oluşturur ve arama motorları tüm meta bilgileri ve anlamsal işaretlemeyi içeren hazır sayfaları alır. .

İstemci tarafı web uygulamaları oluşturmaya yönelik araçların geliştirilmesiyle birlikte, tek sayfalı uygulamalara geçiş ve geliştirme yalnızca bu ve sonraki yıllarda artacaktır. Güncelliğini yitirmiş ve yavaş çalışan eski bir uygulamanız varsa ve bölümler arasında geçiş yaparken sayfanın tamamen yeniden yüklenmesi durumunda bile, bu yıl hızlı bir tek sayfalık uygulamaya güvenli bir şekilde yükseltme yapabilirsiniz - şimdi iyi bir zaman, teknoloji zaten size izin veriyor Bunu oldukça hızlı ve verimli bir şekilde yapmak için.

Modern ve hızlı bir web sitesine sahip olmak çok iyi ama şunu dürüstçe söyleyeyim: tüm uygulamalar kolaylıkla tek sayfalık uygulamalara dönüştürülemez ve geçiş pahalı olabilir! Bu nedenle kimin böyle bir geçişe ihtiyacı olduğunu ve nedenini anlamalısınız.

Anlamanıza yardımcı olmak için, aşağıdaki tabloda bir SPA geliştirmenin veya SPA'ya geçmenin ne zaman uygun ve haklı olduğu ve ne zaman olmadığı konusunda bazı örnekler vereceğim.

İÇİN

Modern, hızlı bir uygulama yapmak istiyorsanız ve sadece web sürümünü değil, mobil hatta masaüstü sürümünü de kullanmak istiyorsanız tüm işlemler ve hesaplamalar uzak veya bulut sunucu üzerinde gerçekleşir. Üstelik tüm istemcilerin tek bir etkileşim arayüzü olması ve yeni bir istemci eklerken sunucu kodunda her türlü düzenlemeyi yapmaya gerek kalmaması.

Örneğin: sosyal ağ, toplayıcılar, SaaS platformları (bulut hizmeti olarak yazılım), pazar yerleri

Bir mağazanız veya web hizmetiniz varsa, yavaş olduğunu ve insanların ayrıldığını biliyorsunuz, daha hızlı hale getirmek istiyorsunuz, müşterilerin değerini anlıyorsunuz ve yükseltme için bir milyon rubleden fazla ödemeye hazırsınız.

Sitenin API'sini kullanan bir mobil uygulamanız var ancak site yavaş ve sayfalar arasında geçiş yaparken içeriğin tamamı yeniden yükleniyor

KARŞI

Hedef kitleniz modern tarayıcı ve cihazlar kullanmıyorsa.

Örneğin: bankalar, sağlık kurumları ve eğitim için iç sistemlerin geliştirilmesi gibi belirli kurumsal alanlar.

Ana faaliyetlerinizi çevrimdışı yürütüyorsunuz ve çevrimiçi olarak herhangi bir hizmet sağlamaya hazır değilsiniz ve yalnızca müşteri çekmeniz gerekiyor.

Zaten iyi satış yapan bir çevrimiçi mağazanız veya web hizmetiniz varsa müşteri akışını veya şikayetlerini göremezsiniz.

SPA'ya uyarlanamayan çalışan bir uygulamanız varsa ve her şeyi sıfırdan yeniden yazmanız ve diğer teknolojileri kullanmanız gerekiyorsa ve bunun için birkaç milyon harcamaya hazır değilsiniz.

Örneğin: Kutulu bir site veya evde yazılmış bir tür eski, yekpare kod var.

Aşamalı Web Uygulamaları

Progresif Web uygulamaları, yerel bir uygulamanın ve bir web sitesinin ortak gelişiminin ürünüdür. Temel olarak bu, gerçek bir yerel uygulama gibi görünen ve davranan, anlık bildirimler alabilen, çevrimdışı modda çalışabilen vb. bir web uygulamasıdır. Bu durumda kullanıcının uygulamayı AppStore veya Google Play'den indirmesine gerek kalmaz, yalnızca masaüstüne kaydetmesi yeterlidir.

Bir teknoloji veya geliştirme yaklaşımı olarak PWA, 2015'ten bu yana gelişiyor ve son zamanlarda e-ticaret alanında büyük bir popülerlik kazandı.

Bazı gerçek hayattan örnekler:

  • Geçen yıl Best Western River North oteli, PWA özellikli yeni bir web sitesi kullanıma sunduktan sonra gelirini %300 artırmayı başardı;
  • Arapça Avito OpenSooq.com, web sitesinde PWA desteği oluşturduktan sonra siteyi ziyaret etme süresini %25 ve potansiyel müşteri sayısını %260 artırmayı başardı;
  • Ünlü flört servisi Tinder, bir PWA geliştirerek yükleme hızını 11.91 saniyeden 4.69 saniyeye düşürmeyi başardı; üstelik uygulama, yerel Android muadilinden %90 daha hafif.

Bu teknolojiye dikkat etmeye değer olduğu gerçeği, e-ticaret projeleri oluşturmaya yönelik en büyük motorlardan biri olan Magento'nun 2018 yılında PWA Studio'nun erken geliştirme sürümünü piyasaya sürmesiyle de belirtiliyor. Platform, PWA desteğiyle e-ticaret çözümleriniz için kutudan çıktığı gibi React tabanlı bir ön uç oluşturmanıza olanak tanır.

Halihazırda bir İnternet projesi olanlara veya yalnızca mobil cihazları destekleyen yeni bir hizmet fikrine sahip olanlar için tavsiyeler: Tam teşekküllü bir yerel uygulama yazmak için acele etmeyin, önce PWA teknolojisine bakın. Bu, ürününüz için paranızın karşılığını alabileceğiniz en iyi çözüm olabilir.

Biraz pratikten. Basit bir native mobil haber uygulaması oluşturmak için hazır bir REST sunucunuz olması şartıyla platform başına yaklaşık 200-300 adam-saat ihtiyacınız var. Bir saatlik geliştirme için ortalama piyasa fiyatının 1500-2000 ruble/saat olduğu göz önüne alındığında, bir uygulamanın maliyeti yaklaşık 1 milyon ruble olabilir. PWA'yı tam olarak destekleyen bir web uygulaması geliştirirseniz: anında bildirimler, çevrimdışı mod ve diğer özellikler, geliştirme 200-300 adam-saat sürecektir, ancak ürün hemen tüm platformlarda kullanıma sunulacaktır. Yani yaklaşık 2 kat tasarruf, uygulama mağazalarına yerleştirme için ücret ödemek zorunda kalmayacağınız gerçeğinden bahsetmiyorum bile.

Serverless

Bu, kalkınmaya yönelik başka bir modern yaklaşımdır. Adından dolayı birçok kişi bunun gerçekten sunucusuz bir geliştirme olduğunu, arka uç kodu yazmaya gerek olmadığını ve herhangi bir ön uç geliştiricinin tam teşekküllü bir web uygulaması oluşturabileceğini düşünüyor. Ama bu doğru değil!

Sunucusuz uygulama oluştururken yine de bir sunucuya ve veritabanına ihtiyacınız vardır. Bu yaklaşımın temel farkı, arka uç kodunun bulut işlevleri (sunucusuzun diğer adı FaaS, hizmet olarak işlevler veya Hizmet Olarak İşlevler) biçiminde sunulması ve uygulamanın hızlı bir şekilde ölçeklenmesine olanak sağlamasıdır. kolayca. Böyle bir uygulama oluştururken geliştirici, iş sorunlarına odaklanabilir ve altyapıyı ölçeklendirmeyi ve kurmayı düşünmeyebilir, bu da daha sonra uygulama geliştirmeyi hızlandırır ve maliyetini düşürür. Üstelik Sunucusuz yaklaşım, görevi tamamlamak için tam olarak gerektiği kadar kaynak kullandığından ve yük yoksa sunucu süresi hiç kullanılmadığından ve bunun için ödeme yapılmadığından sunucu kiralamadan tasarruf etmenize yardımcı olacaktır.

Örneğin, büyük Amerikan medya şirketi Bustle, Sunucusuz'a geçiş yaparak barındırma maliyetlerini %60'tan fazla azaltmayı başardı. Ve Coca-Cola şirketi, otomatlar aracılığıyla içecek satışı için otomatik bir sistem geliştirirken Sunucusuz'a geçiş yaparak barındırma maliyetlerini yıllık 13000 $'dan 4500 $'a düşürmeyi başardı.

Geçtiğimiz birkaç yılda, yeniliği ve sınırlamaları nedeniyle Sunucusuz, esas olarak küçük projeler, yeni kurulan şirketler ve MVP'ler için kullanıldı, ancak bugün yazılımın gelişimi, sunucu konteynerleştirmesinin çok yönlülüğü ve gücü sayesinde, araçlar ortaya çıkıyor. kısıtlamaları kaldırmanıza, bulut uygulamalarının geliştirilmesini basitleştirmenize ve hızlandırmanıza olanak tanır.
Bu, daha önce bulut modernizasyonunun imkansız olduğu düşünülen kurumsal iş senaryolarının (örneğin uç cihazlar, aktarılan veriler veya durum bilgisi olan uygulamalar için) artık gerçeğe dönüştüğü anlamına geliyor. Çok fazla umut vaat eden iyi araçlar kNative ve Sunucusuz kurumsaldır.

Ancak tüm bunlara rağmen Sunucusuz, web uygulaması geliştirme için sihirli bir değnek değildir. Diğer tüm teknolojiler gibi, avantajları ve dezavantajları vardır ve bu aracı sırf teknolojik olarak daha gelişmiş olduğu için anlayışla seçmeniz ve "mikroskopla çivi çakmamanız" gerekir.

Bunu anlamanıza yardımcı olmak için, yeni bir web hizmeti geliştirirken veya mevcut bir web hizmetini geliştirirken Sunucusuz'u ne zaman düşünmek isteyebileceğinize dair bazı örnekler aşağıda verilmiştir:

  • Sunucudaki yük periyodik olduğunda ve boş kapasite için ödeme yaptığınızda. Örneğin, kahve makineleri ağına sahip bir müşterimiz vardı ve günde yalnızca birkaç yüz veya bin kez istekleri işlemek ve istatistik toplamak gerekiyordu ve geceleri isteklerin sayısı birkaç düzineye düştü. Bu durumda kaynakların yalnızca fiili kullanımı için ödeme yapmak çok daha verimli olur, bu nedenle Sunucusuz üzerinde bir çözüm önerdik ve uyguladık;
  • Altyapının teknik ayrıntılarına dalmayı ve sunucuların ve dengeleyicinin kurulumu ve bakımı için fazla ödeme yapmayı planlamıyorsanız. Örneğin, bir pazar yeri geliştirirken trafiğin tam olarak ne olacağını bilmiyorsunuz veya tam tersi; çok fazla trafik planlıyorsunuz ve uygulamanızın yüke dayanacağından emin olmak için Sunucusuz mükemmel bir seçimdir.
  • Ana uygulamada bazı akış olaylarını gerçekleştirmeniz gerekiyorsa, yan verileri tablolara yazın, bazı hesaplamalar yapın. Örneğin, kullanıcı eylemlerinin analitik verilerini toplayın, bunları belirli bir şekilde işleyin ve bir veritabanına kaydedin;
  • Uygulamanın mevcut çalışmasını basitleştirmeniz, birleştirmeniz veya hızlandırmanız gerekiyorsa. Örneğin, kullanıcı buluta video yüklediğinde görüntüler veya videolarla çalışmak için performansı artıran hizmetler oluşturun ve ana sunucu normal şekilde çalışmaya devam ederken ayrı bir işlev kod dönüştürmeyi yönetir.

Üçüncü taraf hizmetlerden gelen etkinlikleri işlemeniz gerekiyorsa. Örneğin, ödeme sistemlerinden gelen yanıtları işleyin veya potansiyel müşterilerden gelen isteklerin işlenmesini hızlandırmak için kullanıcı verilerini CRM'ye yönlendirin
Büyük bir uygulamanız varsa ve uygulamanın bazı bölümleri ana dilden farklı bir dil kullanılarak daha iyi şekilde uygulanabilir. Örneğin, Java'da bir projeniz var ve yeni işlevsellik eklemeniz gerekiyor, ancak serbest elleriniz yok veya belirli bir dilde uygulama daha uzun sürebilir ve başka bir dilde zaten bir çözüm var, o zaman Sunucusuz yardımcı olabilir bununla da.

Bu, dikkat edilmesi gereken araç ve teknolojilerin tam listesi değil; sadece işimizde her gün kullandığımız ve bunların işe nasıl yardımcı olabileceğini tam olarak bildiğim şeyleri paylaştım.

Kaynak: habr.com

Yorum ekle