Estrutura para grandes projetos e React + Redux #121
Replies: 32 comments
-
Tenho trabalhado com esta estrutura nas aplicações: Estou bem satisfeita. Outros artigos que recomendo: |
Beta Was this translation helpful? Give feedback.
-
Valeu Diéssica, os dois últimos já li são muitos bons, o primeiro que vc passou, tem sido a arquitetura ate agora mais usada, fiquei meio invocado com essa nomenclatura "screens" mais acho que vou adotar gostei do conceito, obrigado pelas dicas fez a diferença. |
Beta Was this translation helpful? Give feedback.
-
O primeiro é o que eu uso, mas aprendi bastante com as duas outras leituras. Pelo o que lembro, o pessoal geralmente divide por stores, actions etc. A nomenclatura "screens" fez sentido para mim. Mas você precisa pensar na prática: Você pode adaptar a sua aplicação também. Eu, por exemplo, não uso assim:
Uso direto assim:
Também não uso assim:
E sim:
E assim vai, dependendo do projeto. Essas adaptações, obviamente, devem ser devidamente documentadas. :) |
Beta Was this translation helpful? Give feedback.
-
Atualmente a arquitetura que desenhei ta bem parecido com essa que vc ta falando ├── app
├── core
└── components
└── card.js
├── Operation
└── Reports
└── report.js
└── reportAction.js
└── specs
└── report-specs.js
Estou dividindo em areas e dentro dessas area crio as features, minha maior dúvida seria só em relação aos components, reducers e etc... comuns a todos, criei a pasta core para fazer como um biblioteca de comuns aonde dentro dele criaria um pasta components e etc... , porem essa nomeclatura "core" usado em projetos com outro paradigma de arquitetura não sei se ficou legal... rsrsrsrsr |
Beta Was this translation helpful? Give feedback.
-
Nesse caso, você coloca eles em uma pasta |
Beta Was this translation helpful? Give feedback.
-
Diessica da uma olhada no que montei ate agora.... no caso iria criar as pastas screens dentro da area operacional e colocar nesse caso aluno dentro de screens? Obrigado mais uma vez pelos esclarecimentos |
Beta Was this translation helpful? Give feedback.
-
Bacana! Pelo o que você mostrou, está tudo ok sim! Se "aluno" é uma tela (uma página), então você está certo: é uma screen; portanto, deve ficar dentro da pasta Uma boa rule of thumb é: Os links da navegação nunca vão para componentes, eles vão sempre para telas (screens) – nessas telas sim ficam os componentes, que podem ser cards, breadcrumbs, seções de conteúdo etc. Só aquele Percebi que você cometeu esse mesmo erro aqui:
Um exemplo da aplicação que estou trabalhando... "Vendors" ( |
Beta Was this translation helpful? Give feedback.
-
Acho interessante (particularmente, acho obrigatório) usar a ideia de container components também, super bem explicado aqui https://gist.github.com/chantastic/fc9e3853464dffdb1e3c O lance é ter toda a logica e manipulaçao dos dados nos containers, isso seria o código javascript propriamente dito enquanto os componentes de template são exclusivos para a marcaçao (html via jsx). Aproveito para usar |
Beta Was this translation helpful? Give feedback.
-
o php tem o twig que faz isso direitinho... é só fazer direito... |
Beta Was this translation helpful? Give feedback.
-
jsx esta para twig assim como js esta para php. exatamente isso que o gist fala (com outras palavras) :) |
Beta Was this translation helpful? Give feedback.
-
bahhh... eu já tinha sugerido isso long time ago... |
Beta Was this translation helpful? Give feedback.
-
existem opções ao JSX pra quem acha feio: |
Beta Was this translation helpful? Give feedback.
-
É importante explicitar que, ao usar JSX, você não está colocando HTML em arquivos JavaScript. Escrevendo JSX, você está escrevendo React elements – não elementos HTML. A sintaxe é somente semelhante ao HTML, simplesmente porque é a linguagem de marcação que usamos. Se você não gosta de gerar elementos HTML usando JavaScript, que é o que o React abstrai (e várias outras bibliotecas e frameworks também), daí é outro assunto – e não é culpa do JSX. Enfim, acredito que discussões sobre o JSX enquanto sintaxe não compreendem a essa issue, e sugiro que voltemos ao tópico original. |
Beta Was this translation helpful? Give feedback.
-
@diessica |
Beta Was this translation helpful? Give feedback.
-
Não há o que organizar, pois não existem blocos de HTML no código de um componente React. Usar |
Beta Was this translation helpful? Give feedback.
-
sim, mas o |
Beta Was this translation helpful? Give feedback.
-
Concordo. Trouxe essa definição de containers na issue pois é uma abstração conceitual, já que na prática, por ser tudo Javascript as chances de fazer tudo misturado é garantida pra quem não compreende exatamente o que é um template. Template é um bloco de código que transforma um bloco de dados em html. O template não computa, não conecta no server, etc. Template (ex: jsx) transforma dados estruturados (ex: json) em marcação de dados (ex: html). Deixar o view e o controller no mesmo arquivo é uma falha na organização, IMHO. |
Beta Was this translation helpful? Give feedback.
-
Nota: templates existem desde 1999. É fácil de entender, mas curiosamente sistemas como Wordpress e Drupal, estão começando a usar no core agora, em 2016... Vai entender... |
Beta Was this translation helpful? Give feedback.
-
@bernardodiasc valeu pelo bloco adicional |
Beta Was this translation helpful? Give feedback.
-
@diessica cheguei a versão quase final.... rsrsrsr olha ai |
Beta Was this translation helpful? Give feedback.
-
Valeu pelas dicas @diessica, bem maneira essa organizaçao dos arquivos pelas routes. 👍 |
Beta Was this translation helpful? Give feedback.
-
Opa, esqueci de responder! @felisio eu só não colocaria o reducer em @bernardodiasc nada! :) |
Beta Was this translation helpful? Give feedback.
-
Passando pra compartilhar esse artigo https://medium.com/@rajaraodv/the-anatomy-of-a-react-redux-app-759282368c5a, tem a ver com a abstração dos componentes na estrutura Redux. |
Beta Was this translation helpful? Give feedback.
-
Fala @diessica, foi mal tu me respondeu eu não vi.... obrigado por responder, realmente ficou difícil com esse conceito de screens porque minha ideia era criar o container completo e desacoplado então se eu fosse criar nesse caso a screen de aluno aonde colocaria meus arquivos redux? se fosse criar fora acabaria tento de criar outra pasta aluno so para o redux, ai ele não fica escalavel.... me explica melhor essa ideia valeu.... |
Beta Was this translation helpful? Give feedback.
-
Sugiro que você leia com atenção o gist do ryanflorence, incluindo comentários. |
Beta Was this translation helpful? Give feedback.
-
@diessica, não entendi de inicio que ideia era colocar os reducers dentro da pasta shared e que meus containers serão os screens..... pelo menos foi o que entendi ate agora |
Beta Was this translation helpful? Give feedback.
-
Aplicações Escaláveis com React e React Native Como escalar o desenvolvimento de aplicativos web e mobile de forma eficiente utilizando React e React Native https://medium.com/getty-blog-brasil/aplicações-escaláveis-com-react-e-react-native-2d337deaf8a1 |
Beta Was this translation helpful? Give feedback.
-
OFF, @felisio que ferramenta usou para os desenhos acima?? Achei interessante. |
Beta Was this translation helpful? Give feedback.
-
@JoseCage tenta esse https://www.npmjs.com/package/tree-cli |
Beta Was this translation helpful? Give feedback.
-
Opa @bernardodiasc referia-me ao desenho (protótipo/wireframe) não a listagem de diretórios.. Em todo caso, acredito que em caso usarei a ferramenta que me indicou.. 👍 |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Bom dia a todos,
Tenho pesquisado bastante, perguntado bastante e estudado muito sobre esse assunto e vi que cada um acaba adotando um tipo de arquitetura para a criação de grandes projetos feito e react + redux. Gostaria de saber como vcs constroem e padronizam suas arquiteturas, pensando em grandes projetos com projeção de crescimento tipo um ERP. Obrigado a todos.
Beta Was this translation helpful? Give feedback.
All reactions