Skip to content

feat: hold emmett#22

Open
dottiOliviero wants to merge 1 commit into
masterfrom
feat-hold-emmett
Open

feat: hold emmett#22
dottiOliviero wants to merge 1 commit into
masterfrom
feat-hold-emmett

Conversation

@dottiOliviero
Copy link
Copy Markdown
Contributor

No description provided.

Comment thread radar/casavo-tech-radar.json Outdated
"quadrant": "languages & frameworks",
"isNew": "FALSE",
"description": "Full stack web framework for Python"
"description": "Full stack web framework for Python. Used only for one svc, superseed by FastAPI"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👎🏻 fastapi

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so generally speaking, what libraries/frameworks are we considering for new python projects?

Copy link
Copy Markdown

@giorgiovilardo giorgiovilardo Oct 18, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤔 Keep in mind that I have a pretty opinionated idea (that Oli knows, and if you want to know too ping me on slack ~ no need talk about it here) so the answer to your question is not really what I deeply think is beneficial for the company, but:

I would consider those 3 after a swot analysis of some kind:

  • litestar - way more feature complete than fa, open governance instead of SPOF maintainer
  • django + DRF - we have realistico made with it, VERY featureful, super integrated with everything. needs a bit of help from pycharm professional as it abuses **kwargs and other type-absorbing signatures (but hey, python was supposed to be dynamic!)

those 2 are the probably most interesting choices. the point is to not reinvent the wheel like on zuul. the ratio businesslogic:boilerplate is out of this world in that project; FA is too stripped down to be useful for anything more than a couple of endpoints, better if without a db.

a distant third, and an interesting choice is

which promotes the best programming practices as you can use classical, generic patterns with it (controller classes with constructor-injected services wired manually at startup) instead of relying on fa magic "depends" and other crap. litestar suffers from "magic crap" too (inverting the IoC principle), but at least it's feature complete and offers more facilities to scale a project to more endpoints.

django has to be tested pretty much a la rails, integration heavy, but it has a tons of facilities so it's pretty easy and pliable too.

the choice is yours tho, and again...my real idea is another one :P

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks for the exhaustive explaination @giorgiovilardo!
I would suggest a quick sync chat on this topic, also with senior devs that usually work with python in casavo.
cc @pferretti

Copy link
Copy Markdown
Contributor

@xpepper xpepper left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dottiOliviero what about splitting the change in two, one with Emmett put on HOLD (which I think we all may agree on) and discuss on what should replace it in any future Python project in a separate PR / discussion?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants