DEV Community

Discussion on: Handling multiple implementations of a product

Collapse
 
jessefulton profile image
Jesse Fulton

I wouldn't consider what you described above as "multiple implementations of a product." It sounds like two separate libraries - one for logging in Java, one for logging in Node. I'd imagine they are going to have very different implementations simply based on the nature of the languages.

I honestly can't think of a good reason to have two separate code bases in one repository... here are some pros/cons for that approach off the top of my head :)

Cons:

  • contributing to the project involves much more overhead (download 2x code, manage dependencies, environment setups, build processes, etc.)
  • issue tracking becomes more complex (does it impact Java or Node or both? What do you do when you fix the Node but can't/won't fix the Java bug? Do you assign it to the Node Dev or the Java Dev?)
  • Features cannot be implemented at the exact same time. Because of this, the Node/Java implementations will most likely get out of sync and diverge
    • if you try to enforce feature parity, you'll inevitably wind up delaying the release of one while waiting for the other
    • if you don't enforce feature parity, your changelogs and release management will become inherently more complex

Pros:

  • ?