Filme porno

Categorii

Advertising

De ce sa alegi MVVM in locul MVP – Android Architecture

Potrivit Wikipedia, Arhitectura software se refera la structurile de nivel inalt ale unui sistem software, disciplina crearii unor astfel de structuri si dah dah si bla bla … stim cu totii ce este arhitectura !!

In cuvinte simple, luarea deciziei si implementarea unei arhitecturi de cod specifice sau a unui model de proiectare are ca scop rezolvarea problemelor cu care ne confruntam dezvoltatorii din cand in cand.

Probleme

Unele probleme obisnuite, cum ar fi cuplarea stransa a codului, care chiar si o mica modificare a unei portiuni de cod, are ca rezultat modificari / erori in alte parti ale codului. Reutilizarea redusa a condus in cele din urma la copierea-lipirea liniilor de coduri. Nu este atat de usor de testat etc. etc.

Array

Solutie

Android in sine este scris ca MVC unde Activity este responsabil pentru mai mult sau mai putin totul. Pentru aplicatii simple care ar putea fi suficiente, dar pe masura ce complexitatea creste, creste si cantitatea si nivelul problemelor.

Exista multe abordari arhitecturale diferite disponibile in aceste zile, cum ar fi MVP, FLUX, MVI, MVVM etc., care s-au dovedit a fi fructuoase in rezolvarea problemelor de mai sus. Se poate folosi orice abordare atata timp cat codul poate fi mentinut, suntem capabili sa ne adaptam rapid la schimbari, totul functioneaza bine, pe scurt o viata fericita de dezvoltator.

Obiectiv final

Modul in care vad imaginea de ansamblu aici, scopul final este de a construi lucrurile intr-o maniera atat de distribuita, care sa tina lucrurile legate de Android la un loc si sa separe toate celelalte entitati care nu necesita Android pentru a rula, apoi sa imparta in continuare -Piesa dependenta de Android, obtinand astfel modularitatea codului, scalabilitatea, usor de intretinut, usor de testat si asa mai departe ..

.

Numar infinit de discutii si articole despre tiparele de arhitectura si putem fi de acord cu faptul ca cel mai popular si adoptat pe scara larga dintre cele discutate mai sus este MVP ~ Model – View – Presenter. Exista o multime de hype in jurul acestui lucru si chiar eu il apreciez. Este un model matur si intr-o anumita masura rezolva de fapt problema, dar exista intotdeauna un dar nu complet.

Putem fi de acord ca nimic nu este perfect si ca exista intotdeauna posibilitati de imbunatatire.

MVP este matur, uimitor, dar Google a introdus componente de arhitectura Android, care au inclus ViewModel mai degraba decat Presenter si, prin urmare, dovada ca chiar si Google accepta MVVM.

Trebuie sa existe ceva care nu este potrivit cu MVP !!

Un simplu MVP fara prostii arata

MVP

si MVVM simplu arata

MVVM

Mai sus sunt prezentate reprezentari simplificate ale ambelor. Poti observa diferenta ??

Sa incepem cu cateva probleme cu care ne confruntam in continuare cu MVP si cum putem folosi MVVM pentru a le depasi.

Cuplaj strans

Pentru fiecare activitate / fragment (vizualizare) avem nevoie de un prezentator. Aceasta este o regula greu legata. Prezentatorul detine referinta la activitate si Activitatea detine referinta la prezentator. Relatia 1: 1 si aici se afla cea mai mare problema .

Pe masura ce complexitatea vizualizarii creste, creste si intretinerea si gestionarea acestei relatii.

Acest lucru a dus in cele din urma la aceeasi problema cu care ne-am confruntat mai devreme, ca si pentru schimbari rapide de proiectare, de fapt trebuie sa modificam intreaga relatie.

Alegerea unei declaratii din obiectivul nostru final „Construiti lucrurile intr-o maniera distribuita”, Pentru a-l atinge si pentru a evita aceasta relatie stransa au fost introduse ViewModels.

ViewModels sunt clase simple care interactioneaza cu stratul de logica / model si expun doar stari / date si de fapt nu are nicio idee de catre cine sau cum vor fi consumate aceste date. Numai Vizualizare (Activitate) detine referinta la ViewModel si nu invers, aceasta rezolva problema noastra de cuplare stransa. O singura vizualizare poate contine referinte la mai multe modele View.

Chiar si pentru vizualizarile complexe putem avea de fapt modele de vizualizare diferite in cadrul aceleiasi ierarhii.

Testabilitate

Deoarece prezentatorii sunt legati cu greu de Vizualizari, scrierea testului de unitate devine usor dificila, deoarece exista o dependenta de o Vizualizare.

ViewModels sunt si mai prietenoase pentru testarea unitatii, deoarece expun starea si, prin urmare, pot fi testate independent, fara a necesita testarea modului in care vor fi consumate datele, pe scurt, nu exista dependenta de View.

Acestea sunt doua majore care au clarificat alegerea. Ar putea mai mult sau poate nu. Comentariile de mai jos il asteapta !! ????

Aceste tipare arhitecturale sunt in continua evolutie, iar MVVM are tot calibrul sau putem spune potentialul de a deveni puternic, util dar uimitor de implementat. MVP a evoluat deja la un anumit nivel, dar nimic nu poate fi perfect.

De asemenea, sunt de acord ca exista o usoara curba de invatare asociata cu MVVM, dar in cele din urma ne ajuta sa depasim unele neajunsuri.

Nu sunt sigur cu privire la viitor, dar de acum „O solutie potrivita pentru toate ~ Silver Bullet” este inexistenta si un singur model poate sa nu fie suficient pentru o cerinta. S-ar putea sau nu sa-i placa MVVM si acest lucru este doar la latitudinea lor. Atata timp cat suntem capabili sa atingem obiectivul final, nimic altceva nu conteaza.

PS: Acestea sunt experientele mele personale, gandurile si de ce am preferat MVVM pentru proiectul nostru. Intentia de aici nu este sa comparam si sa aflam diferentele. Tot ce am incercat este sa impartasesc experienta mea cu MVP si cateva neajunsuri care pot fi depasite de MVVM.

Daca sunteti interesat, am pregatit, de asemenea, un exemplu de proiect (configurarea codului boilerplate, link mai jos) care implementeaza MVVM folosind Kotlin, Android Architectural Components, RxJava, Dagger 2. Feedback-urile si sugestiile vor fi foarte apreciate.

Video Description:

Potrivit Wikipedia, Arhitectura software se refera la structurile de nivel inalt ale unui sistem software, disciplina crearii unor astfel de structuri si dah dah si bla bla ... stim cu totii ce este arhitectura !!In cuvinte simple, luarea deciziei si implementarea unei arhitecturi de cod specifice sau a unui model de proiectare are ca scop rezolvarea problemelor cu care ne confruntam dezvoltatorii din cand in cand.ProblemeUnele probleme obisnuite, cum ar fi cuplarea stransa a codului, care chiar si o mica modificare a unei portiuni de cod, are ca rezultat modificari / erori in alte parti ale codului. Reutilizarea redusa a condus in cele din urma la copierea-lipirea liniilor de coduri. Nu este atat de usor de testat etc. etc. Array SolutieAndroid in sine este scris ca MVC unde Activity este responsabil pentru mai mult sau mai putin totul. Pentru aplicatii simple care ar putea fi suficiente, dar pe masura ce complexitatea creste, creste si cantitatea si nivelul problemelor.Exista multe abordari arhitecturale diferite disponibile in aceste zile, cum ar fi MVP, FLUX, MVI, MVVM etc., care s-au dovedit a fi fructuoase in rezolvarea problemelor de mai sus. Se poate folosi orice abordare atata timp cat codul poate fi mentinut, suntem capabili sa ne adaptam rapid la schimbari, totul functioneaza bine, pe scurt o viata fericita de dezvoltator.Obiectiv finalModul in care vad imaginea de ansamblu aici, scopul final este de a construi lucrurile intr-o maniera atat de distribuita, care sa tina lucrurile legate de Android la un loc si sa separe toate celelalte entitati care nu necesita Android pentru a rula, apoi sa imparta in continuare -Piesa dependenta de Android, obtinand astfel modularitatea codului, scalabilitatea, usor de intretinut, usor de testat si asa mai departe .. catch porno www.wetzlergroup.com porno perfectgirl www.noteout.com film porno brigitte lahaie startupsurat.com porno twerk hatley.biz porno gay daddy vacationworldrewards.co.uk porno lesbienne française todosobrelaesquizofrenia.com porno martinique naturesselect.org film porno ado oregonstatelottery.info porno puceau vincula.info wakfu porno vitagevity.us marocaine porno christmasdailygifts.info karin schubert porno nsi-products.com porno femmes fontaine operamini.net porno mother 263.wedgetoo.com porno sister fortynine.com film porno chinois nrecabenefits.com xxl porno mufflermen.com porno pipes decoratorsgallery.biz porno dorcel righters.com ancien film porno outsourceresults.com .Numar infinit de discutii si articole despre tiparele de arhitectura si putem fi de acord cu faptul ca cel mai popular si adoptat pe scara larga dintre cele discutate mai sus este MVP ~ Model - View - Presenter. Exista o multime de hype in jurul acestui lucru si chiar eu il apreciez. Este un model matur si intr-o anumita masura rezolva de fapt problema, dar exista intotdeauna un dar nu complet.Putem fi de acord ca nimic nu este perfect si ca exista intotdeauna posibilitati de imbunatatire.MVP este matur, uimitor, dar Google a introdus componente de arhitectura Android, care au inclus ViewModel mai degraba decat Presenter si, prin urmare, dovada ca chiar si Google accepta MVVM.Trebuie sa existe ceva care nu este potrivit cu MVP !!Un simplu MVP fara prostii arataMVPsi MVVM simplu arataMVVMMai sus sunt prezentate reprezentari simplificate ale ambelor. Poti observa diferenta ??Sa incepem cu cateva probleme cu care ne confruntam in continuare cu MVP si cum putem folosi MVVM pentru a le depasi.Cuplaj stransPentru fiecare activitate / fragment (vizualizare) avem nevoie de un prezentator. Aceasta este o regula greu legata. Prezentatorul detine referinta la activitate si Activitatea detine referinta la prezentator. Relatia 1: 1 si aici se afla cea mai mare problema .Pe masura ce complexitatea vizualizarii creste, creste si intretinerea si gestionarea acestei relatii.Acest lucru a dus in cele din urma la aceeasi problema cu care ne-am confruntat mai devreme, ca si pentru schimbari rapide de proiectare, de fapt trebuie sa modificam intreaga relatie.Alegerea unei declaratii din obiectivul nostru final „Construiti lucrurile intr-o maniera distribuita”, Pentru a-l atinge si pentru a evita aceasta relatie stransa au fost introduse ViewModels.ViewModels sunt clase simple care interactioneaza cu stratul de logica / model si expun doar stari / date si de fapt nu are nicio idee de catre cine sau cum vor fi consumate aceste date. Numai Vizualizare (Activitate) detine referinta la ViewModel si nu invers, aceasta rezolva problema noastra de cuplare stransa. O singura vizualizare poate contine referinte la mai multe modele View.Chiar si pentru vizualizarile complexe putem avea de fapt modele de vizualizare diferite in cadrul aceleiasi ierarhii.TestabilitateDeoarece prezentatorii sunt legati cu greu de Vizualizari, scrierea testului de unitate devine usor dificila, deoarece exista o dependenta de o Vizualizare.ViewModels sunt si mai prietenoase pentru testarea unitatii, deoarece expun starea si, prin urmare, pot fi testate independent, fara a necesita testarea modului in care vor fi consumate datele, pe scurt, nu exista dependenta de View.Acestea sunt doua majore care au clarificat alegerea. Ar putea mai mult sau poate nu. Comentariile de mai jos il asteapta !! ????Aceste tipare arhitecturale sunt in continua evolutie, iar MVVM are tot calibrul sau putem spune potentialul de a deveni puternic, util dar uimitor de implementat. MVP a evoluat deja la un anumit nivel, dar nimic nu poate fi perfect.De asemenea, sunt de acord ca exista o usoara curba de invatare asociata cu MVVM, dar in cele din urma ne ajuta sa depasim unele neajunsuri.Nu sunt sigur cu privire la viitor, dar de acum „O solutie potrivita pentru toate ~ Silver Bullet” este inexistenta si un singur model poate sa nu fie suficient pentru o cerinta. S-ar putea sau nu sa-i placa MVVM si acest lucru este doar la latitudinea lor. Atata timp cat suntem capabili sa atingem obiectivul final, nimic altceva nu conteaza.PS: Acestea sunt experientele mele personale, gandurile si de ce am preferat MVVM pentru proiectul nostru. Intentia de aici nu este sa comparam si sa aflam diferentele. Tot ce am incercat este sa impartasesc experienta mea cu MVP si cateva neajunsuri care pot fi depasite de MVVM.Daca sunteti interesat, am pregatit, de asemenea, un exemplu de proiect (configurarea codului boilerplate, link mai jos) care implementeaza MVVM folosind Kotlin, Android Architectural Components, RxJava, Dagger 2. Feedback-urile si sugestiile vor fi foarte apreciate.

Categorie:
Taguri:
Data adaugarii: