A história de "dor" e como a corrigimos

Vou me apresentar, Malyugin Platon Android, líder da Dejavoo Systems. Esta história é sobre a nossa “dor” com a qual lutamos há um ano e a evolução da nossa arquitetura. O perfil principal são os terminais de caixa para varejistas e restaurantes, portanto, muito está ligado às especificidades do setor.



Em qualquer caso, mudar a arquitetura de um aplicativo não apenas o complica, mas aumenta a quantidade de documentação e requer suporte. Portanto, vale a pena considerar se é necessário fazer isso agora? Você tem experiência suficiente e o número de tarefas de bloqueio?



Porque agora? Você pode continuar sofrendo e tocar o mínimo possível nessa tela, já que funciona, por que quebrar o que está funcionando agora? Tudo é simples, acumulou-se um grande número de tarefas de bloqueio, para as quais é necessário refazer a estrutura de pedidos atual para outra mais complexa, mas flexível. Você não pode fazer sem alterações.



Descrição do problema



Usamos uma atividade para pedidos, que suporta as versões para tablet e telefone. É mais fácil para nós trabalhar com diálogos (nossos diálogos são Activity), e há muitos deles nesta tela e não queremos duplicá-los.



Esta é a aparência da versão para tablet:



Versão para tablet



Coletamos a versão para telefones dos mesmos elementos, mas com um navegador diferente.



Versão do telefone



Descreverei em que consiste a tela:



  • Itens - fragmento
  • Departamentos - fragmento
  • Itens de linha e quantidade - fragmento
  • Parâmetros do pedido é uma visão separada


50, , , OrderPresenter .





Arquitetura atual



, Use case, . . , , , .



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



:



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




" " — , 2- . :



  • "" ( )
  • ,
  • ,


, , , , .



, , . :







  • ( 2 ) ,
  • UI
  • Rx




Nova arquitetura



, "" , , ( ), . .



Agora, se o usuário vai "martelar" na tela muito rapidamente. então seremos capazes de processar todas as operações, embora com um pequeno atraso (embora para o olho isso seja menos perceptível do que o "congelamento" da tela)



Breve diagrama UML do repositório:



Breve diagrama UML do repositório



Resultado



Podemos ter inventado uma bicicleta, mas a arquitetura, na minha opinião, simplifica o trabalho e permite dar suporte a casos mais complexos. Continuamos trabalhando nisso.




All Articles