Git Product home page Git Product logo

Comments (2)

WilliamWishart avatar WilliamWishart commented on July 1, 2024

Business logic should not be in the View Controllers or the Coordinators, it should be further down in either a business service layer or in the business domain objects.

You may see simple examples with business rules closer to the UI, but that’s more likely a symptom of the example trying to keep it simple by avoiding all the infrastructure typical of a larger app.

from coordinator-example.

jontelang avatar jontelang commented on July 1, 2024

I'm implementing a test project just to get a feel for how it works. And I'm at a page where I'd like to skip a VC in the flow similar to in the example app you had in the blog.

The example goes like

didEnterEmail:email
   if email contains "example.com"
       showCompleted
   else
       showEmailIsBlocked

But the decision to have the email blocked would be a business logic decision, thus not supposed to be in this coordinator class. So in this case what would be an appropriate way to decide on the flow? I'm leaning towards some form of "Email wrapper" model object that contains a method "isValidForRegisrationFlow", or similar but I'm not sure if it is a good idea.

Or possibly a model object specifically for the flow, that in turn contains this logic (including same logic for other steps, such as e.g. name/pwd validation/etc).

Sorry for the unsolicited questions

from coordinator-example.

Related Issues (4)

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.