-
-
Notifications
You must be signed in to change notification settings - Fork 653
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[V3] Concepts List #1390
Comments
Above is a list of Concepts I have started in the early discussions around I would like to use this Issue as a discussion. Everything on this list is to be questioned! I suggest we edit the list above as we go and then create a PR to update the changes to the repository. My approach for this list was looking through the 3 links mentioned at the bottom and see what features/concepts Go has. Another approach would be to look at an exercise and break down which concepts are needed to solve it. Yet another approach would be to look at other tracks (e.g. C#, JavaScript) and see what concepts they use and whether that applies to Go. For example we do not have the concept of |
This is an awesome start @tehsphinx, thanks for pulling this together! I'd like to propose extending this to an ADVANCED And also, do we think that adding concrete examples of golang projects would be good? A section called |
Of course these would be purely OPTIONAL topics ^^ |
@sebito91 Thanks! I added the Also added 2 more that came to mind: About |
I'm also wondering What do you all think about this? (of course we will need to focus on the core concepts first...) |
Some thoughts, not sure if they are separate topics or should be part of others:
|
I'm generally wondering if we should go into the tooling of Go as well. I'd say we can open a section on this for now. Anyone interested in adding that section? (if you can't edit the description above, just create the section in a comment and I'll ad it) |
Yes, could be part of a concept exercise teaching e.g. In my head I'm currently making a distinction between this document listing all the |
I'm not yet sure where to put this. |
Note: I added |
Added |
Just added a bunch of concepts: |
What about constants and type aliases? |
Added Constants. Not sure about type aliases because of this:
Not sure we should teach them specifically. What do you think? |
Yeah, probably best to leave them untouched for now. |
This looks great. I'm wondering if it's worth adding a specific exercise around context.Context as it gets used a lot in web work and can lead to some interesting failures 😄? |
Some other:
|
Some that came to mind:
|
I see that in
You mean: how to structure code? package, folders, files, etc? |
An interesting detail we could have in a |
Very good comments here! Keep them coming! 😁 |
Yeah, maybe we could introduce it as a DYK when working with maps and structs or something like that. |
We could also add:
|
I added it, although I think that is more a good use case for an exercise rather than a concept. It definitely is borderline... |
Started with a |
Should be noted that pointers, and maps are dealt with in the current Not sure if I'm telling a dog how to bark here, but if you |
👍 for
|
To give a better overview of what's already implemented etc there is a roadmap document now and a new issue for discussions: #1886 |
Source to compare once this list gets edited: https://github.com/exercism/v3/blob/master/languages/go/reference/README.md
Go
This is a list of concepts of Go. They are categorized into
OOP
,Functional
andGeneral
. TheSpecialties
category tries to mention concepts that are somewhat special to Go. A concept can belong to multiple categories.Specialties
Concepts that are special to Go or have key differences to a vast majority of other languages.
General concepts
Object-oriented Concepts
Functional Concepts
Advanced
go generate
)Patterns
Concurrency
confinement
(guard
pattern ?)fan-in
,fan-out
Types
Types are not really concepts but it might be helpful to have as list of types Go has as some might need an extra introduction. Some are already added as a concept above, e.g.
channels
,interfaces
, etc. as there are special concepts around some of Go's types.uint
types,int
types,float
types,complex
types,byte
andrune
)Tooling
Resources used
The text was updated successfully, but these errors were encountered: