Giter Site home page Giter Site logo

linked list naming about ruby HOT 8 CLOSED

exercism avatar exercism commented on July 24, 2024
linked list naming

from ruby.

Comments (8)

markijbema avatar markijbema commented on July 24, 2024

The exercise also refers to another exercise in the readme, simple-linked-list, but that exercise actually is later, not earlier.

from ruby.

markijbema avatar markijbema commented on July 24, 2024

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.

markijbema avatar markijbema commented on July 24, 2024

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.

kytrinyx avatar kytrinyx commented on July 24, 2024

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.

markijbema avatar markijbema commented on July 24, 2024

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.

kytrinyx avatar kytrinyx commented on July 24, 2024

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.

kotp avatar kotp commented on July 24, 2024

bump. Just to find out if this needs to still be open.

from ruby.

kytrinyx avatar kytrinyx commented on July 24, 2024

This was fixed. Thanks.

from ruby.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.