Oblikovanje iOS arhitekture: Motivacija

Pristopimo k temi ustvarjanja lastne arhitekture v tej seriji člankov.

Kaj je arhitektura?

Arhitektura je najvišja stopnja zasnove sistema.

Zasnova sistema je način, da se olajša izdelava kode za aplikacijo.

Vloga je medij, ki je potreben za izpolnitev (poslovnega) cilja.

Lahko preskočim?

Tudi ko ne pripravite zasnove sistema, preden naredite aplikacijo, morate še vedno razmišljati, preden napišete katerokoli kodo, in to se imenuje naključno oblikovanje sistema, kar vodi v naključno arhitekturo (AA).

Naključno arhitekturo je enostavno zaznati:
V: Zakaj je naša koda tako grda?
O: Zgodovinski razlogi ...

Kaj bom pridobil?

Namen vzpostavitve formalne arhitekture in ne skok v kodiranje je oblikovanje smernic, omejitev in vzorcev, v skladu s katerimi bo koda rasla.

Zamislite, da bi arhitekturo postavili kot postavitev železnice za kodo, ki bi se gibala po njej kot vlak.

Zakaj bi se zadrževal?

Smernice, omejitve in vzorci pomagajo:

  • koda po načelu najmanjšega začudenja;
  • razumeti, kako deluje obstoječi sistem;
  • izogibajte se izumljanju kolesa;
  • širjenje delovnih idej v skupnosti.

Ali lahko uporabim enega od teh iz interneta?

Morali bi se učiti od teh, vendar vsi trpijo zaradi številnih težav:

  • ne zagotavljajte strategij rasti;
  • dobro prileganje samo eni velikosti aplikacij in ekipe;
  • naključna raven odvzema komponent in komunikacije;
  • nejasna porazdelitev vlog (gledam na "Delavca");
  • nepremagljiv in fanatičen;)

Ali imam dovolj veščin, da ga oblikujem?

Nihče nima dovolj, ampak bolj kot jih imate, lažje je videti luč na koncu tunela.
Tukaj je tisto, kar vam bo pomagalo:

  • preberite stare knjige in bele knjige o zasnovi sistema in vzorcih;
  • izogibajte se novim člankom, ki bi vam poskušali prodati srebrno kroglo;
  • naučite se, kaj v proizvodnji deluje za druge;
  • uporabite druge platforme kot vir navdiha;
  • poskusite ideje doma, če delujejo, jih pripeljite k delu;
  • odložite odločitev, če dvomite (medtem naredite neumno stvar);
  • z drugimi razpravljajte o idejah in izvedbah.

Kje začeti?

Vedno bi morali začeti z analizo zahtev (kot v vseh zrelih prizadevanjih), ki izhajajo iz cilja.

Funkcionalne zahteve.

V najslabšem primeru lahko dobite funkcionalno specifikacijo na visoki ravni, kot je ta:

  • Vloga za seznam nakupovalnih strani;
  • Sposobnost sodelovanja na seznamih;
  • Možnost uporabe brez internetne povezave.

Na tej stopnji lahko podjetje meni, da so zahteve zadostne, in vi ste odgovorni za iskanje odgovorov na vprašanja, ki se pojavljajo, na primer:

  • Kako bo videti uporabniški vmesnik?
  • Katere naprave mora podpirati aplikacija?
  • Ali moram narediti tudi strežniško stran?

Ko si ne morete omisliti drugih vprašanj, je čas, da se premaknete na naslednjo stopnjo.

Organizacijske zahteve.

Če ne gre za greenfield projekt, je morda veliko omejitev pri izbiri vaše arhitekture, vsaj poskusite odgovoriti na ta vprašanja:

  • Kdo je moja ekipa?
  • Kaj pričakujejo od naše arhitekture?
  • Ali imamo vzpostavljena orodja in jezike?
  • Ali lahko ponovno uporabimo obstoječo arhitekturo?

Lahko končno začnem ustvarjati arhitekturo?

Ja lahko! Če združite funkcionalne in organizacijske zahteve, lahko začnete opisati svoje ideje in nato na koncu sestavite formalno arhitekturo! Toda povsem drugačna zgodba je povedati ...

Lahko grem zdaj domov?

Preden svoje ideje popeljete v naravo, vam predlagam, da jih preizkusite pred izčrpnim kontrolnim seznamom, ki sem ga sestavil za vaše udobje.

Kako uporabljati kontrolni seznam?

Vzemite svojo arhitekturo kandidata in se pretvarjajte, da je njen zagovornik, tako da odgovarja na vprašanja kot na preizkušnji (domišljija, da žirija skupnosti iOS pomaga).

Hvala za branje!

Sporočite mi na Twitterju za povratne informacije.

Kam od tu?

Pregled obstoječih iOS arhitektur.
Pregled vzorca MVC.