Giter Site home page Giter Site logo

Comments (3)

faustbrian avatar faustbrian commented on May 19, 2024

Another big advantage of having IoC is that will be much easier to modularise the codebase which offers greater control over the whole core. An example would be that we could split the parts like API, database, logging, etc. into modules which creates better separation of concerns and reduces the size of the installation on relays and things like raspberrys.

  • arkecosystem/core-database-sequelize
  • arkecosystem/core-public-api
  • arkecosystem/core-winston-logging

Now we could register those packages in the container like container.register('database', require(config.database.driver)) where database.driver would be @arkecosystem/core-database-sequelize.

If I wanted to use my custom driver faustbrian/custom-db-driver I would just pull in that package, set the driver to faustbrian/custom-db-driver and if I adhere to the database interface the application should just continue to work because the IoC bound the faustbrian/custom-db-driver to the container.

from core.

faustbrian avatar faustbrian commented on May 19, 2024

Also testing will be much easier & cleaner if we split all the sections of the core into modules because each module will only contain tests that are related to the module itself.

from core.

fix avatar fix commented on May 19, 2024

Well debugging IoC is always a bit of a nightmare, and my experience with Java IoC was pretty bad when i started hardcore optimisation for reading satellite images.

On blockchain, we don't have much need in making the best architected software for the backend, the reason is the tradeoff to have fast optimised way to deal with data stream.

We are not like a CRM software handling complex interactions between processes. We have a extremely simple design (blocks transactions and peers) to deal with in the most optimised way.

I may be wrong but IoC looks over engineering here

from core.

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.