接手了一个天使轮的烂项目,头疼..一坨代码,都不知道怎么下手, 目前情况是,项目用 flask 写的,管理后台也没有前后分离,用的 jinja2 模板。API 支撑着小程序和 APP,而且 API 和后台都在一个项目里面,后台和 API 的代码耦合太大。现在后台一直在频繁更新,API 没改动也得跟着跑测试,一发布 API 也得停。
不行就推翻重来了,反正人多。 我想知道现在业界流行的做法是什么样的,一开始这种项目要如何设计? 大伙给点思路。
接手了一个天使轮的烂项目,头疼..一坨代码,都不知道怎么下手, 目前情况是,项目用 flask 写的,管理后台也没有前后分离,用的 jinja2 模板。API 支撑着小程序和 APP,而且 API 和后台都在一个项目里面,后台和 API 的代码耦合太大。现在后台一直在频繁更新,API 没改动也得跟着跑测试,一发布 API 也得停。
不行就推翻重来了,反正人多。 我想知道现在业界流行的做法是什么样的,一开始这种项目要如何设计? 大伙给点思路。
1
zohuchneg OP 一直干着传统开发,对互联网这些产品要如何设计,经验太少。
|
2
lsido Jan 11, 2019 via iPhone
看什么项目吧,项目小没必要
不过我一般都是分开的 |
3
limbo0 Jan 11, 2019 via Android
这就是前人的坑,不行重新开呗
|
5
Muninn Jan 12, 2019
竟然有测试……
那现在烂还是将来更烂还两说呢 |
6
pathbox Jan 12, 2019 via iPhone
看你的情况,分开是最好的吧
|
7
simple2025 Jan 12, 2019 via Android
分成两个分支不就好了吗
|
8
iyangyuan Jan 12, 2019 via iPhone
做成微服务一步到位
|
10
luozic Jan 12, 2019
|
11
dengtongcai Jan 12, 2019 via iPhone
小项目不用,后面有需要再拆
|
12
msg7086 Jan 12, 2019
天使完了以后如果之前的东西实在太烂就重来呗。重点是合理评估代码的质量。
|
13
Vegetable Jan 12, 2019 via Android
这个问题其实很简单,把入口文件复制一份端口,单独作为后台,nginx 配置调一下。
这样测试一起测,改后台逻辑不用动线上 API |
14
nicevar Jan 12, 2019
需要分开的,我的个人项目都分开,你这这样搅在一起改后台能把 api 部分搞挂了,如果 api 部分访问激增服务器扛不住,后台也跟着无法使用。
model 层抽出来作为有个模块就行了,api 跟后台有差异的,后台基本上没有太多的性能要求,同样的数据库操作,后台用一些封装的 orm 库之类的就行了,但是 api 部分可能需要进行优化处理。 |
15
gowk Jan 12, 2019 via Android
建议用 Go 重写之
|
16
motai Jan 12, 2019 via iPhone
必须拆,被这种坑好几次了
|
17
zohuchneg OP @nicevar 现在很多业务逻辑都写在了 model。 按你的意思,把 model 抽出来,业务封装到各自的 service 层。model 只作为一个基础而已。
|
19
avenger Jan 12, 2019 via iPhone
后台数据也改成 api 调用不就行了?统一接口
|
20
loading Jan 12, 2019 via Android
起码 api 的 url 规划要分开。
|
21
nicevar Jan 12, 2019
@zohuchneg 业务逻辑写在 model 也没什么,mvc 的框架很多都这么写,你的情形如果能把 model 细化一下,能用于 api 独立出来的话可以考虑一下,如果太复杂工作量大真的不如重写 api 模块了,毕竟 python 代码写起来快,其实这种情况个人觉得可以学习 java 的那一套,弄个 Dao 层出来,前期写起来可能比较啰嗦,但是后期维护比较爽
|
22
thet Jan 12, 2019 via Android
model 可以共用吧,把前后台入口区分下
|
23
KgM4gLtF0shViDH3 Jan 12, 2019 via iPhone
小公司用 py 写的项目 99.99%的可能性是烂代码
|