xweb: 后端开发应该是简洁的, 禅意的

2017-03-09 18:12:32 +08:00
 prasanta

简介

众所周知, 如今的后端开发主要是负责接口的开发, 而前后端分离又是当下最流行的. 如果使用 python 技术栈, 通常情况下我们会选择 flask 全套,django,或者 tornado. 他们的模板引擎, session 功能在当下的后端开发中是基本不用的. 同时由于它们开始的时候是基于 python2 写的, 造成了现在代码中充斥着大量丑陋的兼容性代码. 再次, 它们依赖的许多第三方库也包含了许多为 python2 写的代码, 这样造成了恶性循环, 学习它们的源码必须要学习 python2 中一些被淘汰的东西, 而我们可能只是想看看其中某些功能的逻辑而已. 因此, 我用极少的代码实现了一个极简的 web 框架 xweb.(项目地址:https://github.com/gaojiuli/xweb)

理由

xweb 摒弃了一切为了 python2 而写的代码, 因此代码量特别少, 看过 xweb 源码的人都知道, 它的逻辑非常清晰, 代码也是很容易理解的.

xweb 不包含任何第三方库, 这让大家的学习成本进一步降低. 因为吸收了 flask, bottle, sanic 等框架中的一些优点, 我精简了 xweb 的 api, 使得上手轻松, 学习成本极低.

xweb 是基于 wsgi 写的, 因此所有适合 flask 的部署方法, xweb 也都支持.

使用 xweb 写出的接口代码, 别人很容易理解, 别人也能很容易参与进开发.

怎么用

v2ex 帖子: xweb: 一款无依赖的 Python web 框架(低于 500 行代码)

(项目地址:https://github.com/gaojiuli/xweb)

xweb 的 README 就是全部文档了, 短短一页就表述清楚了所有 api.

目的

让 web 开发的学习成本降到最低, 不管是开发也好, 源码学习也好, xweb 都是非常推荐使用的.

xweb(web 框架) + xorm(ORM 库,未写) + xparser(数据验证库,未写).构成一个完整体系, 它们共同特点是源码简洁, api 精简, 摒弃 python2. 这个体系会使得后端接口开发更加容易, 接口代码也更加优雅. 如果有朋友对我的想法有兴趣, 可以一起参与进来.

The Zen

Beautiful is better than ugly.

Explicit is better than implicit.

Simple is better than complex.

2602 次点击
所在节点    Python
12 条回复
taowen
2017-03-09 19:17:47 +08:00
支持一下
prasanta
2017-03-09 20:14:56 +08:00
@taowen 多谢
MemoryCorner
2017-03-09 20:55:12 +08:00
支持!
loading
2017-03-09 20:56:05 +08:00
已 unstart
kindjeff
2017-03-09 20:57:25 +08:00
@loading 😀
PythonAnswer
2017-03-09 21:11:55 +08:00
一直用 bottle 干这样的事情,你得超越它啊。
prasanta
2017-03-09 21:27:44 +08:00
@PythonAnswer 谢谢你的支持。
Kilerd
2017-03-09 21:49:58 +08:00
我觉得更像一个原型产品。 毫无新意。
junnplus
2017-03-09 21:52:26 +08:00
@Kilerd +1
realwangyibo
2017-03-09 22:34:26 +08:00
已支持
liantian
2017-03-10 12:50:21 +08:00
作为一个业余 python ,随便说说。

web.py bottle django flask 一路用来,有 7 年了,都是写工作无关的 app ,非生产,现在只用 django 和 flask 。

django 就不说了,概括就是一应俱全。

flask 对比 web.py 和 bottle 的优势很大来自于无数方便的第三方扩展,我想用 orm 只需要 pip 个 flask-sqlalchemy ,想用管理后台只要 pip 个 flask-admin 。

扩展性好,扩展资源丰富,尽可不需要自己造轮子,这才是 flask 成功的原因吧。


一个太简洁的框架,也意味着使用过程中需要自己造太多的轮子,这感觉很不 python ,用业余的角度,感觉很难成功.....
prasanta
2017-03-10 13:18:41 +08:00
@liantian 我这样是为了低耦合, 后续我会实现 orm 与 validator 功能.
由于它们之间是互相独立的, 因此可以随意用到其他地方.
分开开发不同库的好处你应该可以理解吧 ?

以后使用 xweb + xorm +xdata 能够快速实现开发.
而单独的 xweb 只负责 request 的接收,以及 response 的返回.

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

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

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

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

© 2021 V2EX