exercism / exercism/problem-specifications

Exercise Idea: Bob and Friends

Offen
#1,585 5 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
new exercise idea
Vorherrschende Sprache
Ruby
Sterne
358
Forks
563
Ø Merge
18 Std. 41 Min.
Gemergte PRs (30 T.)
2

Beschreibung

Hey, so I am thinking of a new exercise. It is inspired by `bob`, but it might be better if it is just called `reply`.

Basically, I am a big proponent of decoupling the logic for classifying messages to Bob from the reply logic. Typically this results in using some sort of `Algebraic Data Type` or enum variants.

An example of my over-engineered solution in Haskell can be found [here](https://exercism.io/tracks/haskell/exercises/bob/solutions/d4d6df4c32124373a5ed5ce8e7b06233).

The benefit, as I see it, is that there is clear separation of logic and responsibilities. A wonderful side effect of that is how easy it becomes to implement reply functions for people other than Bob.

Across paradigms there are many ways that this can be handled. In rust for instance one could use a `Reply` trait that takes a `&str` and returns a `&str`, but it can use an `enum` named `Locution` or `MsgClass` to do the work that isn't related to the struct `Bob` or `Carol` or `John`.

In OOP languages people could use class composition or use interfaces.

Anyway, I made this issue, so I could guage community enthusiasm for this exercise idea.
I think it is still worth it to have the `bob` exercise (sort of like how the `resistor-color` exercises keep uping their game at each step).

It seems to me like most students experience `bob` as an annoying burden. I didn't realize how much I liked the exercise, until I realized there was a massive opportunity to decouple that logic of message classification from response generation thereby making well-compartmentalized code that was general enough to make new `responders` trivial to write.

Okay, I am always too verbose :/ Please let me know your thoughts about this. If there seems to be some excitement for this proposal, then I will make a PR for this new exercise ;)

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.