kauemurakami / getx_pattern

Design pattern designed to standardize your projects with GetX on Flutter.

Home Page:https://kauemurakami.github.io/getx_pattern

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Dúvida no conceito de módulo

jhosepharaujo opened this issue · comments

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

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.

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

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

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.

Perfeito @kauemurakami, dúvida sanada.