Hi there Group Members,
My identify is Emmanuel Katto. I’m at the moment engaged on a bigger utility in Go, and I wish to be sure that I construction my venture in a scalable and maintainable manner. I’ve just a few questions:
- What are greatest practices for organizing directories and recordsdata in a big Go venture? Are there particular layouts that the neighborhood recommends?
-
How do you sometimes handle dependencies and versioning in Go, particularly for a bigger codebase?
-
Are there specific patterns or architectures (like MVC, Clear Structure, and so forth.) that work nicely with Go that I ought to think about?
Any steering or shared experiences can be enormously appreciated!
Thanks prematurely,
Emmanuel Katto
- Each developer and improvement staff is not going to have the identical code fashion, and there’s no excellent greatest apply. Please be daring and take a look at. If you happen to’re actually struggling, you’ll be able to check out another person’s venture code fashion.
- I mainly think about whether or not the dependency library is dependable or not, and if it isn’t for efficiency flaws and safety vulnerabilities, in any other case I cannot improve the at the moment referenced dependency. And if one thing goes improper, I’ll look by way of the supply code myself to search out the trigger.
- Assume when it comes to the course of the venture, not the structure that determines the venture. Architectural feasibility is just thought of when the course of the venture requires this structure.
Most individuals who ask this type of query are mainly battling whether or not to take a detour earlier than they begin writing code. Undertaking refactoring is a traditional factor, and you may achieve so much from every refactoring.
I believe the basis of a venture is the enterprise, and even when the code is unhealthy, it’s significantly better to finish the enterprise necessities than to don’t have any code and might’t get the enterprise performed.
1 Like
I’m utilizing “micro providers” for remoted duties. This breaks up a monolith utility into small providers that may be known as when wanted and make the principle app cleaner.
For an instance servers for REST API, Auth, DB setup and improve, NATS (pub/sub) and Cron.