首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
V2EX  ›  Python

API 和 管理后台 要分开吗?

  •  
  •   zohuchneg · 39 天前 · 2629 次点击
    这是一个创建于 39 天前的主题,其中的信息可能已经有所发展或是发生改变。

    接手了一个天使轮的烂项目,头疼..一坨代码,都不知道怎么下手, 目前情况是,项目用 flask 写的,管理后台也没有前后分离,用的 jinja2 模板。API 支撑着小程序和 APP,而且 API 和后台都在一个项目里面,后台和 API 的代码耦合太大。现在后台一直在频繁更新,API 没改动也得跟着跑测试,一发布 API 也得停。

    不行就推翻重来了,反正人多。 我想知道现在业界流行的做法是什么样的,一开始这种项目要如何设计? 大伙给点思路。

    25 回复  |  直到 2019-01-12 14:22:24 +08:00
        1
    zohuchneg   39 天前
    一直干着传统开发,对互联网这些产品要如何设计,经验太少。
        2
    lsido   39 天前 via iPhone
    看什么项目吧,项目小没必要
    不过我一般都是分开的
        3
    limbo0   39 天前 via Android
    这就是前人的坑,不行重新开呗
        4
    zohuchneg   39 天前
    @lsido 分开的话, 比如 model 层,这些会存在复用, 每个部分都要维护同样的代码?
        5
    Muninn   39 天前
    竟然有测试……

    那现在烂还是将来更烂还两说呢
        6
    pathbox   39 天前 via iPhone
    看你的情况,分开是最好的吧
        7
    chenqh   39 天前 via Android
    分成两个分支不就好了吗
        8
    iyangyuan   39 天前 via iPhone
    做成微服务一步到位
        9
    janxin   39 天前
    @zohuchneg model 层可以做个 wheel,当依赖发;也可以做成服务
        11
    dengtongcai   39 天前 via iPhone
    小项目不用,后面有需要再拆
        12
    msg7086   39 天前
    天使完了以后如果之前的东西实在太烂就重来呗。重点是合理评估代码的质量。
        13
    Vegetable   39 天前 via Android
    这个问题其实很简单,把入口文件复制一份端口,单独作为后台,nginx 配置调一下。
    这样测试一起测,改后台逻辑不用动线上 API
        14
    nicevar   39 天前
    需要分开的,我的个人项目都分开,你这这样搅在一起改后台能把 api 部分搞挂了,如果 api 部分访问激增服务器扛不住,后台也跟着无法使用。
    model 层抽出来作为有个模块就行了,api 跟后台有差异的,后台基本上没有太多的性能要求,同样的数据库操作,后台用一些封装的 orm 库之类的就行了,但是 api 部分可能需要进行优化处理。
        15
    gowk   39 天前 via Android
    建议用 Go 重写之
        16
    motai   39 天前 via iPhone
    必须拆,被这种坑好几次了
        17
    zohuchneg   39 天前
    @nicevar 现在很多业务逻辑都写在了 model。 按你的意思,把 model 抽出来,业务封装到各自的 service 层。model 只作为一个基础而已。
        18
    zohuchneg   39 天前
    @Muninn 测试都是我们接手后 加的.... 之前都是个人开发。
        19
    avenger   39 天前 via iPhone
    后台数据也改成 api 调用不就行了?统一接口
        20
    loading   39 天前 via Android
    起码 api 的 url 规划要分开。
        21
    nicevar   39 天前
    @zohuchneg 业务逻辑写在 model 也没什么,mvc 的框架很多都这么写,你的情形如果能把 model 细化一下,能用于 api 独立出来的话可以考虑一下,如果太复杂工作量大真的不如重写 api 模块了,毕竟 python 代码写起来快,其实这种情况个人觉得可以学习 java 的那一套,弄个 Dao 层出来,前期写起来可能比较啰嗦,但是后期维护比较爽
        22
    thet   39 天前 via Android
    model 可以共用吧,把前后台入口区分下
        23
    bestkayle   39 天前 via iPhone
    小公司用 py 写的项目 99.99%的可能性是烂代码
        24
    zohuchneg   39 天前
    @nicevar 谢啦,
        25
    zohuchneg   39 天前
    @thet 弱弱的问句,入口区分? 能举个例子嘛。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2523 人在线   最高记录 4385   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 17ms · UTC 13:00 · PVG 21:00 · LAX 05:00 · JFK 08:00
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1