Comments (8)
The exercise also refers to another exercise in the readme, simple-linked-list, but that exercise actually is later, not earlier.
from ruby.
Also, the tests aren't really TDD-ish. Each one requires a lot of implementation, whereas other exercises have tests which are more guiding. for instance, a first test having only one push, and one pop would allow you to create an simple first version, on which the current first test could expand.
from ruby.
I'm also deeply unsatisfied by implementing a broken list. The tests provide way less coverage than most other exercises, partly to 'keep the implementation simple'. But simple is also wrong in this case. Maybe it would be better to make this a linked list instead of a doubly linked list? This kind of code is really tricky, so maybe a simpler exercise first would be better.
from ruby.
I didn't write it and haven't solved it... which just means that I don't have a lot of context to have an opinion. From reading your comments, I'd say that if I did actually try it out I'd probably agree with you.
I'm seeing a number of suggestions here:
- Improve the README (don't reference other exercises)
- Move the simple linked list to be earlier
- Write a different simpler exercise
- Improve the test suite for the linked list (and possibly the simple linked list)
Am I missing something?
from ruby.
Yeah, sorry, it turned a bit into a rant ;) For context, here is my submission, which doesn't fail, but is (imo) horribly broken: http://exercism.io/submissions/a9e1cd4040de6720a904c28a
I'm not sure about moving the simlpe linked list. It's at the end, so it might also be that it has been discarded? Personally, I wouldn't really appreciate two linked lists exercises either. I think there should be one, and it should be simpler than this one, or if it isn't, have a better build-up in the tests.
I think the most important thing about improving the tests is having a better buildup. When doing proper TDD, the idea is that you write code for a failing tests. Since there is a lot of branches and subtleties here, you need a lot of tests to guide you through them. I think this especially true for exercism, which is used (at least, this is my impression) by a lot of people without formal CS background. Then algorithms and datastructures are the more complex exercises, and the current tests don't guide the implementation, they're really more regression tests.
from ruby.
Yeah, sorry, it turned a bit into a rant ;)
It's much appreciated!
It's at the end, so it might also be that it has been discarded?
Oh. Yeah, this is ringing a bell. I think I decided to deprecate it, but I wasn't sure if deprecating it would break things. I'll delete it.
I think you're right about the regression tests.
from ruby.
from ruby.
This was fixed. Thanks.
from ruby.
Related Issues (20)
- [tests] Microwave exercise test suite have errors. HOT 6
- 🤖 Sync error for commit 731e26 HOT 3
- Error in boutique_inventory_test.rb HOT 2
- Simple Linked List exercise confusion HOT 4
- Pre-requisite and missing hints for Simple Calculator HOT 4
- stock_for_item method in boutique Inventory challenge HOT 4
- `item_names` in Boutique Inventory challenge HOT 1
- Kindergarten Garden may be harder than defined HOT 4
- [SavingAccounts]: Suggestion: change negative interest rate tests to return positive value HOT 5
- Hacktoberfest 2022 HOT 2
- Binary Search Ruby HOT 3
- TwoBucket - possible error in test suite HOT 4
- Question about function name in "Moviegoer" exercism HOT 2
- Typo in final bird_count test where "whith" should be "with" HOT 2
- Typo in locomotive_engineer instrucions HOT 2
- Locomotive Engineer exercise relies on implicit Ruby behavior HOT 1
- the pythagorean triplet exercise has something wrong with it HOT 1
- Add analyzer for leap HOT 2
- Armstrong exercise tests confusion HOT 7
- 🤖 Sync error for commit 3312f6 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ruby.