L'histoire de la «douleur» et comment nous y remédier

Je vais me présenter, Malyugin Platon Android Lead chez Dejavoo Systems. Cette histoire parle de notre «douleur» avec laquelle nous nous battons depuis un an et de l'évolution de notre architecture. Le profil principal est celui des terminaux de paiement pour les détaillants et les restaurants, donc beaucoup est lié aux spécificités de l'industrie.



Dans tous les cas, les changements d'architecture d'une application non seulement la compliquent, mais augmentent la quantité de documentation et nécessitent un support. Par conséquent, cela vaut-il la peine de se demander s'il est nécessaire de le faire maintenant? Avez-vous suffisamment d'expérience et le nombre de tâches de blocage?



Pourquoi maintenant? Vous pouvez continuer à souffrir et toucher le moins possible cet écran, puisqu'il fonctionne, pourquoi casser ce qui fonctionne maintenant? Tout est simple, un grand nombre de tâches de blocage se sont accumulées, pour lesquelles il est nécessaire de refaire la structure de commande actuelle pour une structure plus complexe mais flexible. Vous ne pouvez pas vous passer de modifications.



description du problème



Nous utilisons une activité pour la commande, qui prend en charge les versions de tablette et de téléphone. Il est plus facile pour nous de travailler avec des dialogues (nos dialogues sont Activité), et il y en a beaucoup sur cet écran et nous ne voudrions pas les dupliquer.



Voici à quoi ressemble la version tablette:



Version tablette



Nous collectons la version pour téléphones à partir des mêmes éléments, mais avec un navigateur différent.



Version du téléphone



Je décrirai en quoi consiste l'écran:



  • Objets - fragment
  • Départements - fragment
  • Éléments de campagne et montant - Fragment
  • Order Parameters est une vue distincte


50, , , OrderPresenter .





Architecture actuelle



, Use case, . . , , , .



, , , , , . , ( Use case).



:



  • ,
  • ,
  • , ,
  • ,
  • , , ""
  • ,




" " — , 2- . :



  • "" ( )
  • ,
  • ,


, , , , .



, , . :







  • ( 2 ) ,
  • UI
  • Rx




Nouvelle architecture



, "" , , ( ), . .



Maintenant, si l'utilisateur va "marteler" sur l'écran très rapidement. alors nous pourrons traiter toutes les opérations, quoique avec un léger retard (bien que pour l'œil ce sera moins perceptible que le "gel" de l'écran)



Bref diagramme UML du référentiel:



Bref diagramme UML du référentiel



Résultat



On a peut-être inventé un vélo, mais l'architecture, à mon avis, simplifie le travail et permet de supporter des cas plus complexes. Nous continuons à y travailler.




All Articles