-
Notifications
You must be signed in to change notification settings - Fork 27
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Web Development Framework ADR #368
base: main
Are you sure you want to change the base?
Conversation
…ves and ask others to do the same.
…et those sections started.
|
||
### Express.js | ||
|
||
#### Pros |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One more pro - same language between backend and frontend.
- `-` Minimialist framework, so lacking in some batteries included features, leaving projects to choose other tools to add on with it. | ||
- `-` If we're abdiding by prior ADRs it would mean using Typescript, which may have some learning curve for folks coming in without that background. | ||
|
||
### Vue.js with Node.js |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The pros and cons listed here for Vue and React are nearly identical, and don't really distinguish the difference between them.
Also, within React folks have a number of web frameworks to choose from. I think the most popular nowadays are Next.js vs Remix vs the OG create-react-app. I'm probably missing a few more.
@@ -0,0 +1,130 @@ | |||
# 0006 - Preference for x as web development framework(s) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we also want to compare other aspects of webdev, such as databases (MySQL vs Postgres vs all the flavors of noNQL), APIs (REST vs GraphQL), CI/CD (Jenkins, CircleCI, etc), cloud infrastructure (AWSvs Azure vs GCP)?
Co-authored-by: Melissa Thai <[email protected]>
Co-authored-by: Melissa Thai <[email protected]>
- `+` Uses Python, which is considered easy to learn and is now frequently taught in both college and bootcamp programs. | ||
- `+` Strong community support | ||
- `+` Built-in Admin interface is useful for having a UI to interact with project database | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
suggestion: Django also has a dedicated security team, which not all frameworks have.
- `-` Different languages between backend and frontend if Javascript is needed for client interactions. | ||
- `-` May need to use additional tooling for asynchronous workload use cases (message queues and workers). | ||
- `-` Python's dynamic typing may lead to more effort spent on unit tests. But this can be mitigated some through [type hinting](https://docs.python.org/3/library/typing.html) | ||
- `-` Since Django is highly opinionated, if you're new to it it'll seem like there's a lot of "magic" under the hood. Compared to smaller frameworks like Flask the learning curve is can be steep. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thought: I think I actually see the opinionated side of it as a pro. A new person going into flask has to figure out how to even set up the database connection properly, where everything should live to keep the main app file from becoming too large and unwieldy, and make more decisions about what tools should be used for different aspects of it. Django makes those decisions and gives you easy escape hatches in the settings to change that if you need to.
#### Microsoft Azure | ||
|
||
- **Pros**: Robust offerings in AI and ML due to Microsoft’s partnership with OpenAI, integrates with Microsoft ecosystem. | ||
- **Cons**: High learning curve, not as good customer service. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
security is also usually lacking, or at least, has been historically with Azure.
Changes proposed in this pull request: