Wątek przeniesiony 2018-09-20 23:38 z Kariera przez somekind.

Jak uczyć się projektować skomplikowane aplikacje?

0

Jak uczyć się projektować skomplikowane aplikacje?

0

To mocno zależy co się rozumie przez skomplikowane aplikacje

0

Wbrew pozorom nie poprzez programowanie, ale np. czytanie o wzorcach projektowych.

0

Możesz analizować skomplikowane aplikacje.
Ciężko na przykład zbudować silnik, nie znając żadnego, tak łatwiej sobie wyobrazić czego potrzebujemy i jak zrobić w przejrzysty sposób.

Możesz też otworzyć w diassemblerze jakiś projekt, a jego poziom skomplikowania wzrośnie niż przy zwykłym czytaniu kodu projektu.

3

Skomplikowanych aplikacji nie powinno się projektować, ponieważ jak coś jest skomplikowane to jest

  1. nieprzyjazne dla użytkownika, nieintuicyjne
  2. często zabugowane
  3. trudne w utrzymaniu.

Owszem, można budować aplikacje złożone, duże, rozbudowane. Byleby nie skomplikowane, bo raczej aplikacje powinny być proste, rządzące się prostymi zasadami, zbudowanymi w sposób modularny, umożliwiający późniejszą rozbudowę itp.

Więc raczej należałoby zadać pytanie - jak pisać aplikacje, które będą proste (niezależnie od skali), a nie wyskakiwać od razu ze skomplikowanymi.

Wbrew pozorom nie poprzez programowanie, ale np. czytanie o wzorcach projektowych.

Samo czytanie niewiele ci da. Bo będzie to tylko teoria, a do programowania potrzebna jest praktyka i weryfikacja teorii.
To tak jak z gotowaniem - i nauka gotowania poprzez czytanie książek kucharskich zamiast poprzez własnoręczne gotowanie.

Trzeba robić różnego rodzaju aplikacje, czasami przeczytać jakaś książkę czy obejrzeć talka na Youtube o wzorcach, potem sprawdzić w to w praktyce, ale przede wszystkim samemu coś robić.

Trzeba też pamiętać, że tworzenie aplikacji to nie tylko to, co widać na ekranie komputera, bo apki się również tworzy na kartce papieru czy w głowie, myśląc jak coś zrobić. Trzeba kminić samemu. Eksperymentować. Poddawać refleksji to co się robi itp. Ale przeglądać też np. kod open source różnych innych apek, patrzeć na rozwiązania innych itp.

Dużo też może dać praca w zespole, przy jakiejś większej apce. Wtedy uczysz się już na żywej aplikacji. Jak apka jest napisana dobrze, to będziesz mógł potem tę wiedzę przenieść do kolejnych projektów. Ale jak apka jest napisana średniodobrze, albo słabo, to też dobrze bo wtedy pojawią się różne problemy i będziesz mógł uczyć się na błędach (czyli nawet jakbyś trafił do kompletnego spaghetti kodu to też dobrze! Po prostu wiesz, jak nie pisać).

0

Naukę gotowania jednak porównałbym do prostych aplikacji. Złożone aplikacje to było by np. organizacja przyjęcia, z obiadem, muzyką, tańcami itp. :)

To jest chyba nawet trafne porównanie, bo przy złożonych aplikacjach zazwyczaj trzeba więcej się przejmować "pozaprogramistycznymi" kwestiami.

0

Zespołowo

2

Zatrudnić się do pracy przy takich projektach i nabierać doswiadczenia, zarówno pozytywnego jak i negatywnego.

1

Warto poczytać sobie o projektach różnych aplikacji. Czasami firmy chwalą się jak ich produkty ewoluowały wraz ze zmieniającymi się wymaganiami (np Dropbox), jest też sporo danych na temat projektów róznych aplikacji, często baz danych - np "Designing Data-Intensive Applications" Kleppmanna. Nie powie ci to jak zaklepać wszystko linijka po linijce, zapewne twoje wymagania będą inne, ale zawsze warto jest zadać sobie pytanie dlaczego podjęta została jakaś decyzja i jakie są alternatywy - akurat książka Kleppmanna jest dobrym przykładem takiego rzutu wysokopoziomowych informacji.

0

Po pierwsze poczytaj o SOLID
Po drugie poznaj jakiś bardziej zaawansowany wzorzec projektowy: MVC, MVVM, VIPER, .... (przeczytać i zrozumieć to za mało, bo nauczyć się stosować to jest sztuka).
Po trzecie poćwiczyć powyższe na małym projekcie, zmieniając po drodze wymagania co do UI, albo strony serwerowej lub bazy danych (albo mieć parę wersji projektu z rożnym UI, z różnymi typami serwerów, baz danych).
Potem tylko praktyka, odświeżanie sobie SOLID i wzorcu wybranego projektowego i znowu praktyka. I tak w kółko aż się utrwali.

2

Zacznij od małego projektu, a później stopniowo dodawaj kolejne rzeczy. W momencie kiedy będzie problemem coś dodać to wiesz, że coś skopałeś i zastanów się dlaczego ;)

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