I wrote this post to reflect on how Gofakeit started, what I’ve learned maintaining it over the years, and why Go made that process easier than other stacks I've worked with. I also share some thoughts on the open source community and what’s coming next for the project and API.
Happy to answer any questions about the project or the process.
Its not much but I have had success with a random data generator package for golang called https://github.com/brianvoe/gofakeit. Its not live changing but hopefully it helps out enough developers.
To be clear, I don't think anything should be pulled out. Likely needs a lot of re-working and thought given to clean up the dependency graph such that you have primarily abstract interfaces across logical boundaries.
Edit: Here's an example, anything along the lines of "clean domain-driven design" will hopefully be enlightening.
Thanks for the reply. Do you feel this way too if external repos need this data as well? I advocated for the use of interfaces for these external packages to keep them self contained an not reliant on an external structs package for a few simple fields.
Absolutely, having very focused packages helps from an external consumer perspective as well.
Interfaces can help if you have multiple things that all implement the same functionality or you need to mock out for testing, but often times people will create interface bloat for things that are only implemented by a single struct and there’s no benefit to testing.
I have maintained an open source project for many years now called Gofakeit. Not too long ago I released a website for it so that everyone else can use it. I really dont know where I am going with it but it's one of those things that I personally use and right now thats enough for me.
Happy to answer any questions about the project or the process.