小 心 任 何 二 次 接 手 的 代 码

1 天前
 MoeMagicMango

上周接手了个项目,老板说大部分项目都不能工作,本来是以维护的价格来处理接手这一段代码的

没想到坑比我想的还多,这是其中展示通用的一部分,大部分出于保密性就不能透露了

开篇惊喜

我滴妈欸,你说这是 Python 新手练手的代码我都信了,这是家公司的代码???

Interface 乱飞

怪不得会跑路

能跑就行的逻辑

Cookie 生成逻辑

给 User 生成 Cookie 用的,不是 用 个 JWT 会要了命吗?这么写干嘛啊

而且最草的一点,Cookie 存在 MYSQL 数据库 里面

大哥,这人一多不得打穿数据库啊(

每个请求都要往数据库请求一次,妈欸

硬编码 +++++

存心不给维护啊,写硬编码写了十几处

最后

已经在重新写这一套玩意了,真的太哈人了

8287 次点击
所在节点    程序员
107 条回复
angryfish
14 小时 3 分钟前
我觉得写得挺好的呀。
1.你看他是爬虫的,为啥有那么多 main ,因为每次爬虫变了,就复制粘贴一个新的。这种方法简单快捷,后来者还能清晰看到历次的变化。
2.简单几个文件就实现了老板的功能,肯定实现得很快,老板看到漏出欣慰的笑容。
3.经过几手了,还在他的基础上变更,证明确实好用。
总得来说,结构清晰,还有注释,这代码我得给 90 分。
www12222
14 小时前
防御型编程,小公司就得这么写,写下去位置越来越稳
ieliwb
13 小时 57 分钟前
代码写的好能当饭吃吗🙄
drwebco
13 小时 55 分钟前
没必要喷,

1.你是使用 jwt 包,人家这叫自己实现 session ,你为何认为使用别人的轮子就比自己实现产生了优越感?自己实现的性能比不上开源轮子也情有可原。

2.还有 jwt 有弊端,它是无状态的,服务端无法控制它掉线,也许他想使用这种 sission 状态能从服务端控制,也需你会说,为啥不用 redis ,或放在内存? 咋了,内存不是系统开销啊?

3.你说的每次调用都要查询一次数据库,怎么你每次打开一个页面,不都去查询一次数据库的么,顺带就把 cookie 给查了,至少不额外占用连接数据库和销毁的开销,系统额外开销也不会多大。
reseen
13 小时 53 分钟前
@cndenis 赞同
lmshl
13 小时 50 分钟前
这代码写的挺不错的啊,没看出来哪里有问题
cominghome
13 小时 43 分钟前
看着像是有一定基础的程序员跨语言写的
leeyuzhe
13 小时 43 分钟前
这才哪到哪?可读性都挺好的
Whitroom
13 小时 42 分钟前
还得是 fastapi + sqlmodel ,用框架提高了烂代码的可读性😂
qW7bo2FbzbC0
13 小时 40 分钟前
二次接手的代码就像被修了两次的电子产品,多次转院的病人一样
mwuxlcanrh
13 小时 39 分钟前
正常,要对此保有平常心。而且能不动就不要动。
chenqh
13 小时 26 分钟前
只要不是高分发,cookie 都可以存 db 的吧.至少数据库有界面,有什么问题,好查许多
scys
13 小时 15 分钟前
整个代码我硬是看不出‘大’问题。看价钱,维护就维护的态度。如果只是让这个代码跑起来,不负责其他,不难。
gesse
13 小时 12 分钟前
能说这种代码是烂代码的,可能入行没多久,或者是常年在大厂流水线打螺丝 😄
wangjiang
13 小时 11 分钟前
这个代码,我感觉还行
Marszm
13 小时 8 分钟前
这就是 AI ,gpt 。。。牢美最好以后都拿这玩意开发系统。
masterclock
13 小时 7 分钟前
看起来没啥大问题,似乎只是一个小项目,随便写写凑合一下
janpun
13 小时 3 分钟前
从不接手二手代码,因为耗费的精力是新开发的几倍,客户不会理解的
kpsanmao
13 小时 1 分钟前
@seedhk 我是之前的同事介绍的,我跟你说我都怀疑是这个同事嫌烦推给我的。
Building
12 小时 57 分钟前
感觉挺清晰明了的,有没有可能你自以为优化了半天下一任一接手也觉得你写的是垃圾呢

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

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

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

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

© 2021 V2EX