kauemurakami / getx_pattern

Design pattern designed to standardize your projects with GetX on Flutter.
https://kauemurakami.github.io/getx_pattern
1k stars 235 forks source link

Dúvida no conceito de módulo #23

Closed jhosepharaujo closed 3 years ago

jhosepharaujo commented 3 years ago

Salve @kauemurakami, tira uma dúvida, no artigo em português vc falou que cada módulo seria uma tela nossa. No caso se seu tivesse que representar um CRUD de produtos, teria que fazer 3 módulos no caso? O de listagem, adição e alteração?

A estrutura no caso ficaria assim?

Modules
  - product
  |  - list
      |  - controller.dart
      |  - page.dart
      |  - bindings.dart
  |  - create
      |  - controller.dart
      |  - page.dart
      |  - bindings.dart
  |  - edit
      |  - controller.dart
      |  - page.dart
      |  - bindings.dart
kauemurakami commented 3 years ago

Olá @jhosepharaujo, talvez tenha me expressado mal, se você utiliza três telas diferentes pra isso, eu recomendo sim, um módulo pra cada, caso contrário você pode usar uma tela com um list view, por exemplo, junto comum dismissible para editar ou excluir um produto, nisso usaria um bottom sheet ou diálogo para confirmação. Pense que um módulo possui no mínimo uma tela e um controller, então você pode usar como quiser, afinal as saídas passarão pelo mesmo repository, ou um repository cada. Se você ver que não há necessidade, vc pode abrir outras telas a partir do mesmo módulo, mas lembre-se de usar o mesmo controller, geralmente faço isso em cadastro com stepps, na maioria das vezes, crio um controle simples de telas por Index, sem uso do navigator pra gerir esse "fluxo único" digamos. Então não está errado como você está fazendo, está organizado e vai ficar clean e legível, mas caso use a mesma tela pode usar no mesmo módulo.

kauemurakami commented 3 years ago

Isso combinado com Get.find não tem erro, tudo funcionará dentro daquele módulo.

kauemurakami commented 3 years ago

E mais uma coisa

Modules
   |  - products
        |  - controller.dart
        |  - page.dart
        |  - bindings.dart
    |  - new_product
        |  - controller.dart
        |  - page.dart
        |  - bindings.dart
    |  - edit_product
        |  - controller.dart
        |  - page.dart
        |  - bindings.dart
kauemurakami commented 3 years ago

Querendo ou não nossos módulos crescem mais do que esperamos, então é bom sempre separar até mesmo para componentizar suas Pages com widgets dinâmicos, tudo fica menor e mais legível.

jhosepharaujo commented 3 years ago

Perfeito @kauemurakami, dúvida sanada.