Co to jest stos technologii? – Kompletny przewodnik
Opublikowany: 2021-02-22W prostych słowach stos technologii nazywa się stosem rozwiązań; infrastruktura technologiczna to lista wszystkich usług technologicznych używanych do budowy i uruchamiania jednej aplikacji. Na przykład przy tworzeniu aplikacji na Facebooku wykorzystano kombinację frameworków i języków kodowania, w tym JavaScript, HTML, CSS, PHP i ReactJS.
Deweloperzy mówią o stosach technologii, ponieważ ułatwia to udostępnianie wielu informacji na temat tworzenia aplikacji. Pojęcie to jest często stosowane w usługach marketingowych (stosy Martech) lub sprzedaży (stosy sprzedaży), ale wywodzi się z kultury tworzenia oprogramowania. Stos technologiczny szybko zsumuje języki programowania. Ponieważ języki kodowania mają istotne cechy i ograniczenia, stos technologii wpływa na mocne i słabe strony całej aplikacji.
Jak zbudować swój stos technologiczny
Zespół programistyczny w większości decyduje, jakiej technologii chce użyć, i opiera się na podstawowym języku kodowania, dodając dodatkowe narzędzia i usługi. Powstały pakiet usług nazywa się „stosem”, ponieważ każda dodatkowa usługa opiera się na usługach znajdujących się poniżej, umożliwiając programistom dostosowanie aplikacji. Wszystkie stosy technologiczne są podzielone między back-end i front-end, czyli po stronie serwera i po stronie klienta.
Ekran, obudowa i klawiatura będą interfejsem front-end, umożliwiającym użytkownikowi komunikację z laptopem. Gdy aplikacja na stanowisko obejmuje inżyniera z doświadczeniem w zakresie back-endu, front-endu i pełnego stosu, odnosi się to do części stosu technologicznego, w której kandydat najlepiej się specjalizuje. Wymagane są aplikacje internetowe, języki programowania, serwery i systemy operacyjne technologie zaplecza.
Akronim LAMP, skrót od systemu operacyjnego Linux, serwera Apache HTTP, systemu zarządzania relacyjnymi bazami danych MySQL i PHP, jest znany jako jeden popularny stos technologiczny do tworzenia stron internetowych.
Interfejs wizualny, taki jak strony internetowe i gry, to technologia front-end. Są to elementy wizualne, dzięki którym rozpoznawana jest większość aplikacji i zapewniają użytkownikom zasoby potrzebne do wykonywania zadań. Zazwyczaj języki front-endowe są znacznie bardziej powierzchowne niż backendowe.
Większość interfejsów aplikacji internetowych jest zaprojektowana przy użyciu języka programowania JavaScript oraz frameworków AngularJS, Backbone.js i ReactJS. W przypadku aplikacji na smartfony technologie front-end obejmują Objective-C/SWIFT dla iOS i Java dla aplikacji Android.
Kolejność budowania stosu ma znaczenie, podobnie jak fundament budynku. Każda nowa warstwa opiera się na ostatniej i nie jest łatwo wyrwać zakopane warstwy.
Oto kilka podstawowych porad dotyczących budowania stosów technologii:
Plan na przyszłość
Planowanie stosu technologii na przyszłość może być mieczem obosiecznym. Jeśli programiści nie zastanowią się nad skalowaniem ich aplikacji, mogą dodać dodatkowe usługi, które utrudniają zarządzanie. Deweloperzy powinni zawsze skłaniać się ku większej liczbie technologii i języków, które często są bardziej niezawodne.
Polegaj na społeczności open-source
Deweloperzy na całym świecie pracują nad tworzeniem zasobów typu open source, które są bezpłatne i dostępne dla każdego, kto ma połączenie z Internetem. Zakres i narzędzia, jakie zapewnia społeczności open-source, są oszałamiające. Polegając, przynajmniej częściowo, na oprogramowaniu open source, zespoły inżynierskie rozważające opracowanie stosu technologicznego miałyby łatwiej.
Rozważ cel aplikacji
Deweloperzy zwykle wybierają języki, które już znają, ale warto zrobić krok wstecz i pozwolić, aby cel aplikacji określał technologię, która pozwoli stworzyć odpowiedni stos technologiczny.
Użyj analityki
Deweloperzy nie mogą zarządzać stosem technologii, jeśli nie wiedzą, co się dzieje, dlatego wielu korzysta z analiz produktów.
Platformy analityczne są zaprojektowane tak, aby łączyć ze sobą źródła danych w stosie i zapewniać szczegółowe monitorowanie użytkowników. Dzięki temu programiści mogą identyfikować problemy, których doświadczają użytkownicy w swoich aplikacjach, aby debugować i naprawiać błędy.
Rozważ utrzymanie
Przed jego zbudowaniem zespoły mogą przecenić technologie wymagane do obsługi ich stosu technologicznego. Deweloperów przyciągają również innowacyjne języki, które mogą poprawić i wznowić ich wiedzę fachową. Chociaż ustalone języki programowania mogą zapewniać niezawodność, może to utrudnić zatrudnienie najlepszych talentów. Czasami tańsze innowacje mogą kosztować więcej, aby przyciągnąć najlepsze talenty.
Dlaczego stos technologii jest ważny?
Jak opisano, największą siłą stosu technologicznego są jego zdolności konwersacyjne. Oznacza to, że znaczenie stosu technologicznego polega na jego zdolności do zwięzłego przekazywania wielu informacji. Te dane nie tylko określają długość Twojego zgłoszenia, ale także wydajność Twojej firmy jako całości. Na przykład stos MEAN prawie całkowicie opiera się na JavaScript jako języku programowania. W kilku sekcjach techniki tworzenia aplikacji, ścisłe poleganie MEAN na JavaScript eliminuje warstwę złożoności.
Na przykład zatrudnienie programistów, którzy znają JavaScript, powinno być stosunkowo proste, ponieważ JavaScript jest dobrze znanym językiem, a programiści po prostu muszą się z nim zapoznać. JavaScript zawiera również różne biblioteki i struktury, które, gdy nadejdzie czas, obiecują elastyczność w skalowaniu Twojej firmy.
Z drugiej strony każdy stos ma swoje wady. Wiele osób skupia się na JavaScript wyłącznie z powodu jego sukcesu. Aby zbudować optymalny stos technologiczny, profesjonalny zespół programistów musi pamiętać o wszystkich tych czynnikach.
Rzeczy do rozważenia przy wyborze stosu technicznego
Wymagania i funkcje projektu
Tworząc stos technologiczny, należy wziąć pod uwagę wielkość i cel projektu, ponieważ mają one istotny wpływ na wybory konkretnych technologii. Im większy i bardziej znaczący jest projekt, tym większy i bardziej złożony będzie stos technologiczny, taki jak stosy o ugruntowanej pozycji, takie jak Python-Django lub Node dla małych projektów (MVP lub aplikacje jednostronicowe). Js-React może być doskonały.
Zazwyczaj średniej wielkości projekty, takie jak sklepy internetowe lub smartfony średniej wielkości, wymagają bardziej skomplikowanych stosów technicznych kilku poziomów języków programowania i frameworków. Aby zachować integralność i wydajność aplikacji, duże projekty, takie jak złożone platformy handlowe lub aplikacje korporacyjne, wymagają dużego stosu technicznego.
Zasoby i doświadczenie
Aby wybrać stos technologiczny, konieczne jest posiadanie głębokiego doświadczenia technicznego i architektonicznego oraz wiedzy. Aby kompetentnie wybrać technologie, niezbędna jest znajomość wszystkich tajników i różnic między nimi. Dlatego tworząc takie stosy, warto dać pierwszeństwo tym technologiom, aby móc pracować z pewnością.
Wybór takich technologii może skutkować stratą czasu dla twórców projektów, aby zyskać wgląd w nową technologię, zamiast skutecznie iść do przodu.
Skalowalność
Architektura aplikacji musi być skalowalna, ponieważ skalowalność jest niezbędna do dalszego rozwoju. Skalowalność określa, czy aplikacja może zarządzać obciążeniem.
Na przykład stos technologii powinien umożliwiać aplikacji radzenie sobie z tym wzrostem, jeśli liczba użytkowników wzrośnie.
Istnieją dwa rodzaje skalowalności: pozioma i pionowa. Pierwsza to umiejętność pracy i radzenia sobie z rosnącą liczbą użytkowników na różnych urządzeniach. Skalowalność w pionie oznacza możliwość dodawania do aplikacji nowych funkcji lub elementów w przyszłości.
Lepiej jest używać potężnych języków programowania, takich jak JavaScript, aby osiągnąć dobrą skalowalność.
Utrzymywalność
Łatwość konserwacji jest podstawowym i głównym czynnikiem podczas tworzenia aplikacji. Nawet w przypadku skalowania, pielęgnowalność opracowanej aplikacji powinna odbywać się bez dodatkowych wysiłków. Co istotne, dwie zmienne zależą od łatwości utrzymania aplikacji:
- Architektura: wspieranie ponownego wykorzystania, skalowalność i mobilność.
- Baza kodu: Baza kodu nie powinna być zbyt długa ani zbyt zwięzła; przetworzenie długiego kodu zajmie więcej czasu, a krótki kod podczas debugowania może również prowadzić do błędów.
Bezpieczeństwo
Każdy użytkownik końcowy chce mieć pewność, że jego dane są bezpieczne. Dlatego przy tworzeniu stosów technologicznych należy wybierać technologie zapewniające wysoki poziom bezpieczeństwa. Szczególnie problem występuje w przypadku płatności online.
Szybkość rozwoju
Szybkość rozwoju projektu jest jednym z najważniejszych czynników. Gdyby projekt rozwijał się szybko, najlepszą opcją byłoby wybranie gotowych rozwiązań dla stosów technologicznych, które zapewniają łatwą integrację. Dzięki integracjom innych firm takie kombinacje technologii skracają ogólny czas opracowywania.
Tech Stacks za popularnymi aplikacjami
Jako przykład świetnego stosu technologicznego przyjrzyjmy się kilku godnym uwagi projektom.
Spotify
Serwer: Nginx
Bazy danych: Cassandra, PostgreSQL
Framework po stronie serwera: Django
Języki programowania: Java, Python
Airbnb
Serwer: Nginx
Bazy danych: MySQL, Amazon, Redis, Hadoop
Framework po stronie serwera: Rails
Języki programowania: JavaScript, Ruby
Pinterest
Serwer: Nginx
Bazy danych: MySQL, Redis, Hadoop, HBase
Framework po stronie serwera: Django, JavaScript MVC
Języki programowania: Java, Python, GO.
Shopify
Serwer: Nginx
Bazy danych: MySQL, Redis, Hadoop,
Framework po stronie serwera: Rails
Języki programowania: Ruby, GO
Końcowe przemyślenia
W przypadku każdego udanego projektu wybór odpowiedniego stosu technologicznego jest bardzo istotny. Przed przystąpieniem do wyboru technologii należy dokładnie przeanalizować projekt i wziąć pod uwagę rodzaj, wymagania dla projektu, doświadczenie i zasoby zespołu, a także takie rzeczy jak skalowalność, szybkość i bezpieczeństwo.
Chociaż istnieją gotowe rozwiązania, nie zawsze mogą one opracować projekt według wszystkich wymagań. Dlatego przy tworzeniu stosu technologicznego często preferowane jest indywidualne podejście.
Inne przydatne zasoby:
Objaśnienie stosu technologii marketingowych
30 najlepszych narzędzi dla Twojego stosu technologii marketingowych
Korzyści ze zintegrowanych stosów chmury
Technologia jutra po stronie sprzedaży: rozwiązania do handlu między aktywami dla biura obsługi