Python 缺少一个类似 Spring Boot 的通用应用程序框架?

157 天前
 RockChinQ

一些个人的浅见,想听听大家的看法或者实践。

最近两年做了几个比较实用也稍微有点热度的项目,在某些组件重构了很多次之后发现:

最近浅看了一下 Spring Boot 教程之后,发现 Spring Boot 能较好地解决了上述几个问题(自动装配、MVC 分层、统一配置文件),这让新手能很轻松地构建一个架构行得通的程序,对比之下 Python 由于语法过于灵活,容易写得很乱。然后就思考一下几个问题:

第一次发帖,希望能听听其他人的见解。

2317 次点击
所在节点    Python
12 条回复
RockChinQ
157 天前
可否有这样一个框架能让 Python 新生少走弯路?使 Python 适应较大的应用开发?目前是否有这个需求呢?
yyfearth
157 天前
Spring Boot 也没有 Desktop GUI 的吧
Spring 倒是和 Django 有点类似
dayeye2006199
157 天前
django 表示 那我是干什么的?

如果 django 都嫌臃肿的话,那 sprintboot 是啥?

python 很多时候不需要 DI ,因为语言特性足够灵活,完全可以绕过去。
sordidclown
156 天前
结合我个人的体验来说,OP 的这个问题的一部分是不是能归结为 Python 缺乏像 Java 一样通用的工程化准则?但是在类型注解出现之前,鸭子类型的语言本身就不太适合做工程,所以其实最后的落点反而是用 Python 做工程的人相对较少(?),相对来说,分享这方面经验的也少,最后都需要自己摸索。但其实如果要学习如何组织,其实可以看看开源的库,或者从其他语言借鉴(狗头)。之前找这方面的时候找到了一个项目: https://pyloong.github.io/pythonic-project-guidelines/
顺带一提,如果想同时 Web 和 GUI 开发,题主可以考虑下 Flet ,现在最新版已经提供了 Webview ,大部分情况下应该够用了。
RockChinQ
156 天前
@dayeye2006199 Django 似乎可以满足部分需求,我再去了解一下。我的意思是,在构建一定规模的应用时,Python 的高灵活性是一项缺点,因为一种需求可能的实现不唯一,造成可读性较差,受程序员个人水平影响严重。如果有一个统一的框架,提供一种最佳实践抹平程序员水平间的差异就好了。我再去了解一下 Django 。
RockChinQ
156 天前
@sordidclown 对的,我和你的想法基本一致,我现在写函数参数、类成员都会习惯加上 type hints 。我去看看你给的链接。并不是要做 web 和 gui ,一开始的 po 出的框架只是想说明目前的框架都比较关注单独一个组件的功能。
flmn
156 天前
Django
roundgis
156 天前
要在大項目應用 python 。對從業人員有一定要求。
RockChinQ
156 天前
@roundgis 可以详细说一下吗?以及你自己的经历?
ZX576
150 天前
@RockChinQ

提供一种最佳实践抹平程序员水平间的差异就好了 -
ZX576
150 天前
@RockChinQ

提供一种最佳实践抹平程序员水平间的差异就好了 -> 不太可能,以 django 为例,且不说 type hints ,写接口用 def 还是 class 都无法统一起来。

纵观 V 站、知乎之类的问答,各类程序员(包括 Pythonista )愿意把 Python 代码当维护的工程来写的都很少。社区自己也摆烂,type hints 和 asyncio 出了多少年了,django 至今不充分跟进。django 的结构就是大工程应用的解法,奈何 django 自己不努力,而现在流行的 fastapi 基于 starlette 改,人家就没想做大工程,定位就是出三两个接口,爽完了事。
ZX576
150 天前
@RockChinQ

“提供一种最佳实践抹平程序员水平间的差异就好了” -> 不太可能,以 django 为例,且不说 type hints ,写接口用 def 还是 class 都无法统一起来。

纵观 V 站、知乎之类的问答,各类程序员(包括 Pythonista )愿意把 Python 代码当维护的工程来写的都很少。社区自己也摆烂,type hints 和 asyncio 出了多少年了,django 至今不充分跟进。django 的结构就是大工程应用的解法,奈何 django 自己不努力,而现在流行的 fastapi 基于 starlette 改,人家就没想做大工程,定位就是出三两个接口,爽完了事。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/998195

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX