Coder Social home page Coder Social logo

Comments (11)

anishkny avatar anishkny commented on April 28, 2024 2

Lol yeah, Conduit's original frontend spec never planned for having to elegantly nav for thousands of blog posts :)

😃 i think that's what they call a "good problem to have"?

Alternately, you could specify something akin to an "extra credit" section in the API. So like various implementations can optionally choose to implement the extra credit stuff e.g. shorter pagination lists etc - but its perfectly acceptable if they don't.

But if it makes things too complicated and dilutes the message, then not worth it.

from realworld.

EricSimons avatar EricSimons commented on April 28, 2024 1

Additional thought: if/when we release a new spec, we should follow semver for this repo. That would allow "old" implementations to continue pointing at the old specs/API docs.

from realworld.

apai4 avatar apai4 commented on April 28, 2024 1

@EricSimons Yeah I think that makes sense. I don't think it's worth applying a change to all the codebases since this isn't something they'll run into often if they're running the entire stack locally.

from realworld.

EricSimons avatar EricSimons commented on April 28, 2024

Lol yeah, Conduit's original frontend spec never planned for having to elegantly nav for thousands of blog posts :)

At this point it would be difficult to implement this across all the frontends — maybe we should have the public API only list a max of 20 pages of blogs? Obviously this is a bit hacky, but I don't think that it's worth adding scope onto any of the frontends for this specifically (esp because scope of frontends is already quite large)

from realworld.

EricSimons avatar EricSimons commented on April 28, 2024

But if it makes things too complicated and dilutes the message, then not worth it.

Totally, totally agree with your sentiments here. And I love the idea of having "extra credit" specs!

from realworld.

jamesbrewerdev avatar jamesbrewerdev commented on April 28, 2024

I think this is a symptom of a larger problem. How do we decide what should be part of every realworld implementation?

When new things come up that should be in every implementation, how do we get that done?

It's a lot of work, but this is worth thinking about now. Otherwise we will have to think about it when there are 20+ implementations, instead of the ~10 there are now.

from realworld.

EricSimons avatar EricSimons commented on April 28, 2024

How do we decide what should be part of every realworld implementation?

Very carefully, on a case by case basis. @apai4 and I spent a lot of time (and iterations) creating the 1.0 spec and it has reliably stood the test of time against the 6 major frontend & backend frameworks. So right now we know that 1. the spec works (generally speaking) and 2. there are some warts that we need to deal with.

By default, we should seek solutions that avoid updating the spec unless it's blatantly obvious that the spec itself needs to be changed. Why? Because the cost associated with changing the spec is enormous; all frontend and backend implementations would have to be updated by hand. This is simply the nature of large software projects and those upgrade costs will not change, no matter what we do. And that's why @apai4 and I spent a considerable amount of time writing the spec, and the first implementations of it, ourselves :)

from realworld.

jamesbrewerdev avatar jamesbrewerdev commented on April 28, 2024

We're on the same page as far as implementation costs are concerned.

What I'm getting at is that the implementation cost should be considered separately from whether a feature is desirable. Implementation cost is better used to dictate priorities after a yes/no decision has been made for a specific feature.

Example:

Should the pagination list be shortened?

Does shortening the pagination list add value to the Realworld project? We all know that looks matter and that shorter pagination looks better. From a UX standpoint it's a solid yes. But do we want to optimize for UX? I don't know the answer to that.

From another perspective, I think this is a good thing for developers to know how to do. In particular, the algorithm for deciding which pages to show is non-trivial. It's not insanely difficult, but it's not a basic CRUD feature either. Does this learning opportunity add value or (as @anishkny mentioned) would it just distract from the overall point of Realworld?

What is the cost of adding this feature to each Realworld implementation?

If shortening the pagination list for every implementation is worthwhile (and it very well may not be), what is the cost of making this happen? It's definitely a lot of work. But how does the value of this work compare to the value of other work we could be doing?


The key thing to take away here is that the cost question is (in my opinion) irrelevant until the value question is answered.

TL;DR Does shortening the pagination list add value to the Realworld project? Discussion is always welcome, but we should come away with a binary Yes/No answer. If yes, then we can consider resources and prioritization separately. If no, then there is no work to be done and this ticket can be closed.

from realworld.

EricSimons avatar EricSimons commented on April 28, 2024

Got it. Maybe this will help:

The key value of RealWorld is the ability to pop open a brand new codebase you've never seen before, explore it, and walk away with a high level understanding of how it works within 10 minutes.

Any time we add to the spec we risk increasing every codebase's complexity, and thus risk failing on our 10 minute promise. And that's why we need to discuss every spec change very carefully, on a case by case basis.

(PS - lets take further discussion related to how we change specs into gitter.com/realworld/main as we're currently a bit off topic for this issue :)

from realworld.

EricSimons avatar EricSimons commented on April 28, 2024

Looping back to the main topic here, @apai4 what do you think? Think hiding pagination on prod is a reasonable solution here for the time being?

from realworld.

EricSimons avatar EricSimons commented on April 28, 2024

This is now running in prod 👍

from realworld.

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.