Giter Site home page Giter Site logo

franka107 / explicit-architecture-reactjs Goto Github PK

View Code? Open in Web Editor NEW

This project forked from hgraca/explicit-architecture-reactjs

0.0 0.0 0.0 1.12 MB

This repository is a demo of Explicit Architecture, using ReactJs and the Symfony Demo Application as a GraphQL API backend.

License: MIT License

JavaScript 97.09% CSS 0.34% HTML 2.57%

explicit-architecture-reactjs's Introduction

Explicit Architecture in ReactJs

Author Software License

This repository is a demo of Explicit Architecture, using ReactJs and a GraphQL API on top of the the Symfony Demo Application.

Since this is a frontend project, the code is structured in a slightly different way than a backend project, nevertheless, the guiding principles are the same.

For a example of the code structure in a backend project, you can check my repository Explicit Architecture in PHP.

There may be code in this project that is not used and therefore it would be removed in a real project, nevertheless it was included here as examples.

Explicit Architecture

I explained Explicit Architecture in one of my blog posts, as a result of my understanding of several architectural ideas such as (but not limited to) EBI Architecture, DDD, Ports & Adapters Architecture, Onion Architecture and Clean Architecture.

Please, not that the term "component" in the following slides are not the same as a "react component". They refer to a more generic concept of a domain wise module, which in the context of this project is a Page.

Explicit Architecture

Package by component

Package by component

Dependencies directions

Dependencies

Folder structure

  • bin (application binaries, however the dependencies binaries should go in vendor/bin)
  • build (The compiled/built application)
  • config (all the config needed to run the application)
  • docs (application documentation)
  • lib (libraries used by the application, which are independent from, but owned by, this project and not yet distributable)
    • reactjs-extension (code to be used as if it was part of the language itself)
      • src
  • public (the entry point to the application)
  • src
    • Core (the application core)
      • Page (the application pages with their components that are not reusable in other pages)
      • SharedKernel (components that are used in several pages)
    • Infrastructure (the port & adapters for the infrastructure tools, designed as wrappers because of language limitations)
  • translations
  • var (volatile artifacts like logs, cache, temporary test databases, generated code, ...)
  • node_modules (distributable libraries)

explicit-architecture-reactjs's People

Contributors

hgraca avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.