V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
a132811
V2EX  ›  程序员

Web 网站的选型: eggjs 和 django/aiohttp 哪个好呢

  •  
  •   a132811 ·
    ahuigo · 2019-03-10 15:36:13 +08:00 · 4507 次点击
    这是一个创建于 2091 天前的主题,其中的信息可能已经有所发展或是发生改变。

    准备做一个 web 项目,倾向的技术栈是 python3、es6+es7。暂时在 eggjs 与 django/aiohttp 之间做选择,各位有什么心得呢?

    12 条回复    2020-02-25 10:46:54 +08:00
    akatquas
        1
    akatquas  
       2019-03-10 15:37:04 +08:00 via iPhone
    差别不大,看顺手吧
    azh7138m
        2
    azh7138m  
       2019-03-10 15:40:47 +08:00 via Android
    thinkjs 也不错,简单粗暴,直接怼业务就行,类似 thinkphp
    baojiweicn2
        3
    baojiweicn2  
       2019-03-10 15:47:01 +08:00 via Android
    取决于你要做什么项目,如果是企业项目 or 大项目,推荐 django,毕竟要踩的坑都有人踩过,如果是自己玩的项目,哪个先进就用哪个
    a132811
        4
    a132811  
    OP
       2019-03-10 16:23:26 +08:00
    eggjs 是近年来非常优秀的企业级项目:
    1. 扩展性好
    2. 成熟,在阿里内部有广泛的采用,随着这几年发展,文档也建设得不错
    3. 安全性的支持也还不错
    4. 并发性也不错

    缺点:
    1. node_modules 的碎片化非常严重。npm 包的安全性问题比 pypi、gems、composer 严重了太多,质量与稳定性很难保证

    python 系的 django/aiohttp
    1. django 相当成熟的类 ruby on rails
    2. aiohttp 还不太成熟需要造很多轮子,但是并发性很好。与 django 相比,鱼和熊掌的选择
    a132811
        5
    a132811  
    OP
       2019-03-10 17:36:46 +08:00
    虽然我数据处理主要还是用的 python,不喜欢 node_modules 的碎片化, 但是最后还是选择了 eggjs
    https://eggjs.github.io/benchmark/plot/
    http://klen.github.io/py-frameworks-bench/
    zuoakang
        6
    zuoakang  
       2019-03-10 17:42:26 +08:00 via Android
    大型 django,小型 aiohttp
    jecshcier
        7
    jecshcier  
       2019-03-10 20:35:29 +08:00 via iPhone
    如果选 node,无脑推荐 nestjs
    janxin
        8
    janxin  
       2019-03-10 21:14:24 +08:00
    一个 python 一个 js,你习惯那个用哪个语言啊。。。
    alexmy
        9
    alexmy  
       2019-03-11 10:46:26 +08:00
    我选基于 egg.js 的服务端渲染框架 beidou,也是阿里出品的。
    zhennann
        10
    zhennann  
       2019-12-12 00:00:51 +08:00
    CabloyJS 是基于 eggjs 的上层全栈框架
    参考一下 CabloyJS 才知道 NodeJS 全栈可以进化到什么程度
    a132811
        11
    a132811  
    OP
       2019-12-17 14:55:34 +08:00
    @zhennann 你是 cabloyJS 的作者吧。你的文档现在打不开啊。
    先别说你的框架进化到什么程度,你这个 cabloyJs 支持这些吗:
    1. code split
    2. 类似 umi 的区块
    3. HMR 热加载
    4. typescript
    5. api mock
    6. 单元测试,如 jest
    7. 类似 umi ui 的开发平台

    前端工程进化是快,但跟后端比起来差得远呢。umi 算是眼前一亮的前端开发框架,但是还是太臃肿了,主要是 node_modules+ webpack。
    前端的基础设施还差得多呢,希望未来 rollup 能支持 HMR, deno 带领 ts 起飞
    zhennann
        12
    zhennann  
       2020-02-25 10:46:54 +08:00
    @a132811 谢回复
    1、code split:支持,而且是基于“业务模块”的分割,达到分割与组合的平衡
    2、类似 umi 的区块:CabloyJS 整个架构都是基于“业务模块”来构建的。“业务模块”是前后端一体的独立模块,可独立开发、独立编译、独立发布
    3、HMR 热加载: 前后端均支持
    4、typescript:使不使用 ts,不是构建一个高效架构的必要条件
    5/6、api mock/单元测试 :因为是全栈框架,所以 CabloyJS 提供了更便捷的测试工作流
    7、类似 umi ui 的开发平台:直接使用 vscode/sublime 就足够好了

    不妥之处,欢迎继续交流
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1818 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 16:32 · PVG 00:32 · LAX 08:32 · JFK 11:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.