4 ms·
My biggest annoyance is that the Go language is full of implicit conventions/behaviors: - interface implementation is implicit - "export" is based on the f
by linkdd 5y ago
My biggest annoyance is that the Go language is full of implicit conventions/behaviors:
- interface implementation is implicit
- "export" is based on the function/type/member name (first letter uppercase)
- private functions/types/members are private within a package not a single file
- ...
This is painful because when you read a single file, you need to know about the rest of the code. This makes it very hard to get started with a new codebase, especially a huge codebase.
The other annoyances I have are just petty, like "if err != nil", zero-values, or the fact that VS Code still does not support Go projects in subdirectories (I like to open my whole "devel" folder).
- yzmtf2008 5y ago> interface implementation is implicit Fun fact: this is true for python too! https://stackoverflow.com/questions/40764347/python-subclasscheck-subclasshook https://stackoverflow.com/questions/40764347/python-subclass...
- iljya 5y ago> VS Code still does not support Go projects in subdirectories This is annoying, but there is a workaround: add each folder with a go.mod file individually starting with the most nested ones first. So add each project separately, then add the root dir.
- linkdd 5y agoUnpractical for me, my "devel" folder is organized as follow: |-+ orga (github, gitlab, other) | |-+ domain (infra, business, research, ...) | | |-+ repo-name VS Code do not support hierarchies of projects in a workspace, so I would just have a huge list of `project-name` where project-name would be manually renamed to `orga/domain/repo-name`.