Jak przejść z dobrego na świetne

To wprowadzenie do serii wieloczęściowej, w której staramy się uczynić procesy programowania front-end bardziej wydajnymi i skalowalnymi - aby stworzyć lepszy produkt, szybciej.

„Grupa ludzi burzy mózgów nad laptopem i kartkami papieru” autorstwa Štefana Štefančíka w Unsplash

Budowanie świetnego produktu często nie jest przedsięwzięciem solo. Najbardziej skomplikowane konfiguracje obejmowałyby wiele zespołów kreatywnych, marketingowych, produktowych i technologicznych. Nawet jeśli jesteś jednym z nich, musisz wchodzić w interakcje z użytkownikami, aby zebrać ich opinie na temat tego, co dla nich działa. Ta iteracyjna struktura cyklicznego procesu projektowania w celu poprawy jakości i funkcji jest powszechnie nazywana przepływem iteracji zwinnej.

Im szybciej będziesz w stanie iterować, tym lepszy będzie Twój produkt.
„Agile Iteration Workflow” autorstwa Smartsheet

W StashAway, kiedy zespół front-end po raz pierwszy zaczął budować produkt internetowy, wprowadziliśmy przyspieszony harmonogram, a nasze procesy rozwoju i zarządzania produktem były mniej rygorystyczne. Teraz, gdy produkt dojrzewa, a w miarę odkrywania i dodawania kolejnych funkcji, staramy się usprawnić i zaostrzyć nasz proces tworzenia lepszej i bardziej skalowalnej architektury frontonu dla produktu. Nasza obecna konfiguracja nie pozwoliłaby nam skutecznie skalować pod względem oferty funkcji i rozszerzeń kraju.

Aby stworzyć świetny produkt, musimy udoskonalić proces iteracji. Jest na ten temat wiele literatury na temat zarządzania produktem i nie jest to przedmiotem tej serii artykułów. Chcemy zbadać, jak być szybszym dzięki iteracjom w fazie prototypowania i budowy. Aby to zrobić, będziemy musieli sformalizować wewnętrzne procesy rozwoju i zatwierdzania naszego zespołu, abyśmy mogli efektywniej współpracować z naszymi zespołami kreatywnymi i produktowymi . Uważamy, że możemy to osiągnąć, wykorzystując ciągłą integrację i przepływ dostaw w połączeniu z szerszym obiegiem iteracji produktu, jak ustalono wcześniej.

Ostatecznie chcemy zbliżyć się do deklaratywnego paradygmatu programowania, który wyraża to, co chcemy robić w naszych aplikacjach, zamiast bezwzględnie kodować, w jaki sposób. Aby to zrobić, będziemy musieli położyć podwaliny pod tworzenie naszych elementów składowych.

Zaczynamy od rozwinięcia naszego oddzielenia obaw związanych z interfejsem użytkownika i logiką aplikacji, dzięki czemu tworzenie komponentów interfejsu użytkownika staje się osobnym działaniem. Będzie miał własne centralne repozytorium wraz ze wspólnymi narzędziami, własny pakiet testów jednostkowych, akceptacyjnych i regresyjnych. Nasze komponenty interfejsu użytkownika będą teraz nadawać się do wielokrotnego użytku, komponowania i tworzenia motywów dla różnych stron internetowych i aplikacji internetowych. W połączeniu z Storybook, możemy stworzyć interaktywną bibliotekę wzorów.

Będziemy mieć pewność, że nasze komponenty interfejsu będą wyglądały i zachowywały się dokładnie tak, jak powinny, dzięki czemu możemy skupić się na zabawnych i ważnych rzeczach - aplikacjach i ich zachowaniu. Możemy zastosować ten sam proces z naszymi komponentami interfejsu użytkownika do naszych projektów specyficznych dla aplikacji, z bardziej szczegółowymi pakietami testowymi, aby zmaksymalizować zasięg. Tylko dzięki tym pakietom testowym możemy zwiększyć zaufanie programistów do wypychania i wdrażania kodu, aw zamian zwiększyć szybkość iteracji.

Dzięki temu centralnemu repozytorium komponentów, które można komponować, możemy prototypować i testować pomysły użytkowników korytarza, a nawet dostarczać nowe funkcje w szybszym tempie.

Poziomy testowania oprogramowania

Zauważysz, że staraliśmy się zrozumieć, że testowanie jest ważne. Testowanie oprogramowania jest obszernym tematem w rozwoju oprogramowania, ale skupmy się na czterech poziomach testowania integralnego w płynnym działaniu ciągłego procesu dostarczania - jednostce, integracji, systemie i akceptacji.

Używamy testów jednostkowych do sprawdzania poprawności poszczególnych komponentów, najmniejszych testowalnych jednostek w oprogramowaniu. W naszym przypadku są to zwykle komponenty interfejsu użytkownika lub metody pomocnicze narzędzia. Testy integracyjne mają miejsce, gdy poszczególne komponenty są testowane jako grupa. Na przykład może to oznaczać funkcję, taką jak kalkulator, w której będziesz mieć przyciski i ekran wyświetlacza oraz upewnienie się, że w odpowiedzi na naciśnięcie przycisku wyświetlony zostanie prawidłowy numer. W przypadku interfejsu API punkt końcowy może nawiązać połączenie z bazą danych w celu pobrania zestawu danych.

Testy jednostkowe i integracyjne zwykle usuwają większość rażących błędów, zanim przejdziemy do wdrażania etapowego. Oszczędza czas wewnętrznym i zewnętrznym testerom, którzy ocenią ukończony i zintegrowany system pod kątem zgodności z wymaganiami funkcji i biznesu - domenami testów systemowych i akceptacyjnych. Gdy oprogramowanie przejdzie cztery poziomy testów, możemy wdrożyć do produkcji.

To krótki wgląd w to, w jaki sposób planujemy usprawnić procesy naszego zespołu front-end. Więcej szczegółów na temat implementacji omówimy w kolejnych postach na temat rozwoju interfejsu w StashAway. Bądźcie czujni!

Cały czas szukamy wielkich talentów technicznych, aby dołączyć do naszego zespołu - odwiedź naszą stronę internetową, aby dowiedzieć się więcej i skontaktuj się z nami!