IOS-Architektur entwerfen: Motivation

Gehen wir in dieser Artikelserie auf das Thema der Schaffung einer eigenen Architektur ein.

Was ist Architektur?

Architektur ist die höchste Ebene eines Systemdesigns.

Das Systemdesign ist eine Möglichkeit, die Erstellung von Code für eine Anwendung zu vereinfachen.

Eine Anwendung ist ein Medium, das zur Erreichung eines (Geschäfts-) Ziels benötigt wird.

Kann ich es überspringen?

Auch wenn Sie das Systemdesign nicht vor der Erstellung der App vorbereiten, müssen Sie überlegen, bevor Sie Code schreiben. Dies wird als versehentliches Systemdesign bezeichnet und führt zu einer versehentlichen Architektur (Accidental Architecture, AA).

Es ist leicht, zufällige Architekturen zu erkennen:
F: Warum ist unser Code so hässlich?
A: Historische Gründe…

Was werde ich gewinnen?

Der Zweck, eine formale Architektur einzurichten, anstatt sich auf das Codieren einzulassen, besteht darin, Richtlinien, Einschränkungen und Muster festzulegen, nach denen der Code wachsen soll.

Stellen Sie sich Architektur als eine Eisenbahn vor, auf der sich ein Code wie ein Zug bewegen kann.

Warum sollte ich mich zurückhalten?

Richtlinien, Einschränkungen und Muster helfen dabei,

  • Code nach dem Grundsatz des geringsten Erstaunens;
  • verstehen, wie ein bestehendes System funktioniert;
  • Vermeiden Sie es, das Rad neu zu erfinden.
  • Arbeitsideen in der Community verbreiten.

Kann ich einen aus dem Internet verwenden?

Sie sollten daraus lernen, aber dass sie alle unter vielen Problemen leiden:

  • bieten keine Wachstumsstrategien an;
  • gute Passform für nur eine Größe von Apps und Teams;
  • zufällige Ebene der Komponenten Abstraktion und Kommunikation;
  • vage Rollenverteilung (ich sehe Sie als "Arbeiter");
  • unversöhnlich und fanatisch;)

Habe ich genug Fähigkeiten, um es zu entwerfen?

Niemand hat genug, aber je mehr Sie haben, desto leichter ist es, das Licht am Ende eines Tunnels zu sehen.
Folgendes wird Ihnen helfen:

  • Lesen Sie alte Bücher und Whitepapers über Systemdesign und -muster.
  • Vermeiden Sie neue Artikel, die versuchen, Ihnen eine Silberkugel zu verkaufen.
  • lernen, was für andere in der Produktion funktioniert;
  • andere Plattformen als Inspirationsquelle nutzen;
  • Probieren Sie Ideen zu Hause aus. Wenn sie funktionieren, bringen Sie sie zur Arbeit.
  • Verschieben Sie die Entscheidung, wenn Sie Zweifel haben (machen Sie in der Zwischenzeit eine dumme Sache);
  • Ideen und Umsetzungen mit anderen diskutieren.

Wo soll man anfangen?

Wir sollten immer mit der Analyse der Anforderungen beginnen (wie bei jedem reifen Unterfangen), die vom Ziel ausgehen.

Funktionale Anforderungen.

Im schlimmsten Fall können Sie eine übergeordnete Funktionsspezifikation erhalten, wie folgt:

  • Einkaufsliste Anwendung;
  • Fähigkeit zur Zusammenarbeit an Listen;
  • Möglichkeit zur Verwendung ohne Internetverbindung.

In diesem Stadium könnte das Unternehmen der Ansicht sein, dass die Anforderungen ausreichen, und es liegt in Ihrer Verantwortung, Antworten auf die zahlreichen Fragen zu finden, die sich ergeben, beispielsweise:

  • Wie wird die Benutzeroberfläche aussehen?
  • Welche Geräte muss die App unterstützen?
  • Muss ich auch serverseitig machen?

Wenn Ihnen keine weiteren Fragen einfallen, ist es an der Zeit, mit der nächsten Stufe fortzufahren.

Organisatorische Anforderungen.

Wenn es sich nicht um ein Greenfield-Projekt handelt, gibt es möglicherweise zahlreiche Einschränkungen für Ihre Architekturauswahl. Versuchen Sie zumindest, die folgenden Fragen zu beantworten:

  • Wer ist mein Team?
  • Was erwarten sie von unserer Architektur?
  • Haben wir Tools und Sprachen etabliert?
  • Können wir eine vorhandene Architektur wiederverwenden?

Kann ich endlich anfangen, Architektur zu machen?

Ja, du kannst! Wenn Sie die funktionalen und organisatorischen Anforderungen zusammenstellen, können Sie damit beginnen, Ihre Ideen zu skizzieren und schließlich eine formale Architektur zu erstellen! Aber es ist eine ganz andere Geschichte zu erzählen ...

Kann ich jetzt nach Hause gehen?

Bevor Sie Ihre Ideen in die Realität umsetzen, sollten Sie sie anhand einer umfassenden Checkliste, die ich für Sie zusammengestellt habe, einem Stresstest unterziehen.

Wie benutze ich die Checkliste?

Nehmen Sie Ihre Kandidatenarchitektur und geben Sie vor, ihr Anwalt zu sein, indem Sie Fragen wie auf Probe beantworten (wenn Sie sich vorstellen, dass eine Jury aus einer iOS-Community hilft).

Danke fürs Lesen!

Nachricht an mich auf Twitter für Feedback.

Wohin soll es von hier aus gehen?

Übersicht über vorhandene iOS-Architekturen.
Überprüfung des MVC-Musters.