Community

author
9 minutes, 41 seconds Read

Przez Ding Yi, pseudonim Sanhua w Alibaba.

Wartość komunikacji technicznej jest nie tylko odzwierciedlona w sposobie, w jaki aplikacje są rozwijane poprzez produkty komercyjne i projekty open-source oraz w sposobie, w jaki różne procesy uruchamiania biznesu są przyspieszane. Ale, jej wartość jest również odzwierciedlona w doświadczeniu dzielonym przez kilku różnych wybitnych inżynierów w zakresie poprawy produktywności, optymalizacji wydajności produktu i promowania doświadczeń użytkownika. Jednym zdaniem, komunikacja techniczna jest ważna, ponieważ poprawia nasze możliwości zawodowe.

W tym artykule ekspert techniczny Alibaby, Ding Yi, podzieli się swoimi pomysłami i doświadczeniem w tworzeniu skutecznych diagramów architektonicznych.

Aby opisać nasz system w jednym lub kilku diagramach, często napotykamy następujące problemy:

  • Nie wiemy, od czego zacząć.
  • Nie wiemy, jak opisać system w jednym diagramie, który jest wystarczająco jasny, aby odpowiednie zespoły ds. produktu, operacji i rozwoju mogły go wyraźnie zrozumieć.
  • W połowie drogi uświadamiamy sobie, że nie wiemy, kim jest publiczność.
  • Nie wiemy, czy przedstawiamy schemat funkcjonalny produktu, diagram techniczny, czy po prostu mieszankę.
  • Gdy na diagramie jest zbyt mało pól, nie wiemy, co jeszcze dodać.
  • Nigdy nie jesteśmy zadowoleni z układu diagramu.

Jeśli napotkałeś te same problemy, ten artykuł przedstawia metodologię rysowania, która pozwala tworzyć przejrzyste diagramy architektoniczne.

Koncepcje

Co to jest architektura?

An „architektura” może być zdefiniowana jako abstrakcyjny opis jednostek w systemie i relacji między nimi. Obejmuje ona szereg procesów decyzyjnych.

Architektura jest strukturą i wizją.

„Architektura systemu” jest ucieleśnieniem pojęć i rozkładem korespondencji między funkcjami rzeczy lub informacji a elementami formalnymi. Określa ona relacje pomiędzy elementami, jak również pomiędzy elementami a otoczeniem.

Budowanie solidnej architektury jest złożonym zadaniem i jest to temat, który powinniśmy tutaj omówić. Po zbudowaniu architektury, odpowiednie strony muszą ją zrozumieć i podążać za jej nakazami.

Co to jest diagram architektoniczny?

Diagram architektoniczny jest diagramem systemu, który jest używany do abstrakcji ogólnego zarysu systemu oprogramowania oraz relacji, ograniczeń i granic pomiędzy komponentami. Jest to ważne narzędzie, ponieważ zapewnia ogólny pogląd na fizyczne rozmieszczenie systemu oprogramowania i jego mapę drogową ewolucji.

Jakie są funkcje diagramu architektonicznego?

Diagram, podobnie jak obraz, jest wart tysiąca słów. Innymi słowy, diagram architektoniczny musi spełniać kilka różnych funkcji. Aby umożliwić odpowiednim użytkownikom zrozumienie architektury systemu i kierowanie się nią przy podejmowaniu decyzji, musimy przekazać informacje o architekturze. Diagramy architektoniczne zapewniają świetny sposób, aby to zrobić. Aby określić kilka głównych funkcji, diagram architektoniczny musi:

  • Przełamać bariery komunikacyjne
  • Osiągnąć konsensus
  • Zmniejszyć niejednoznaczność

Typy diagramów architektonicznych

Diagramy można podzielić na wiele kategorii. Jednym z popularnych typów diagramów jest widok 4+1, który obejmuje widoki scenariusza, logiczny, fizyczny, procesowy i rozwojowy architektury.

Widok scenariusza

Widok scenariusza opisuje związki między uczestnikami systemu a funkcjonalnymi przypadkami użycia i odzwierciedla ostateczne wymagania oraz projekt interakcji systemu. Ten widok jest zazwyczaj diagramem przypadków użycia.

Widok logiczny

Widok logiczny jest używany do opisania relacji komponentów, ograniczeń komponentów i granic po podziale funkcji oprogramowania systemowego. Odzwierciedla on ogólny skład systemu i sposób, w jaki system jest zbudowany. Ten widok jest zazwyczaj diagramem komponentów UML lub diagramem klas.

Widok fizyczny

Widok fizyczny opisuje mapowanie między oprogramowaniem systemowym a sprzętem fizycznym i pokazuje, jak komponenty systemu są rozmieszczane w grupie obliczalnych węzłów fizycznych. Dostarcza wskazówek w procesie wdrażania systemu oprogramowania.

Widok procesu

Widok procesu opisuje sekwencję komunikacji oraz wejście i wyjście danych pomiędzy komponentami oprogramowania systemowego i odzwierciedla przepływy funkcjonalne i przepływy danych w systemie. Ten widok jest zwykle przedstawiany jako diagram sekwencji lub diagram przepływu.

Widok rozwoju

Widok rozwoju jest używany do opisania podziału i kompozycji modułów systemu oraz dopracowania projektu kompozycyjnego pakietów wewnętrznych. Ten widok jest używany przez programistów i odzwierciedla procesy rozwoju i wdrażania systemu.

Pięć powyższych widoków architektonicznych reprezentuje różne cechy systemu oprogramowania z różnych perspektyw. Łącząc je w schemat architektoniczny, możemy bardzo jasno opisać ogólną architekturę systemu.

Co składa się na efektywny diagram architektoniczny?

Skąd możemy wiedzieć, czy diagram jest dobrym diagramem? I jakich metod powinniśmy używać do tworzenia diagramów?

Powyższe diagramy zostały wybrane w celu zilustrowania różnych typów diagramów, bez większego zastanowienia się nad ich jakością. Uważamy, że aby przedstawić dobry diagram architektoniczny, musimy wiedzieć, kto jest naszym odbiorcą i zastanowić się, jakie informacje chcemy przekazać. Dlatego nie powinniśmy przedstawiać widoku fizycznego lub logicznego dla samego widoku. Diagramy powinny być używane w celu dokładnego przekazania informacji wymaganych przez określoną grupę odbiorców, aby były skuteczne. Dopiero wtedy powinniśmy się martwić o to, jakiego typu jest to diagram. Dlatego najbardziej bezpośrednim standardem, według którego możemy ocenić jakość rysunku, jest to, czy publiczność może dokładnie zrozumieć informacje, które próbowaliśmy przekazać.

Oznacza to, że dobry i skuteczny diagram architektoniczny nie musi być wyjaśniany publiczności. Powinien on wyrażać wszystko, co chcesz powiedzieć, sam z siebie. Co więcej, dobry diagram powinien mieć również spójną strukturę, być dokładny w stosunku do danych, które reprezentuje i bezpośrednio odpowiadać kodowi.

Wspólne wyzwania podczas przedstawiania diagramów architektonicznych

Co reprezentuje kwadrat?

Dlaczego używamy kwadratów zamiast kół? Przypadkowe użycie kwadratów lub innych kształtów może spowodować zamieszanie.

Co oznaczają linie przerywane i ciągłe? Co oznacza strzałka? Co oznaczają kolory?

Samowolne użycie linii lub strzałek może prowadzić do nieporozumień.

Czy istnieją jakieś konflikty między czasem uruchomienia a czasem kompilacji? Czy są jakieś konflikty poziomów?

Budowanie architektury jest złożonym zadaniem. Dlatego używanie tylko jednego diagramu do reprezentowania architektury może łatwo doprowadzić do nieporozumień w zakresie konkretnych aspektów dotyczących architektury.

Moja zalecana metoda rysowania

Model C4 wykorzystuje kontenery, takie jak aplikacje, magazyny danych i mikroserwisy, a także komponenty i kod do opisania statycznej struktury systemu oprogramowania. Diagramy te są łatwe do narysowania, a ich kluczowe elementy są jednoznaczne. Najważniejsze jest jednak to, że potrafią one jasno wskazać zamierzonych odbiorców i znaczenie każdego diagramu.

Poniższy przykład pochodzi z oficjalnej strony C4. Na tej podstawie udaje nam się wykorzystać własne rozumienie, aby lepiej wyrazić architekturę oprogramowania.

System Context Diagram

Jest to diagram planowanego systemu bankowego. Wykorzystuje on zewnętrzny system bankowy mainframe do dostępu do kont klientów i informacji o transakcjach oraz wysyła wiadomości e-mail do klientów poprzez zewnętrzny system poczty elektronicznej. Jak widać, diagram jest prosty i przejrzysty. Nie wymaga on żadnych dodatkowych wyjaśnień, aby słuchacze mogli go zrozumieć. Możemy również zauważyć, że zawiera on system, który ma być zbudowany, klientów tego systemu oraz systemy peryferyjne, które współdziałają z tym systemem.

Usage

Taki prosty diagram może powiedzieć, jaki typ systemu ma być zbudowany, kim są jego użytkownicy, kto będzie nim manipulował i jak zostanie on zintegrowany z istniejącym środowiskiem informatycznym. Odbiorcami tego diagramu mogą być pracownicy wewnętrzni zespołu projektowego, zewnętrzny personel techniczny lub personel nietechniczny. Mówi nam on:

  • Jaki system ma zostać zbudowany?
  • Kto będzie nim manipulował?
  • Jak zostanie on zintegrowany z istniejącym środowiskiem informatycznym?

Jak przedstawić diagram

W tym diagramie twój własny system znajduje się w środku, a użytkownicy i systemy, które wchodzą w interakcję z tym systemem, są umieszczone wokół niego. Kluczowym aspektem tego diagramu jest to, że organizuje on i jasno pokazuje użytkowników i wysokopoziomowe zależności systemu, który ma być zbudowany. Po wykonaniu pracy koncepcyjnej, zobrazowanie diagramu zajmuje tylko kilka minut.

Diagram kontenera

Diagram kontenera rozszerza system z poprzedniego diagramu kontekstu systemu.

Na poprzednim rysunku, oprócz użytkowników i systemów peryferyjnych, system, który ma zostać zbudowany, zawiera aplikację internetową opartą na Java Spring MVC, aby zapewnić portal funkcji dla systemu, podczas gdy aplikacja mobilna oparta na Xamarin zapewnia portal funkcji dla klientów mobilnych. Aplikacja API oparta na Javie dostarcza usługi, a baza danych MySQL jest używana do przechowywania danych. Strzałki wskazują interakcje między aplikacjami.

Patrząc na ten diagram, nie zauważysz, czy pudełka mają ostre czy zaokrąglone rogi, ani czy strzałki mają linie ciągłe czy przerywane. Nawet kierunki strzałek nie przyciągają zbytniej uwagi.

Istnieje wiele metod rysowania, z których wszystkie definiują znaczenia ramek i linii. Wymaga to, aby zarówno rysownik, jak i oglądający diagram wyraźnie rozumieli te definicje. Tylko wtedy wszystkie informacje zawarte w diagramie mogą być zrozumiałe. Jest to jednak wymagające i wielu oglądających uchwyci tylko ogólne koncepcje.

Usage

Odbiorcami tego diagramu mogą być wewnętrzni lub zewnętrzni programiści lub personel O&M. Diagram ten służy do następujących celów:

  • Przedstawia ogólną strukturę systemu oprogramowania.
  • Odbija podejmowanie decyzji technicznych na wysokim poziomie.
  • Pokazuje, jak obowiązki są rozmieszczone w systemie i jak kontenery współdziałają ze sobą.
  • Powiada programistom, gdzie wymagane jest programowanie kodu.

Jak przedstawić diagram

Ten diagram używa ramek, które mogą zawierać nazwy, wybory techniczne, odpowiedzialności i interakcje między ramkami. Jeśli zaangażowany jest system zewnętrzny, najlepiej jest zdefiniować granicę.

Diagram komponentów

Diagram komponentów jest używany do rozszerzenia kontenera i opisania jego wewnętrznych modułów.

Użycie

Diagram ten jest przeznaczony dla wewnętrznych programistów i pokazuje im, jak organizować i rozwijać kod. Diagram ten służy do następujących celów:

  • Opisuje komponenty lub usługi systemu.
  • Wyjaśnia związki i zależności między komponentami.
  • Dostarcza ram, które pokazują, jak zadania związane z tworzeniem oprogramowania mogą być rozdzielane i dostarczane.

Diagram kodu lub klasy

Diagram ten jest przeznaczony dla pracowników pomocy technicznej. Jest to często spotykany typ diagramu, dlatego nie będziemy go szczegółowo opisywać.

Case Study

Następujący rysunek przedstawia architekturę wewnętrznego narzędzia do obsługi danych w czasie rzeczywistym. Ponieważ diagram architektoniczny powinien być oczywisty, nie ma zbyt wiele potrzeby wyjaśniania go. Jeśli nie można go wyraźnie zrozumieć, diagram zdecydowanie nie jest wystarczająco dobry.

Istnieje wiele metodologii przedstawiania dobrego diagramu architektonicznego. W niniejszym artykule przedstawiona została metoda C4, która jednak również podlega ciągłej ewolucji. Mimo to, niezależnie od metodologii rysowania, musimy po prostu wziąć pod uwagę intencję rysunku i lepiej ją przekazać odbiorcy. Nie musimy być nadmiernie ograniczani przez zasady w procesie rysowania. Krótko mówiąc, przed przystąpieniem do tworzenia diagramu należy zadać sobie pytanie: Dla kogo to jest, z czego to jest i jak sprawić, by było intuicyjne i zrozumiałe.

O autorze: Sanhua jest ekspertem technicznym w firmie Alibaba. Zijing, Pengsheng i Yule również przyczynili się do powstania tego artykułu. Ding Yi pracował wcześniej przez wiele lat nad silnikiem przepływu pracy R&D, ale obecnie koncentruje się na architekturze i rozwoju mobilnych aplikacji internetowych o wysokiej wartości waluty. Autorzy tego artykułu pochodzą z działu LST Alibaby.

Czy chcesz poznać najnowsze trendy technologiczne w chmurze Alibaby? Usłysz je od naszych najlepszych ekspertów w nowo rozpoczętej serii Tech Show!

Similar Posts

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.