Skip to content
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

Implement New Concept Exercise: Stringers #2184

Closed
Tracked by #1886
andrerfcsantos opened this issue Apr 13, 2022 · 1 comment · Fixed by #2208
Closed
Tracked by #1886

Implement New Concept Exercise: Stringers #2184

andrerfcsantos opened this issue Apr 13, 2022 · 1 comment · Fixed by #2208
Assignees
Labels
x:action/create Work on something from scratch x:knowledge/intermediate Quite a bit of Exercism knowledge required x:module/concept Work on Concepts x:module/concept-exercise Work on Concept Exercises x:rep/large Large amount of reputation x:size/large Large amount of work x:status/claimed Someone is working on this issue x:type/content Work on content (e.g. exercises, concepts)

Comments

@andrerfcsantos
Copy link
Member

Getting Started

If you have not yet contributed to concept exercises before, this task requires some upfront reading to acquire the necessary background knowledge.

Here you can read about what Concept Exercises are and how they are structured:

Also, be aware of these general guidelines:

Goal

The goal here is to create a new concept exercise that teaches about structs that implement the fmt.Stringer interface.
That includes writing a concept and creating a new exercise.

Concepts

The following concept needs to be created:

  • stringers

You can use the introduction.md file of the concept also as introduction.md file of the exercise. No need to create different content at this point. Additionally, if you want to save some time it is ok to not have an extensive about.md at this point. It can also be mainly the instructions.md content, maybe with some additions you would like to make.

Learning Objectives

The student should learn about the following topics and then practice them in the concept exercise:

  • present the fmt.Stringer interface
  • implement a struct that satisfies the fmt.Stringer
  • the use of a type that satisfies fmt.Stringer with fmt.Sprintf and other methods of fmt

Prerequisites

  • strings
  • string-formatting
  • interfaces
  • methods
  • structs

These prerequisites should be listed in the config.json entry for the exercise.
The prerequisites above are a baseline of the prerequisites that might be needed for the exercise.
When implementing the exercise, feel free to add more prerequisites if the exercise needs them.

Story

Try to think of a story for the exercise that ties all the tasks together.
The story doesn't need to be highly complex.
Even a small story goes a long way to improve the enjoyment of the exercise.

Resources

Some links that might be helpful as a starting point and/or for the links section of the concept:

How to proceed

  1. First accept this issue by saying "I'd like to work on this" (no need to wait for a response, just go ahead).
  2. Use this issue to discuss any questions you have, what should be included in the content and whatnot, and to collect more reference material.
  3. Create a PR and set "exercism/go" as reviewers. Additionally, you can write in #maintaining-go on Slack that your PR is ready for review. Once you incorporated any critical feedback that the reviewer might give you and the PR is approved, it will be merged by a maintainer.
@andrerfcsantos andrerfcsantos added x:action/create Work on something from scratch x:knowledge/intermediate Quite a bit of Exercism knowledge required x:module/concept Work on Concepts x:module/concept-exercise Work on Concept Exercises x:type/content Work on content (e.g. exercises, concepts) x:size/large Large amount of work labels Apr 13, 2022
@ErikSchierboom ErikSchierboom added x:size/large Large amount of work and removed x:size/large Large amount of work labels Apr 26, 2022
@norbs57
Copy link
Contributor

norbs57 commented Apr 27, 2022

I would be happy to work on this.

@junedev junedev added x:status/claimed Someone is working on this issue x:rep/large Large amount of reputation labels Apr 27, 2022
norbs57 added a commit to norbs57/go that referenced this issue Apr 27, 2022
New Concept Stringers: exercism#2184

Also:

* Sorted the concepts in root `config.json` in lexicographic order
* Added myself as a contributor to the tree-building exercise for my contribution in [PR2151](exercism#2151)
norbs57 added a commit to norbs57/go that referenced this issue Apr 29, 2022
Fixes exercism#2184
New concept stringers
New concept exercise Meteorology
norbs57 added a commit to norbs57/go that referenced this issue Apr 29, 2022
Fixes exercism#2184
New concept stringers
New concept exercise Meteorology
norbs57 added a commit to norbs57/go that referenced this issue Apr 29, 2022
Fixes exercism#2184
New concept stringers
New concept exercise Meteorology
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
x:action/create Work on something from scratch x:knowledge/intermediate Quite a bit of Exercism knowledge required x:module/concept Work on Concepts x:module/concept-exercise Work on Concept Exercises x:rep/large Large amount of reputation x:size/large Large amount of work x:status/claimed Someone is working on this issue x:type/content Work on content (e.g. exercises, concepts)
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants