Techniki tworzenia dużych aplikacji.

0

Witam,

Z okazji świąt i biorąc pod uwagę moje ostatnie doświadczenia chciałbym rozpocząć taki temat , nie chodzi mi o konkretne narzędzia ale o różnego rodzaju sposoby projektowania dużych aplikacji czy serwisów , ja wypracowałem sobie swoje własne przez lata ale ostatnio naszła mnie myśl że powinna być możliwość zrobienia tego lepiej może ktoś zna jakieś ciekawsze techniki projektowania dużych aplikacji ?

1

Pytanie, co to znaczy "lepsze"?
Cierpisz na wydajność/ skalowalność/ parametry liczbowe?
Brak kontroli nad utrzymaniem i rozwojem (big ball of mud)?

przemek_l napisał(a):

ja wypracowałem sobie swoje własne przez lata

Generalnie o użytkowniku forum coś się wie, o Tobie niewiele.

4

Jest jedna uniwersalna technika którą sprawdza się wszędzie, przy pisaniu dużych aplikacji monolitycznych czy przy pisaniu aplikacji rozproszonych, wywodzi się ona z algorytmiki, i jest na tyle naturalna i oczywista, że aż zapominamy że ma swoją nazwę: dziel i zwyciężaj/divide and conquer.

1

o różnego rodzaju sposoby projektowania dużych aplikacji czy serwisów , ja wypracowałem sobie swoje własne przez lata ale ostatnio naszła mnie myśl że powinna być możliwość zrobienia tego lepiej może ktoś zna jakieś ciekawsze techniki projektowania dużych aplikacji ?

Po co projektować "duże" aplikacje? Lepiej projektować aplikację tak, żeby mając dużo funkcji, dalej wydawała się mała i prosta. Czy nie robić molochów, tylko zaprojektować dużą aplikację tak samo jak małą, tylko na większą skalę.

Czyli mały core + system pluginów i sposób przekazywania danych między pluginami. Decoupling między różnymi warstwami. Żeby nie robić monolitu, który będzie w jednej funkcji łączył się z bazą danych, dokonywał zaawansowanych obliczeń, a potem wyświetlał to na ekranie - tylko, żeby podzielić to na małe warstwy, gdzie każda warstwa jest możliwie głupia i operuje na danych dostarczonych przez inną warstwę.

2

@przemek_l: Polecam poczytać Robert C. Martina

1 użytkowników online, w tym zalogowanych: 0, gości: 1