Architektura

przez | 25 maja, 2020

Architektura

Architektura oprogramowania to połączenie wysokopoziomowej struktury z niskopoziomowymi szczegółami, relacje między nimi, reguły ich rozbudowywania oraz środowisko pracy. Jej celem jest zminimalizowanie liczby ludzi wymaganych do stworzenia, utrzymywania i rozbudowywania systemu.

Zasady programowania nie zmieniły się od swoich początków. Ciągle używane są te same komendy (np. if’y i while). Są one uniwersalne. Z tego też powodu reguły architektury oprogramowania są uniwersalne i nie zależą od żadnej zmiennej.

Dobra architektura ma następujące zalety:

  • Potrzeba niewielu programistów do utrzymania i rozwoju systemu.
  • Koszty pracy programistów są minimalizowane.
  • Elastyczność i funkcjonalność oprogramowania jest maksymalizowana.
  • Łatwo jest wprowadzać zmiany.

Niejednokrotnie programiści dochodzą do wniosku, że muszą przepisać system, ponieważ obecny jest trudny w utrzymaniu i rozwijaniu. Mają przesadną pewność siebie, że teraz, budując od nowa, stworzą idealny system. Po jakimś czasie znowu wpadają w ten sam sposób. Problemem nie jest stary system, lecz nieodpowiednia architektura i praktyki programistyczne. Należy poświęcić im sporo czasu. Pomocne jest w tym zasady SOLID, GRASP, rysowanie diagramów UML, oraz proces TDD.

Systemy mają dwie cechy:

  • Zachowanie — system ma zarabiać lub oszczędzać pieniądze.
  • Struktura (architektura) – system ma mieć możliwość łatwego zmieniania się i dostosowywania do zmian oczekiwań i jego otoczenia.

W pracy trzeba znaleźć balans między rozwijaniem zachowania (dodawania nowych funkcji) a poprawianiem struktury (ułatwiania rozwijania systemu). Zazwyczaj pilne jest, ale nie ważne, aby nowa funkcja została zaprogramowana. Prace nad strukturą są zaś często ważne, ale nie pilne. Można to przedstawić w macierzy Eisenhowera:

pilne i ważne — architektura i zachowanie niepilne i ważne – architektura
pilne i nieważne -zachowanie niepilne i nieważne

Podczas rozwijania oprogramowania trzeba dodawać wartość do systemu, ale nie można zapominać o poprawianiu jego struktury. Proces refaktoryzacji (usprawniania struktury kodu) musi być ciągły i być codzienną praktyką programistyczną.

Wszystkie posty związane z mini projektem: Budowa czystej architektury:

Źródła

Bestseller dnia w księgarni Złote Myśli

Obrazy

Materiały

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *