fbpx
goodfirms LOGO Created with Sketch.








    Na co zwracać uwagę w architekturze aplikacji?

    15
    kwiecień
    2020
    3 minuty czytania
    Udostępnij

    Pisząc aplikację, należy zwrócić uwagę, by ta nie tylko dobrze działała, ale też była odpowiednio zorganizowana. Przemyślana architektura aplikacji pomoże nam nie tylko w dużych przedsięwzięciach, ale również w tych mniejszych. Pozwoli to zaoszczędzić wiele wysiłku, czasu i pieniędzy. Często też zadecyduje o tym, czy projekt przetrwa, czy nie.

    Niełatwo jednak znaleźć odpowiedź na pytanie „Jak zbudować dobrą architekturę aplikacji?”. Pomimo wielu książek i artykułów poświęconych wzorcom i zasadom projektowania (jak chociażby SOLID) pojawia się wrażenie, że brakuje czegoś bardzo ważnego.

    architektura aplikacji

    KRYTERIA DOBREJ ARCHITEKTURY APLIKACJI.

    Ogólnie rzecz biorąc, nie ma powszechnie przyjętego pojęcia „architektury aplikacji”. Jednakże, jeśli chodzi o praktykę, dla większości programistów jasnym jest, który kod jest dobry, a który zły. Dobra architektura aplikacji to przede wszystkim architektura opłacalna, która sprawia, że proces tworzenia i utrzymywania jej jest prostszy i bardziej efektywny. Aplikację taką możemy z łatwością rozbudowywać, modyfikować, testować i debugować.

    Dzięki temu możemy sformułować listę dość rozsądnych i uniwersalnych kryteriów:

    Wydajność systemu.

    Po pierwsze, aplikacja musi rozwiązywać zadania i wykonywać swoje funkcje dobrze i w różnych warunkach. Obejmują one takie cechy, jak niezawodność, bezpieczeństwo, wydajność, zdolność do radzenia sobie ze zwiększonym obciążeniem (skalowalność), itp.

    Elastyczność systemu.

    Każda aplikacja musi być z czasem modyfikowana - zmieniają się wymagania, dodawane są nowe. Im szybciej i wygodniej możemy dokonać zmian w istniejącej funkcjonalności, im mniej problemów i błędów będzie to powodować, tym bardziej elastyczny i konkurencyjny będzie system. Dlatego też w procesie tworzenia aplikacji staraj się ocenić, co w przypadku, gdybyś później musiał ją zmienić? Zadaj sobie pytanie: „Co się stanie, jeśli obecne rozwiązanie architektoniczne okaże się błędne?", „Ile kodu zostanie w tym przypadku zmienione?". Zmiana jednego fragmentu systemu nie powinna mieć wpływu na inne.

    Rozszerzalność systemu.

    Możliwość dodawania nowych podmiotów i funkcji do systemu bez naruszania jego podstawowej struktury. W początkowej fazie najlepiej jest umieszczać w systemie tylko podstawowe i najbardziej potrzebne funkcjonalności. Jednocześnie architektura powinna umożliwiać łatwe dodawanie kolejnych tak, by dokonanie najbardziej prawdopodobnych zmian wymagało jak najmniej wysiłku. Wymóg, by architektura systemu była elastyczna i rozszerzalna, sformułowano jako „zasadę otwarte-zamknięte" (druga z pięciu zasad SOLID): jednostki oprogramowania (klasy, moduły, funkcje itp.) muszą być otwarte na rozszerzenie, ale zamknięte na modyfikację.

    Testowalność.

    Kod, który jest łatwiejszy do przetestowania, będzie zawierał mniej błędów i działał bardziej niezawodnie. Ale testy nie tylko poprawiają jakość kodu. Wielu programistów dochodzi do wniosku, że wymóg „dobrej testowalności” jest również siłą przewodnią, która automatycznie prowadzi do dobrego projektu i jest jednym z najważniejszych kryteriów oceny jego jakości.

    Wielokrotnego użytku.

    Pożądane jest zaprojektowanie systemu w taki sposób, aby jego fragmenty mogły być ponownie wykorzystane w innych systemach.

    Dobrze skonstruowany, czytelny i zrozumiały kod. 

    Zazwyczaj wiele osób pracuje nad jedną aplikacją - niektórzy odchodzą, pojawiają się nowi. Po napisaniu zazwyczaj konieczne jest dołączenie do niej osób, które nie uczestniczyły w jej rozwoju. Dlatego dobra architektura powinna umożliwiać nowym osobom stosunkowo łatwe i szybkie zrozumienie systemu. Projekt powinien być odpowiednio skonstruowany, nie zawierać dublowania, posiadać dobrze zaprojektowany kod i najlepiej dokumentację. Jeśli to możliwe, należy stosować standardowe, ogólnie przyjęte rozwiązania znane programistom w systemie. Im bardziej egzotyczny system, tym trudniej jest zrozumieć go innym.

     

    architektura systemu android

    A jakie mamy kryteria złej architektury aplikacji?

    Sztywność.

    Trudno ją zmienić, ponieważ każda zmiana wpływa na zbyt wiele innych części systemu.

    Kruchość.

    Po wprowadzeniu zmian, inne części systemu nieoczekiwanie ulegają uszkodzeniu.

    Nieruchliwość.

    Kod trudno użyć ponownie w innej aplikacji, ponieważ wydobycie go z aktualnej jest utrudnione lub niemożliwe.

     

    ► Mam nadzieję, że ten artykuł pomógł Ci zrozumieć, czym jest dobra architektura aplikacji. Ważne, by tworząc ją, myśleć długoterminowo. Budowanie aplikacji, która jest funkcjonalna tylko w danym momencie, to rozwiązanie, które może zatrzymać jej dalszy rozwój i rozbudowę o dodatkowe możliwości. Skontaktuj się z nami, jeżeli poszukujesz ekspertów w tej dziedzinie!

    Wiktor Sobczyk

    Bezpłatna konsultacja

    Powiedz nam czego potrzebujesz, a nasi eksperci Powiedzą Ci jak to zrobić, ile to kosztuje i na kiedy będzie gotowe.

    Inne wpisy na blogu

    10
    luty
    2020
    Nasz świat jest pewnym rodzajem systemu. Musimy to zrozumieć, aby móc nim zarządzać. Wyobraź sobie, że podobnie jest z budowaniem aplikacji internetowej - powinieneś znać kontekst niezbędny do stworzenia systemu. Temat, który dziś poruszamy zajmuje honorowe miejsce w tworzeniu oprogramowania – to oczywiście architektura aplikacji internetowych. Artykuł ma na celu pomóc osobom nietechnicznym lepiej zrozumieć techniczną…
    tagi: #Technologia
    czytaj artykuł
    15
    listopad
    2022
    Nowoczesna aplikacja internetowa musi konkurować z pozostałymi dostępnymi na rynku rozwiązaniami nie tylko pod kątem funkcjonalności i wysokiej jakości treści, ale także zoptymalizowanej wydajności. Zbyt długi czas ładowania strony to bardzo poważny problem, który w praktyce szybko zniechęcić może większość nawet najbardziej aktywnych użytkowników. Warto zwrócić tu uwagę, iż w zdecydowanej większości branż to właśnie…
    tagi: #Bezpieczeństwo
    czytaj artykuł
    Jak możemy Ci pomóc?
    Porozmawiaj z nami!








      Kamil
      Head of Business Development
      Kliknij, aby podejrzeć