Wie ich gelernt habe, saubere Architektur anzuwenden

Über mich

Ich bin iOS-Entwickler, Produktdesigner, Unternehmer. Ich konzentriere mich auf die Entwicklung von Apps mit positiver sozialer oder individueller Wirkung.

iOS ist die Haupttechnologie, mit der ich bisher gearbeitet habe. Zu Beginn meiner Karriere habe ich mit zwei Agenturen zusammengearbeitet. Später trug ich dieses Wissen weiter und arbeitete freiberuflich. Dann habe ich eine App-Entwicklungsagentur gegründet.

Warum ich Clean Architecture lernen wollte

Ich glaube, dass fast jeder iOS-Entwickler eine App starten kann. Sie können das Grafikdesign nehmen, das Ihnen Ihr Designer gibt, einen View-Controller für jeden Bildschirm erstellen, etwas Geschäftslogik darin mischen, um alles in Ihre Daten zu integrieren, und Sie sind fertig. Start!

Das habe ich mit Timefly gemacht, einem Produkt, das Ihnen geholfen hat, relevante Nachrichten zu lesen. Ich habe in etwa einem Monat ein Produkt mit einigen coolen Funktionen auf den Markt gebracht.

Mir wurde klar, dass es einfach ist, ein Produkt auf den Markt zu bringen. Jeder Entwickler mit einigen Grundkenntnissen kann es tun. Ich konnte es auf jeden Fall, schon früh in meiner Karriere, und ich genoss die Geschwindigkeit, die ich erreichen konnte. Das ist gut. Das ist ein Teil davon, wie wir unseren technologischen Fortschritt erreicht haben. Menschen haben Tools entwickelt, die das Programmieren erleichtern.

Später wollte mein Kunde eine neue Funktion hinzufügen. Ich sagte: „Toll!“ Noch mehr erstaunliche Arbeit zu liefern. Aber warte. Ich musste einen Teil des Codes hier ändern, etwas Code in diesem View-Controller hinzufügen. Es musste alles auch mit den vorherigen Funktionen gut funktionieren. Kein Problem. Ich habe es geschafft.

Später wollte mein Kunde eine weitere Nachrichtendatenquelle hinzufügen. Hmm. Ich habe diesen Code zusammengemixt und festgestellt, dass meine Klassen immer größer und größer werden. Es war schwieriger zu lesen. Ich begann zu vergessen, wo ich suchen sollte, um eine Änderung vorzunehmen. Ich musste die App ausführen, Haltepunkte setzen, um alles Schritt für Schritt zu erledigen und herauszufinden, was passierte.

Stellen Sie sich vor, Sie sind Elektriker und müssen ein neues System in der folgenden Verkabelung installieren.
camille-villanueva-562062-unsplash (1).jpg

Ich habe dann einige Änderungen an meinem Code vorgenommen, alles zum Laufen gebracht und einen weiteren Build gesendet. Dann bekam ich das Feedback von meinem Kunden und ein anderer Teil meiner App funktionierte nicht mehr so ​​wie zuvor.

Damals wurde mir klar, dass ja jeder eine App einfach starten kann. Es ist jedoch nicht so einfach, eine App immer und immer wieder, konsistent und einfach zu starten, mit der Gewissheit, dass Sie die älteren Teile des Codes nicht beschädigen. Ich musste meinen Code organisieren. Ich brauchte einen weiteren Monat, um meinen Code besser zu studieren, umzugestalten und zu organisieren. Ich wusste immer noch nicht, was ich tat. So begann ich, mehr über bessere Architekturmuster zu lernen.

Wie ich an das Erlernen sauberer Architektur herangegangen bin

Es war kein direkter Lernweg. Ich fing an, viel über verschiedene Techniken zu lesen, um meine View-Controller zu vereinfachen.

Zuerst habe ich mit MVVM (Model-View-ViewModel) experimentiert. Ich begann, die Geschäftslogik und andere Logik vom View-Controller zu trennen. Ich füge Beobachter zum Ansichtsmodell hinzu und lasse die Ansicht auf alle Änderungen im Ansichtsmodell reagieren. Es war ein etwas besseres Muster als MVC, also habe ich mich überall beworben.

Dann habe ich das VIPER-Muster ausprobiert. Es ist viel besser als MVC und MVVM, da Sie Ihren Code nicht mehr in 3 Kategorien einteilen. Sie haben jetzt 5 Kategorien: View, Interactor, Presenter, Entity und Routing. Das ist großartig!

Dann fand ich, dass Clean Architecture noch besser ist. Ich habe den Artikel, den Onkel Bob über Clean Architecture geschrieben hat, etwa 5 Mal gelesen. Es war immer noch schwer zu verstehen. Ich machte immer noch Fehler, weil irgendetwas immer keinen Sinn ergab.

Es war ein langsamer Lernprozess für mich.

Herausforderungen, denen ich mich gestellt habe

Anfangs war mir nicht ganz klar, wie wichtig es ist, die Entitäten und Anwendungsfälle der Anwendung sehr gut zu definieren. Es ist unglaublich wichtig und Sie müssen diesen ersten Prozess richtig machen. Als mobiler Entwickler und insbesondere als visueller mobiler Entwickler habe ich UI-Paradigmen verwendet, um mein Denken voranzutreiben. Ich dachte immer noch an Schaltflächen, Bildansichten, Tabellenansichten, Gestenerkennung als die Hauptfiguren einer App. Also plante ich alles mit diesen Details im Hinterkopf. Ich machte einen entscheidenden Fehler.

Entitäten sind die wichtigsten Komponenten. Die Anwendungsfälle sind die zweitwichtigste Komponente, da sie bestimmte Operationen für diese Entitäten definieren. Schaltflächen, Bildansichten, Bildlaufansichten, CoreData, das sind alles Details.

Außerdem wollte ich bei meinen Versuchen, die Architektur richtig hinzubekommen, meinen Code mithilfe von Unit-Tests automatisch testen. Mir wurde jedoch klar, dass ich meinen Code immer noch nicht so schrieb, dass er einfach zu testen war. Ich musste lernen, das immer besser zu machen, bis ich ein gutes Maß an Kompetenz und Zufriedenheit erreichte.

Die zentralen Thesen

Ich gehe davon aus, dass jeder den langfristigen Erfolg will, nicht nur den kurzfristigen Erfolg. Die Rolle des Entwicklers beinhaltet eine Verhandlung mit dem Product Owner darüber. Eine saubere Architektur ist unglaublich wichtig für eine App, die langfristigen Erfolg anstrebt. Deshalb wette ich, dass es am besten ist, von Anfang an eine saubere Architektur für alle Apps zu erstellen.

Es wird allen viel Energie sparen, es macht die App erweiterbar und einfach zu testen. Es gibt den Entwicklern ein Gefühl der Erleichterung, da sie genau wissen, wo sie beim Lesen, Ändern, Hinzufügen oder Löschen von Code nachsehen müssen. Sie debuggen weniger.

Tipps und Ratschläge

Diese Lernreise, um eine immer bessere Architektur zu schaffen, ist es allemal wert. Ich würde allen Entwicklern empfehlen, es zu nehmen. Aber mach es nicht so wie ich es gemacht habe. Starten Sie direkt mit dem Erlernen von Clean Architecture. Verwenden Sie Test Driven Development, um Sie dazu zu zwingen, immer besseren Code zu schreiben.

Abschließende Gedanken und nächste Schritte

Mein nächstes Lernziel ist es, so viele Tools wie möglich auszuprobieren, die das Testen von Apps beschleunigen würden. Dazu gehören Unit-Testing-Frameworks und UI-Tests. Ich werde jedoch immer daran interessiert sein, die Architektur zu verbessern und immer effizienter zu machen.

Similar Posts

Leave a Reply

Your email address will not be published.