Technologiczne trendy w web development 2019

Wprowadzenie

Cyfrowa transformacja z każdym rokiem obejmuje coraz więcej różnych obszarów życia i biznesu. Jeśli firma chce być konkurencyjna, zwykłe witryny informacyjne już nie wystarczą; potrzebne są mobilne i webowe aplikacje, które nie tylko dostarczają użytkownikom informacje, ale także umożliwiają realizację różnych funkcji: zamawianie lub nabywanie towarów i usług, udostępnianie narzędzi.

Technologiczne trendy w web development 2019

Na przykład współczesnym bankom nie wystarcza posiadanie strony internetowej z informacjami; potrzebują narzędzi online dla swoich klientów, takich jak osobiste konto, gdzie użytkownik może zarządzać swoimi rachunkami, inwestycjami i kredytami. Nawet małym firmom, aby zwiększyć konwersję, potrzebne są wygodne narzędzia, takie jak umawianie wizyt u lekarza lub fryzjera, rezerwacja stolika w restauracji czy miejsca w sali zabaw na urodziny.

Właściciele firm muszą również na bieżąco otrzymywać informacje w przystępnej formie na temat stanu swojego przedsiębiorstwa, na przykład zbierając dane statystyczne i analizy dotyczące różnych działów produkcji lub wydajności tych działów. Często każdy z działów zbiera te dane na swój sposób i może korzystać z różnych narzędzi, co sprawia, że właściciel musi poświęcać dużo osobistego czasu, aby wszystko zrozumieć. Może to pośrednio lub bezpośrednio wpływać na efektywność firmy i w końcu na zysk. W tym również pomoże cyfrowa transformacja i opracowanie aplikacji webowej lub mobilnej.

Technologia nie stoi w miejscu i nieustannie się rozwija, a to, co było używane kilka lat temu, może być już nieaktualne, a to, co kilka lat temu było niemożliwe, dziś stało się rzeczywistością. Istnieje coraz więcej nowoczesnych narzędzi, które pomagają w szybszym i lepszym tworzeniu aplikacji webowych i mobilnych. Na podstawie osobistych obserwacji i doświadczeń chcę podzielić się swoją wizją, które technologie i narzędzia będą poszukiwane w najbliższym czasie oraz dlaczego warto na nie zwrócić uwagę przy tworzeniu nowoczesnej aplikacji webowej.

Single page application (aplikacje jednopłaszczyznowe)

Określmy najpierw terminologię. Aplikacja jednopanelowa (SPA) to aplikacja webowa, której komponenty są ładowane jednokrotnie na jednej stronie, a treść jest pobierana w razie potrzeby. Podczas przechodzenia między sekcjami aplikacji strona nie jest całkowicie przeładowywana, a jedynie ładowane i wyświetlane są potrzebne dane.

Aplikacje jednopanelowe znacznie przewyższają tradycyjne aplikacje webowe pod względem szybkości działania i wygody użytkowania. Dzięki SPA można uzyskać efekt działania strony internetowej jak aplikacja desktopowa, bez przeładowań i znacznych opóźnień.

Jeśli kilka lat temu aplikacje jednopanelowe praktycznie nie wspierały optymalizacji pod kątem wyszukiwarek i były stosowane głównie do tworzenia paneli użytkowników i administracyjnych, to dziś stworzenie aplikacji jednopanelowej z pełnym wsparciem dla SEO stało się znacznie prostsze. Używając aplikacji jednopanelowych z renderowaniem po stronie serwera, ten problem całkowicie zniknął. Innymi słowy, to również aplikacja jednopanelowa, ale przy pierwszym żądaniu serwer generuje nie tylko dane, ale tworzy gotową do wyświetlenia stronę HTML, a systemy wyszukiwania otrzymują gotowe strony ze wszystkimi metadanymi i semantycznym oznaczeniem.

Z rozwojem narzędzi do tworzenia klientów aplikacji webowych, rozwój i przejście na aplikacje jednopanelowe w tym i następnych latach będą tylko rosły. Jeśli masz starą aplikację, która jest moralnie przestarzała i działa wolno, a do tego z całkowitym przeładowaniem strony przy przechodzeniu między sekcjami, to w tym roku śmiało możesz zaktualizować na szybką aplikację jednopanelową – teraz jest dobry czas, technologie już pozwalają na to zrobić dość szybko i jakościowo.

Posiadanie nowoczesnej i szybkiej strony internetowej to bardzo dobrze, ale chcę Ci szczerze powiedzieć: nie wszystkie aplikacje można łatwo przekształcić w jednopanelowe, a przejście może okazać się kosztowne! Dlatego trzeba zrozumieć, komu i po co potrzebne jest takie przejście.

Aby ułatwić Ci zrozumienie, w poniższej tabeli podam kilka przykładów, kiedy rozwój lub przejście na SPA jest uzasadnione, a kiedy nie.

ZA

Jeśli chcesz stworzyć nowoczesną, szybką aplikację i zależy Ci na tym, aby nie była dostępna tylko w wersji internetowej, ale również mobilnej czy nawet desktopowej, a wszystkie procesy i obliczenia odbywały się na zdalnym lub chmurowym serwerze. Dodatkowo, aby wszyscy klienci mieli jeden wspólny interfejs, a przy dodawaniu nowego klienta nie było potrzeby edytowania kodu serwera.

Na przykład: sieć społecznościowa, agregatory, platformy SaaS (oprogramowanie jako usługa w chmurze), rynki internetowe.

Jeśli masz sklep lub usługę internetową, wiesz, że działa ona wolno i użytkownicy odchodzą, chcesz przyspieszyć działanie, rozumiesz wartość klientów i jesteś gotów zapłacić za upgrade od miliona złotych.

Masz aplikację mobilną, która korzysta z API strony internetowej, podczas gdy ta strona działa wolno i wymaga pełnych przeładowań treści przy przechodzeniu między stronami.

PRZECIW

Jeśli Twoja docelowa grupa odbiorców nie korzysta z nowoczesnych przeglądarek i urządzeń.

Na przykład: określone branże korporacyjne, takie jak rozwój systemów wewnętrznych dla banków, instytucji medycznych i edukacji.

Główne działania prowadzisz offline i nie jesteś gotów świadczyć jakichkolwiek usług online, a potrzebujesz jedynie przyciągnąć klientów.

Jeśli masz już sklep internetowy lub usługę, która i tak dobrze sprzedaje, nie widzisz odpływu klientów ani skarg.

Jeśli masz działającą aplikację, którą nie można dostosować do SPA i trzeba wszystko napisać od nowa, używając innych technologii, a nie jesteś gotów wydać na to kilku milionów.

Na przykład: masz gotową stronę internetową lub jakiś prymitywny, monolityczny kod napisany własnoręcznie.

Progressive Web Applications

Progresywne aplikacje internetowe (PWA) to produkt współczesnej ewolucji aplikacji natywnych i stron internetowych. W istocie jest to aplikacja webowa, która wygląda i zachowuje się jak prawdziwa aplikacja natywna, może odbierać powiadomienia push, działać w trybie offline itd. Użytkownik nie musi pobierać aplikacji z AppStore lub Google Play, wystarczy, że zapisze ją na pulpicie.

Jako technologia lub podejście do rozwoju, PWA rozwija się od 2015 roku i w ostatnim czasie zyskuje ogromną popularność w sferze e-commerce.

Kilka prawdziwych przykładów z życia:

  • W zeszłym roku hotel Best Western River North, po uruchomieniu nowej strony wspierającej PWA, zwiększył swoje przychody o 300%;
  • Arabski serwis Avito OpenSooq.com, po wdrożeniu wsparcia PWA na swojej stronie, zwiększył czas odwiedzin o 25% oraz liczbę leadów o 260%;
  • Znana aplikacja randkowa Tinder zdołała skrócić czas ładowania z 11,91s do 4,69s, opracowując PWA; dodatkowo, aplikacja zajmuje o 90% mniej miejsca niż jej natywny odpowiednik na Androida.

O tym, że warto zwrócić uwagę na tę technologię, świadczy również to, że jeden z największych silników do tworzenia projektów e-commerce, Magento, w 2018 roku uruchomił wczesną wersję deweloperską PWA Studio. Platforma umożliwia „z pudełka” tworzenie front-endu opartego na React dla rozwiązań e-commerce z wsparciem PWA.

Rada dla tych, którzy już mają projekt internetowy lub tylko pomysł na nową usługę z wsparciem dla urządzeń mobilnych: nie spieszcie się z pisaniem pełnoprawnej aplikacji natywnej; najpierw zwróćcie uwagę na technologię PWA. Może to być najlepsze rozwiązanie pod względem kosztów i jakości dla waszego produktu.

Trochę z praktyki. Aby stworzyć prostą natywną aplikację mobilną wiadomości przy założeniu, że już istnieje gotowy serwer REST, potrzeba około 200-300 roboczo-godzin na każdą platformę. Przy średniej cenie rynkowej za godzinę pracy równej 1500-2000 rubli/godzinę, aplikacja może kosztować około 1 miliona rubli. Jeśli zdecydujemy się na rozwój aplikacji webowej z pełnym wsparciem PWA: powiadomienia push, tryb offline i inne plusy, czas opracowania wyniesie 200-300 roboczo-godzin, ale produkt będzie od razu dostępny na wszystkich platformach. Oznacza to oszczędność w wysokości około 2 razy, nie wspominając o tym, że nie trzeba będzie płacić opłat za umieszczenie w sklepach z aplikacjami.

Serverless

To kolejny nowoczesny sposób rozwoju. Ze względu na nazwę wiele osób myśli, że to rzeczywiście rozwój bezserwerowy, że nie trzeba pisać kodu back-end, a każdy frontendowy deweloper będzie mógł stworzyć pełnoprawną aplikację webową. Ale to nie tak!

Tworząc aplikację Serverless, serwer wciąż jest potrzebny, a także bazy danych. Główna różnica tego podejścia polega na tym, że kod back-endowy jest przedstawiony w formie funkcji chmurowych (inną nazwą serverless jest FaaS, funkcje jako usługa lub Functions-as-a-Service) i pozwala aplikacji na szybkie i łatwe skalowanie. Tworząc taką aplikację, programista może skupić się na zadaniach biznesowych, nie martwiąc się o skalowanie i konfigurację infrastruktury, co przyspiesza rozwój aplikacji i obniża jej koszty. Co więcej, podejście Serverless pomoże zaoszczędzić na wynajmie serwerów, ponieważ wykorzystuje dokładnie tyle zasobów, ile potrzebne do wykonania zadania, a jeśli nie ma obciążenia, to czas serwerowy w ogóle nie jest wykorzystywany i nie jest płacony.

Na przykład, duża amerykańska firma medialna Bustle potrafiła zmniejszyć wydatki na hosting ponad 60% po przejściu na Serverless. A firma Coca-Cola, przy tworzeniu zautomatyzowanego systemu sprzedaży napojów przez automaty, potrafiła obniżyć koszty hostingu z 13000 dolarów do 4500 dolarów rocznie dzięki przejściu na Serverless.

Przez ostatnie kilka lat, z uwagi na nowość i swoje ograniczenia, Serverless był głównie używany do małych projektów, startupów i MVP, ale dziś, dzięki ewolucji oprogramowania, wszechstronności i mocy konteneryzacji serwerów, pojawiają się narzędzia, które pozwalają usunąć ograniczenia, uprościć i przyspieszyć rozwój aplikacji chmurowych.
Oznacza to, że korporacyjne scenariusze biznesowe, w których modernizacja chmurowa wcześniej była uważana za niemożliwą (na przykład dla urządzeń brzegowych, przesyłania danych czy aplikacji z zachowaniem stanu), są teraz rzeczywistością. Dobrymi narzędziami, które zapowiadają się obiecująco, są kNative i Serverless enterprise.

Jednak mimo to, Serverless nie jest srebrem dla rozwoju aplikacji webowych. Jak każda inna technologia, ma swoje zalety i wady, i należy z rozwagą wybierać to narzędzie, a "nie wbijać gwoździ mikroskopem", tylko dlatego, że jest bardziej technologiczne.

Aby pomóc Ci się zorientować, oto kilka przykładów, kiedy warto pomyśleć o Serverless przy tworzeniu nowego lub udoskonaleniu istniejącego serwisu internetowego:

  • Gdy obciążenie serwera ma okresowy charakter, a płacisz za nieużywane zasoby. Na przykład, mieliśmy klienta z siecią automatów do kawy, który musiał przetwarzać zapytania i zbierać dane statystyczne zaledwie kilka setek lub tysięcy razy dziennie, podczas gdy w nocy liczba zapytań spadała do kilku dziesiątek. W takim przypadku znacznie efektywniej jest płacić tylko za rzeczywiste wykorzystanie zasobów, dlatego zaproponowaliśmy i wdrożyliśmy rozwiązanie na Serverless;
  • Jeśli nie planujesz zagłębiać się w techniczne szczegóły infrastruktury i przepłacając za konfigurację oraz wsparcie serwerów i load balancerów. Na przykład, przy tworzeniu platformy marketplace dokładnie nie wiesz, jaką będziesz mieć odwiedzalność lub przeciwnie — planujesz dużą odwiedzalność i chcesz, aby Twoja aplikacja na pewno wytrzymała obciążenie, to Serverless jest doskonałym wyborem.
  • Jeśli konieczne jest wykonywanie pewnych zdarzeń strumieniowych w pracy głównej aplikacji, rejestrowanie pobocznych danych w tabelach, wykonywanie obliczeń. Na przykład, zbieranie danych analitycznych o działaniach użytkownika, przetwarzanie ich w określony sposób i zapisywanie w bazie danych;
  • Jeśli trzeba uprościć, ujednolicić lub przyspieszyć bieżącą pracę aplikacji. Na przykład, stworzyć usługi poprawiające wydajność do pracy z obrazami lub wideo, kiedy użytkownik przesyła wideo do chmury, a transkodowaniem zajmuje się oddzielna funkcja, podczas gdy główny serwer nadal działa w normalnym trybie.

Jeśli musisz przetwarzać zdarzenia z zewnętrznych usług. Na przykład, przetwarzać odpowiedzi od systemów płatności, lub przekazywać dane użytkowników do CRM w celu przyspieszenia przetwarzania zapytań potencjalnych klientów.
Jeśli masz dużą aplikację, a niektóre jej części mogą być zrealizowane bardziej optymalnie, wykorzystując język różniący się od głównego. Na przykład, masz projekt w Javie i musisz dodać nową funkcjonalność, a nie masz wolnych rąk, lub implementacja w danym języku może zająć więcej czasu, a istnieje już rozwiązanie w innym języku, to Serverless może w tym pomóc.

To nie jest pełna lista narzędzi i technologii, które zasługują na uwagę, jedynie podzieliłem się tym, co sami używamy każdego dnia w pracy i dokładnie wiemy, jak mogą pomóc w biznesie.

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster