News for hackers. Stuff that matters.
Re:Flask 1.0 Released by mixmastamyk on Thursday April 26, 2018 @10:20PM (#16937995)
Decorators improve dev speed. No need to be constantly switching back and forth between views and urls.py.

Still, sometimes nice to see all in one place.

Re:Flask 1.0 Released by scaryclam on Friday April 27, 2018 @03:13AM (#16938981)
They only improve speed from an initial "get it working" point of view. That's part of the reason flask is rarely taken seriously as a production solution. Not having natural separation between views and urls is a real PITA for anyone trying to create a long term solution or larger project. For what it's worth, I also hate the argument that bad design increases Dev speed. That's only true until you need find something later, then you have to hunt around instead of having one place to look, wiping out any initial gains. It's false economy.
Re:Flask 1.0 Released by aregsarkissian on Friday April 27, 2018 @11:21AM (#16941427)
FYI with flask you don't have to use decorators for routing. You have the option to define all your routs in a single file.
Re:Flask 1.0 Released by mixmastamyk on Friday April 27, 2018 @11:34AM (#16941551)
True in a very large project, false on the rest. Congrats on your one-true-way argument. ;)
Re:Flask 1.0 Released by weberc2 on Friday April 27, 2018 @12:36PM (#16942124)
I'm a professional Python dev, I have no reason to believe that decorators save any time for any size of project. They're harder to reason about for developers of all experience levels and their is no obvious advantage--some argue that the syntax is more pleasant, but I don't perceive an increase in readability; certainly not one that makes up for the increased cognitive burden. The following is super straightforward, testable, and it doesn't depend on globals for shared resources or request state:

    def hello_handler(r: Request) -> Response:
        return Response.ok("Hello!")

    def goodbye_handler(r: Request) -> Response:
        return Response.ok("Goodbye!")

    if __name__ == "__main__":
        router = Router("/")
        router.register_route("/hello/", "GET", hello_handler)
        router.register_route("/goodbye/", "GET", goodbye_handler)
Re:Flask 1.0 Released by mixmastamyk on Friday April 27, 2018 @03:03PM (#16943367)
I was thinking more of the fact the are paired with the view. To be honest never gave the fact they are decorators much thought.