IOS architektúra tervezése: Motiváció

Gondoljunk hozzá a saját építészet létrehozásának témájához ebben a cikksorozatban.

Mi az építészet?

Az építészet a rendszer tervezés legmagasabb szintje.

A rendszertervezés elősegíti a kód létrehozását egy alkalmazás számára.

Az alkalmazás egy közeg, amelyre szükség van egy (üzleti) cél eléréséhez.

Átugorhatom?

Még akkor is, ha nem készül el a rendszer tervezése az alkalmazás elkészítése előtt, még mindig gondolkodnia kell bármilyen kód írása előtt, és ezt véletlenszerű rendszer-tervezésnek hívják, ami véletlenszerű architektúrához (AA) vezet.

Könnyű felismerni a véletlenszerű építészetet:
K: Miért van olyan csúnya kódunk?
V: Történelmi okok…

Mit fogok nyerni?

A formális architektúra létrehozásának célja ahelyett, hogy a kódolásba kerülne, iránymutatások, korlátozások és minták meghatározása, amelyek szerint a kód növekedni fog.

Gondolj az építészet felállítására, mint egy vasútvonal meghatározására egy kód számára, hogy úgy mozogjon rajta, mint egy vonat.

Miért korlátoznék magam?

Az iránymutatások, korlátozások és minták segítenek a következőkben:

  • a legkevesebb meghökkentés elvét követő kód;
  • megérteni egy létező rendszer működését;
  • Kerülje el a kerék újra feltalálását;
  • terjesztheti a munka ötleteit a közösségben.

Használhatom az internetről egyet?

Tanuljon tőlük, de mindannyian sok problémát szenvednek:

  • ne biztosítson növekedési stratégiákat;
  • jó illeszkedés csak egy méretű alkalmazáshoz és csapathoz;
  • az absztrakció és a kommunikáció véletlenszerű szintje;
  • a szerepek homályos megoszlása ​​(„Munkavállalóra” nézek);
  • megbocsáthatatlan és fanatikus;)

Van-e elég készségem ahhoz, hogy megtervezzem?

Senkinek sincs elég, de minél több van, annál könnyebb látni az alagút végén a fényt.
A következő segít:

  • olvassa el a régi könyveket és fehér könyveket a rendszer kialakításáról és mintáiról;
  • kerülje az új cikkeket, amelyek megpróbálnak eladni neked ezüstgolyót;
  • megtudhatja, mi működik másoknak a termelésben;
  • inspiráció forrásaként használjon más platformokat;
  • kipróbálhatja ötleteit otthon, ha működnek, hozza őket működésbe;
  • halasztja a döntést, ha kétségei vannak (közben buta dolgot csinálsz);
  • megvitathatja másokkal az ötleteket és a megvalósításokat.

Hol kezdjem?

Mindig azzal kell elemeznünk (mint minden érett törekvésnél), amelyek a célból származnak.

Funkcionális követelmények.

A legrosszabb esetben magas szintű funkcionális specifikációt kaphat, mint például:

  • Bevásárlólista alkalmazás;
  • Együttműködési képesség a listákban;
  • Használhatóság internetkapcsolat nélkül.

Ebben a szakaszban az üzleti vállalkozás azt gondolja, hogy a követelmények elegendőek, és a te felelőssége, hogy válaszokat találjon a felmerülő kérdésekre, például:

  • Hogyan fog kinézni az UI?
  • Mely eszközöket támogatja az alkalmazás?
  • Kell-e szerveroldalt is készítenem?

Ha nem gondolhat más felteendő kérdésre, akkor ideje lépni a következő szakaszba.

Szervezeti követelmények.

Ha ez nem egy zöldmezős projekt, akkor sok korlátozás vonatkozhat építészeti választására, próbáljon legalább megválaszolni ezeket a kérdéseket:

  • Ki a csapatom?
  • Mit várnak építészetünktől?
  • Van-e eszközök és nyelvek?
  • Használhatjuk-e újra a meglévő építészetet?

Megkezdhetem az építészet készítését?

Igen tudsz! A funkcionális és szervezeti követelmények összeillesztésével elkezdheti felvázolni ötleteit, majd végül összeállíthat egy hivatalos építészeti felépítést! De egy teljesen más történet mondani ...

Most hazamehetek?

Mielőtt elkezdené ötleteit vadonba, azt javaslom, hogy tesztelje őket egy átfogó ellenőrző lista alapján, amelyet összeállítottam az Ön kényelme érdekében.

Hogyan lehet használni az ellenőrző listát?

Vedd át a jelölt architektúráját, és úgy teszel, mintha támogatnád, olyan kérdések megválaszolásával, mint a tárgyaláson (az iOS közösség zsűrijének elképzelése segít).

Köszönöm hogy elolvastad!

Küldjön üzenetet a Twitteren visszajelzés céljából.

Honnan menj innen?

A meglévő iOS architektúrák áttekintése.
Az MVC mintájának áttekintése.