IOS-arkkitehtuurin suunnittelu: Motivaatio

Katsotaanpa omaa arkkitehtuurin luomista koskevaa aihetta tähän artikkelisarjaan.

Mikä on arkkitehtuuri?

Arkkitehtuuri on järjestelmäsuunnittelun korkein taso.

Järjestelmäsuunnittelu on tapa helpottaa koodin tuottoa sovellukselle.

Sovellus on väline, jota tarvitaan (liike) tavoitteen saavuttamiseen.

Voinko ohittaa sen?

Jopa silloin, kun et valmistele järjestelmäsuunnitelmaa ennen sovelluksen luomista, sinun on silti mietittävä ennen minkään koodin kirjoittamista, ja tätä kutsutaan vahingossa tapahtuvaksi järjestelmän suunnitteluksi, mikä johtaa vahingossa tapahtuvaan arkkitehtuuriin (AA).

Tahaton arkkitehtuuri on helppo havaita:
K: Miksi koodimme on niin ruma?
A: Historialliset syyt ...

Mitä voin saada?

Muodollisen arkkitehtuurin luomisen sijasta, että hyppääkoo koodaukseen, on luoda ohjeet, rajoitukset ja mallit, joiden mukaan koodi kasvaa.

Ajattele arkkitehtuurin perustamista rautatien asettamiseksi koodille, joka liikkuu sitä pitkin kuin juna.

Miksi haluaisin hillitä itseäni?

Ohjeet, rajoitukset ja mallit auttavat:

  • koodi, joka noudattaa vähiten hämmästyksen periaatetta;
  • ymmärtää, miten olemassa oleva järjestelmä toimii;
  • Vältä pyörän keksimistä uudelleen;
  • levittää työideoita yhteisössä.

Voinko käyttää yhtä niistä Internetistä?

Sinun pitäisi oppia niistä, mutta että he kaikki kärsivät monista ongelmista:

  • älä tarjoa kasvustrategioita;
  • sopii hyvin vain yhden koon sovelluksille ja joukkueelle;
  • komponenttien abstraktio ja viestintä satunnaisella tasolla;
  • epäselvä roolijakauma (katson sinua ”työntekijäksi”);
  • anteeksiantamaton ja fanaatikko;)

Onko minulla tarpeeksi taitoja suunnitella sitä?

Kukaan ei riitä, mutta mitä enemmän sinulla on, sitä helpompi on nähdä valo tunnelin päässä.
Tässä on mikä auttaa sinua:

  • lukea vanhoja kirjoja ja valkoisia kirjoituksia järjestelmän suunnittelusta ja malleista;
  • Vältä uusia artikkeleita, jotka yrittävät myydä sinulle hopeaa luodia.
  • oppia, mikä toimii muiden tuotannossa;
  • käyttää muita alustoja inspiraation lähteenä;
  • kokeile ideoita kotona, jos ne toimivat, tuo ne töihin;
  • lykätä päätöksen tekemistä, jos olet epävarma (tee tyhmä asia);
  • keskustella ideoista ja toteutuksista muiden kanssa.

Mistä aloittaa?

Meidän on aina aloitettava analysoimalla tavoitteesta johtuvia vaatimuksia (kuten kaikissa kypsissä yrityksissä).

Toiminnalliset vaatimukset.

Pahimmassa tapauksessa saat korkean tason toiminnallisen eritelmän, kuten tämä:

  • Ostoslista-sovellus;
  • Kyky tehdä yhteistyötä luetteloissa;
  • Mahdollisuus käyttää ilman Internet-yhteyttä.

Tässä vaiheessa yritys voi ajatella, että vaatimukset ovat riittäviä, ja sinun on vastuulla löytää vastauksia esiin nouseviin kysymyksiin, esimerkiksi:

  • Kuinka käyttöliittymä näyttää?
  • Mitä laitteita sovelluksen on tuettava?
  • Onko minun tehtävä myös palvelinpuolet?

Kun et voi ajatella muita kysyttäviä kysymyksiä, on aika siirtyä seuraavaan vaiheeseen.

Organisaation vaatimukset.

Jos se ei ole greenfield-projekti, arkkitehtuurivalinnallesi saattaa olla paljon rajoituksia, yritä ainakin vastata seuraaviin kysymyksiin:

  • Kuka on ryhmäni?
  • Mitä he odottavat arkkitehtuuriltamme?
  • Onko meillä vakiintuneita työkaluja ja kieliä?
  • Voimmeko käyttää olemassa olevaa arkkitehtuuria uudelleen?

Voinko vihdoin aloittaa arkkitehtuurin luomisen?

Kyllä sinä voit! Asettamalla toiminnalliset ja organisatoriset vaatimukset yhteen, voit alkaa esitellä ideoitasi ja sitten lopulta muodostaa muodollisen arkkitehtuurin! Mutta se on aivan erilainen tarina kertoa ...

Voinko mennä kotiin nyt?

Ennen kuin otat ideasi luonnonvaraiseksi, ehdotan, että testaat ne stressitestin perusteella kattavaksi tarkistusluetteloksi, jonka olen laatinut avuksesi.

Kuinka käyttää tarkistuslistaa?

Ota ehdokasarkkitehtuurisi ja teeskentele sen puolustajaa vastaamalla kysymyksiin, kuten oikeudenkäynnissä (kuvitellaan, että iOS-yhteisön tuomaristo auttaa).

Kiitos, että luit!

Viesti minulle Twitterissä palautteen saamiseksi.

Minne mennä täältä?

Katsaus olemassa oleviin iOS-arkkitehtuureihin.
Katsaus MVC-malliin.