Dear All DevLakers, I hope this email finds each of you in good health and spirits.
As some of you may recall, when we made the transition from JavaScript to Golang, many of us found ourselves grappling with the complexities of the Gorm package. In those early days, we resorted to using datatypes.JSON and json.RawMessage to handle complex fields which requires manual conversion back and forth, but I believe it's time for a change. Now that our understanding of Golang and Gorm has improved significantly, I propose a series of refactors to address this situation.
To demonstrate the potential benefits of this refactor, I have prepared a Proof of Concept (PoC) which you can find in this GitHub pull request: https://github.com/apache/incubator-devlake/pull/5779. I would greatly appreciate your thoughts and feedback on this initiative.
Let's admit it; the current approach feels quite inelegant. By revising our usage of Gorm and adopting a more streamlined approach, we can enhance the readability and maintainability of our codebase.
Please take some time to review the changes and share your valuable insights. Your feedback will play a crucial role in shaping the final implementation and making it a success.
Looking forward to hearing from each one of you. Best regards, Klesh Wong
