Code Monkey home page Code Monkey logo

Comments (3)

AGS- avatar AGS- commented on May 4, 2024

@joefraley, I'm personally curious, is their any particular reason why these sort of imports are considered bad practice?

from swapi-graphql.

ariesshrimp avatar ariesshrimp commented on May 4, 2024

@AGS- basically its an open question how they should work or what to expect from them. but it does look like the thunk method of calling code used in this SWAPI example's resolvers circumvents the issue.

for concerns, see:
http://eloquentjavascript.net/10_modules.html#h_E/zWqBFdy8
https://stackoverflow.com/questions/30378226/circular-imports-with-webpack-returning-empty-object#answer-30390378

but interesting discussion here: https://medium.com/content-uneditable/circular-dependencies-in-javascript-a-k-a-coding-is-not-a-rock-paper-scissors-game-9c2a9eccd4bc#354f

from swapi-graphql.

asiandrummer avatar asiandrummer commented on May 4, 2024

@joefraley - I personally have no strong opinion on the matter. I've seen many coding patterns with circular dependencies that had a negative impact on the code/library quality, and formed a generally negative opinion towards it, but I agree with you that it should be more about what the intention of having a circular dependency is.

I think the medium article that you included explains the case with swapi-graphql very well. We could definitely include all types into one file and remove the need for the circular dependency, but I believe that having different files for each type, although with the circular dependency, allows for a better readability/understanding of each type.

Just fwiw, This block suggests that the need for requiring these modules is to construct the connection types.

from swapi-graphql.

Related Issues (20)

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.