Dizajn arhitekture iOS: Motivacija

Približimo se temi stvaranja vlastite arhitekture u ovom nizu članaka.

Što je arhitektura?

Arhitektura je najviša razina dizajna sustava.

Dizajn sustava način je da se olakša proizvodnja koda za aplikaciju.

Aplikacija je medij potreban za ispunjavanje (poslovnog) cilja.

Mogu li ga preskočiti?

Čak i kada ne pripremite dizajn sustava prije izrade aplikacije, morate razmišljati prije nego što napišete bilo koji kôd, a to se naziva slučajnim dizajnom sustava, koji vodi do slučajne arhitekture (AA).

Lako je otkriti slučajnu arhitekturu:
P: Zašto je naš kod tako ružan?
O: Povijesni razlozi ...

Što ću dobiti?

Svrha postavljanja formalne arhitekture, a ne skok u kodiranje, jest uspostaviti smjernice, ograničenja i obrasce prema kojima će kôd rasti.

Razmislite o postavljanju arhitekture kao postavljanju željeznice za kôd koji bi se kretao duž nje poput vlaka.

Zašto bih se suzdržavao?

Smjernice, ograničenja i obrasci pomažu u:

  • kôd slijedi princip najmanje začuđenosti;
  • razumjeti kako funkcionira postojeći sustav;
  • izbjegavajte izumiti kotač;
  • širiti radne ideje u zajednici.

Mogu li koristiti jedan od onih s interneta?

Trebali biste učiti od toga, ali svi oni pate od mnogih problema:

  • ne daju strategije rasta;
  • dobro prilagođavanje samo jednoj veličini aplikacija i tima;
  • slučajna razina apstrakcije komponenata i komunikacije;
  • nejasna raspodjela uloga (gledam u vas "Radnik");
  • neumoljiv i fanatičan;)

Imam li dovoljno vještina da ga dizajniram?

Nitko nema dovoljno, ali što više imate, lakše je vidjeti svjetlo na kraju tunela.
Evo što će vam pomoći:

  • čitati stare knjige i bijele radove o dizajnu sustava i obrascima;
  • izbjegavajte nove članke koji vam pokušavaju prodati srebrni metak;
  • naučite što u proizvodnji djeluje za druge;
  • koristite druge platforme kao izvor nadahnuća;
  • iskušajte ideje kod kuće, ako djeluju, dovedite ih na posao;
  • odgodite odluku ako ste u nedoumici (u međuvremenu napravite glupu stvar);
  • razgovarati o idejama i implementacijama s drugima.

Gdje započeti?

Uvijek bi trebali započeti analizom zahtjeva (kao u svakom zrelom nastojanju) koji dolaze od cilja.

Funkcionalni zahtjevi.

U najgorem slučaju možete dobiti funkcionalnu specifikaciju visoke razine, poput ove:

  • Prijava za popis za kupovinu;
  • Sposobnost suradnje na listama;
  • Mogućnost korištenja bez internetske veze.

U ovoj bi fazi posao mogao smatrati da su zahtjevi dovoljni, a na vašu je odgovornost pronaći odgovore na niz pitanja koja se pojavljuju, na primjer:

  • Kako će izgledati sučelje?
  • Koje uređaje aplikacija mora podržavati?
  • Moram li i ja raditi na strani poslužitelja?

Kada ne možete razmišljati o drugim pitanjima, vrijeme je da pređete na sljedeću fazu.

Organizacijski zahtjevi.

Ako se ne radi o greenfield projektu, možda postoji dosta ograničenja u vašem izboru arhitekture, barem pokušajte odgovoriti na ova pitanja:

  • Tko je moj tim?
  • Što očekuju od naše arhitekture?
  • Imamo li uspostavljene alate i jezike?
  • Možemo li ponovo upotrijebiti postojeću arhitekturu?

Mogu li konačno započeti izradu arhitekture?

Da, možete! Kad se stave funkcionalni i organizacijski zahtjevi, možete početi iznijeti svoje ideje, a zatim na kraju sastaviti formalnu Arhitekturu! Ali to je posve drugačija priča ...

Mogu li sada ići kući?

Prije nego što svoje ideje iznesete u divljinu, predlažem vam da ih testirate na sveobuhvatnom popisu koji sam sastavio radi vaše udobnosti.

Kako koristiti popis?

Uzmite svoju arhitekturu kandidata i pretvarajte se da je njen zagovornik odgovaranjem na pitanja poput probnog postupka (zamišljanje da žiri zajednice iOS pomaže).

Hvala na čitanju!

Pošaljite mi na Twitteru za povratne informacije.

Kamo otići odavde?

Pregled postojećih iOS arhitektura.
Pregled uzorka MVC.