Aggodalmak szétválasztása a flutter alkalmazásokban

A közelmúltban be kellett hajtanom a fedélzeti járatokat UDN feladatkezelő Újdonságok! Ez nagyon fontos feladat volt, mert sok új felhasználó rejlik, hogy felfedezze a platformot a ..

Aggodalmak szétválasztása a flutter alkalmazásokban

Udn Webber

Lebegő fejlesztő

A közelmúltban be kellett hajtanom a fedélzeti járatokat UDN feladatkezelő Újdonságok! Ez nagyon fontos feladat volt, mert sok új felhasználó rejlik, hogy felfedezze a platformot a Hihetetlenül vicces hirdetés, amit a Super Bowl-nál kaptunk ! ✨

keresztül UDN feladatkezelő

A Walkthrough lehetővé teszi számos új felhasználók számára, akik talán nem tudják UDN feladatkezelő Mégis, hogy gyorsan megértse, hogyan kell használni több funkciót az alkalmazásból. Ez egy folyamatos erőfeszítés, mint az új UDN feladatkezelő Egyetemi erőforrás, amit folytatunk! 🚀

Szerencsére a szoftver architektúrája mögött UDN feladatkezelő Lebegés mobil alkalmazás lehetővé tette számomra, hogy végre ezt a funkciót nagyon gyorsan, még újrahasznosításával az igazi kütyü az alkalmazást! Ez azt jelenti, hogy a Walkthrough dinamikus, érzékeny, és pontosan megegyezik az alkalmazás valódi alkalmazási képernyőkéhez - és továbbra is, még akkor is, ha a widgetek fejlődnek.

Én is képes voltam végrehajtani a funkcionalitást az aggályok megfelelő szétválasztása miatt.

Lássuk, mit értem itt. 🤔

Az aggodalmak szétválasztása

UDN feladatkezelő Átalakítja munkáját az iparág vezető jellemzőivel

A szoftverszerkezet megtervezése a mérnöki csapatok egyik legösszetettebb témája. Az összes felelősség között mindig nehéz előre várni a jövőbeli szoftverfejlések. Ezért létre egy jól rakott és függetlenített architektúra segítségével és a csapattársak egy csomó dolgot!

A kis függetlenített rendszerek létrehozásának fő előnye kétségtelenül a bizonytalanság ! És ez az, ami segített nekem létrehozni a meglévő képernyők demo alternatíváját az alkalmazásból!

Lépésenkénti útmutató

UDN feladatkezelő Átalakítja munkáját az iparág vezető jellemzőivel

Most, hogyan alkalmazhatnánk ezeket az elveket egy flutter alkalmazásra?

Megosztjuk néhány olyan technikát, amelyet felépítünk UDN feladatkezelő Egy egyszerű átjáró példával.

A példa annyira egyszerű, hogy nem felvilágosítani az összes előnyét mögötte, de hidd el, ez segít létrehozni egy sokkal karbantartható Lebegés alkalmazások komplex codebases. 💡

Az alkalmazás

UDN feladatkezelő Átalakítja munkáját az iparág vezető jellemzőivel

Például létrehozunk egy olyan alkalmazást, amely minden évben megjeleníti az USA lakosságát.

keresztül UDN feladatkezelő

Itt van két képernyők:

A végrehajtás, mivel ez a legérdekesebb az aszinkron hívás.

1. lépés: Naiv megközelítés

UDN feladatkezelő Átalakítja munkáját az iparág vezető jellemzőivel

Az alkalmazásunk legnyilvánvalóbb megvalósítása egyetlen az egész logikára.

A kért év eléréséhez elolvastuk a tól örökölt widget.

Ez a példa hivatkozik a funkció a csomag, hogy az adatokat a datausa.io API , értelmezi az eredményül kapott JSON-t a módszer a könyvtár, és tartsa Az állam részeként az ingatlan nevű .

A widgetfa létrehozásához a , amely újjáépíti magát a mi jelenlegi állapotunkra aszinkron hívás.

Oké, a megvalósítás rövid, és csak beépített widgeteket használ, de most gondolja a kezdeti szándékunkat: Építési demo alternatívák (vagy tesztek) a képernyőn. Nagyon nehéz ellenőrizni a HTTP-hívás eredményét, hogy kényszerítse a kérelmet egy bizonyos állapotban.

Ez az, ahol a fogalom Az ellenőrzés inverziója segít nekünk. 🧐

2. lépés: Az ellenőrzés inverziója

UDN feladatkezelő Átalakítja munkáját az iparág vezető jellemzőivel

Ez az elv nehéz lehet megérteni az új fejlesztők számára ( és nehéz megmagyarázni ), de az általános ötlet az, hogy kivonja az összetevőkön kívüli aggodalmakat - hogy nem felelősek a viselkedés kiválasztásáért - és helyette átruházzák.

Egy még gyakori helyzet, egyszerűen áll létre vízkivételek és az injekciós megvalósítások a mi összetevőket, így azok végrehajtására lehet változtatni később, ha szükséges.

De ne aggódj, több értelme lesz a következő példánk után! 👀

Annak érdekében, hogy ellenőrizzék a HTTP-hívást API-nak, elkülönítettük a megvalósításunkat egy elkötelezettségbe osztály. Azt is létrehoztuk a osztály, hogy az adatokat könnyebben manipulálni és fenntartani.

Példánkra a jól ismert szolgáltató csomagot az a Például a fa gyökerében.

A Szolgáltató lehetővé teszi az elernyőzési widget ( tetszik mi ) A legközelebbi olvasás felső a fában. Ezután használhatjuk módszer elindításához a tényleges HTTP végrehajtás helyett.

Most kihasználhatjuk ezt!

Abban az esetben, ha nem tudtad: Bármely osztály A DART-ban is implicit módon határozzák meg a kapcsolódó interfészt . Ez lehetővé teszi számunkra, hogy alternatív végrehajtást biztosítsunk amely mindig ugyanazt a példányt adja vissza módszeres hívások.

Ez a módszer

Most már az összes billentyű, hogy megjeleníthessünk egy demó példányt a !

Egyszerűen felülbíráljuk a jelenleg rendelkezésre álló Például csomagoljuk egy olyan szolgáltatóban, amely létrehozza a Például!

És ez ez - a miénk Ehelyett olvassa el ezt a demó példányt, és használja a mi HTTP hívás helyett.

Ez nagyszerű példa erre Az ellenőrzés inverziója. Mi A Widget nem felelős az adatok megszerzésének logikájáért, de inkább dedikált ügyfélobjektumot küld. És mi most képesek létrehozni demo példányait a képernyőn, illetve végrehajtani widgetet teszteket a képernyőn! Fantasztikus! 👏

De még jobban meg tudunk csinálni!

Mivel például nem tudunk szimulálni a rakodási állapotot, például nincs teljes körű ellenőrzése a Widget szintünk bármely állapotváltozásával.

3. lépés: Államigazgatás

UDN feladatkezelő Átalakítja munkáját az iparág vezető jellemzőivel

Ez egy forró téma a flutterben!

Biztos vagyok benne, hogy már olvasta olyan emberek hosszú szálakat, akik megpróbálják megválasztani A legjobb államigazgatás megoldás a flutterhez. És hogy egyértelmű legyen, ez nem az, amit fogunk tenni ebben a cikkben. Véleményünk szerint mindaddig, amíg elválasztja üzleti logikáját a vizuális logikáról, jól vagy! Ezeknek a rétegeknek való létrehozása valóban fontos a karbantarthatóság szempontjából. A mi példánk egyszerű, de a valós alkalmazások logika gyorsan bonyolulttá és az elválasztás miatt sokkal könnyebb megtalálni a tiszta logika algoritmusok. Ezt a témát gyakran foglalják össze állami menedzsment .

Ebben a példában egy alapot használunk A . De azt is használtuk volna flutter_bloc vagy riverpod (Vagy más megoldás) , és nagyszerűen dolgozott volna is. Az alapelvek ugyanazok maradnak, és mindaddig, amíg elválasztották az államokat és a logikáját, még akkor is lehetséges, ha a kódbázisot az egyik másik megoldásból adja meg.

Ez az elválasztás segít abban is, hogy ellenőrizzük a widgetek bármely állapotát, így minden lehetséges módon tudunk gúnyolni!

Ahelyett, hogy támaszkodna a A keretből most képviseljük a képernyőn tárgy.

Fontos a és módszerek, hogy az objektumot értékeljük. Ez lehetővé teszi számunkra, hogy észleljük, ha két példányt másnak kell tekinteni.

💡 a egyenletes vagy fagyasztott A csomagok nagyszerű lehetőségek, amelyek segítenek végrehajtani a és mód!

Az államunk mindig a , de négy különálló lehetséges állam is van, amit meg akarunk mutatni a felhasználónak:

Ezek az államok világosabbak, mint egy , mivel tényleg a felhasználási eseteket képviseli. És ismét, ez megakadályozza a kódot fenntartható!

💡 Nagyon ajánlom a Unió típusok a fagyasztott csomagból A logikai állapotok képviseletére! Ez sok segédprogramot ad hozzá, mint a vagy mód.

Most, hogy rendelkezünk az államunk képviseletével, akkor valahol egy példányt kell tárolnunk - ez a célja . Ez megtartja az áramot példa a és módosíthatja az állapot frissítését.

Biztosítjuk a kezdeti állapot és a módszer az adatok betöltésére a és frissítse az áramot .

A képernyőnk állapotának azonnali és megfigyeléséhez a szolgáltatóra és annak érdekében is támaszkodunk . Ez a fajta szolgáltató automatikusan keres létrehozott és újjáépítést indít a Minden alkalommal, amikor értesítést kap a változásról (amikor a bejelentő értéke eltér az előzőtől).

Nagy! Alkalmazási architektúránk elég jónak tűnik. Minden jól meghatározott rétegekké válik, konkrét aggályokkal! 🤗

Az egyik dolog még mindig hiányzik a tesztelhetőséghez, de meg akarjuk határozni az áramot A kapcsolódó állapotának ellenőrzése .

4. lépés: Visual Dedikált elrendezés widget

UDN feladatkezelő Átalakítja munkáját az iparág vezető jellemzőivel

Az utolsó lépésben egy kicsit túl sok felelősséget adtunk Widget: Felelős volt a . És mint amit korábban láttunk, megpróbáljuk elkerülni a logikai felelősséget a néző rétegen!

Ezt könnyen megoldhatjuk, ha egy másik réteget hozunk létre a képernyő widgethez: megosztjuk Widget kétre:

A kettő kombinálásával egyszerűen létrehozhatunk demo / teszt példányok, de van az alkalmazásunk valódi felhasználására.

Az aggályok jobb szétválasztása érdekében mindent átmentünk a widget egy elkötelezett widget. Ez az új widget csak az adatokat fogyasztja, és nem felelős az esetleges instantiációért. Ez csak átalakítja az olvasási állapotot egy adott widget fára.

Az hívás és példa marad a , és ez a widget egyszerűen visszaadja a egy előre konfigurált függőségi fa segítségével!

Ez a kisebb javulás a szolgáltatóhasználatra jellemző, de észre fogja venni, hogy a hogy bármilyen leszármazott widget közvetlenül fogyaszthasson . Ez megkönnyíti az adatokat.

Soha ne habozzon kivonni egy widget fát egy dedikált osztályba! Ez javítja a teljesítményt, és a kódot fenntarthatóvá teszi.

A mi példánkban létre egy vizuális megjelenésének widget mindegyik a hozzá kapcsolódó állami típusok:

Most már teljes mértékben ellenőrzése alatt, amit mi is megcsúfolják és kijelző rá is képernyőn!

Csak a val,-vel az elrendezés állapotának szimulálásához.

Következtetés

UDN feladatkezelő Átalakítja munkáját az iparág vezető jellemzőivel

A karbantartható szoftver architektúra létrehozása véglegesen nem könnyű! A jövőbeni forgatókönyvek előrejelzése sok erőfeszítést igényelhet, de remélem, hogy a kevés tipp, amit megosztottak, segítenek a jövőben!

A példák egyszerűnek tűnhetnek - talán még akkor is úgy tűnik, mintha túlméretezésünk van - de mivel az alkalmazás összetettsége nő, mivel ezek a szabványok sokat segítenek neked! 💪

Jó szórakozást flutterrel, és kövesse a blogot, hogy több technikai cikket kapjon, mint ez! Maradjon velünk!

Kapcsolatfelvétel

Egy egyszerű, gyors, könnyű, könnyű és könnyen használható megoldást keres az Ön vállalkozásának? Lépjen kapcsolatba velünk most!