最近接了个项目,需求很简单,对方也要求低,薪酬不错,所以就爽快的答应了
但是看到代码那一刻才明白,我他妈的是掉到坑里了
怎么说呢,我大一时候学的 php,当然开始时候是用原生 php,没觉得不妥,慢慢的做了 1 年,使用框架,才知道原生真的很难拓展,修改,现在用习惯了 laravel,symfony 这种现代框架,看到原生真的是想哭啊。
感觉是另外一种语言。
关键是这套系统全是 sql 原生查询啊,根目录全是 php 文件啊,html 全是表格嵌套啊,js 全是自己写的啊,居然还用了 git 版本控制,但是没什么鸟用,大概只是后来的接盘侠提交了不到 20 个页面,其他的估计就只有这位上古程序员知道什么是什么了,最最关键的是这位技术记性,逻辑极其牛逼,项目涉及到大量的积分,支付结算,慢慢的逻辑
我爱 php,知道很多人说 php 不好,但是我觉得没什么,因为 php 上手快,出活快,赚钱也快,但是看到这个,我真的不知道该怎么办了,活是肯定要继续的,客户比较好,按时间付费,求各位大神有没有什么办法,或者简单框架可以再原生基础上快速重构,或者改版,或者什么的容易结合使用的?
1
viko16 2017-05-06 09:37:31 +08:00 via Android 1
退订跑路!
|
2
gouchaoer 2017-05-06 09:41:19 +08:00 via Android 1
你 laravel 都能学会,单页肯定没问题
|
3
littleylv 2017-05-06 09:41:38 +08:00 1
如果这个项目原先的功能不多不复杂,直接整个项目重构好了,你后续新增功能也方便
如果之前已经非常复杂了,还是不要动,毕竟如果你对之前的功能逻辑不清楚的情况下贸然重构。。。 取舍吧 |
5
gyorou 2017-05-06 09:47:16 +08:00 1
我之前接收过的上古 php 项目,一个 http 的 request 从 socket 的绑定开始写。
|
6
kn007 2017-05-06 09:51:35 +08:00
这个只能花时间。没别的办法。很尴尬。
|
7
ChopMoun 2017-05-06 09:51:40 +08:00
你也说了改的是前端。只是比较繁琐罢了,时间上的问题,再说客户是按照时间付费,这有什么好解脱的?
|
8
NonClockworkChen 2017-05-06 09:52:42 +08:00
就是说原作者是一位 php 的上古大拿吗- -
|
9
em70 2017-05-06 09:53:58 +08:00 via Android
多花时间多收钱,有什么不好
|
10
tabris17 2017-05-06 09:54:05 +08:00
你现在需要产品说明书
|
11
laoyuan 2017-05-06 10:00:51 +08:00
捂脸,我现在写的还是这样的上古代码,各种 mysql_fetch_assoc,以及 echo 出来的 JS。。
去年想用 Laravel 重写来着,历史问题太多愣是没写下去 |
12
laoyuan 2017-05-06 10:02:20 +08:00
尴尬之处在于,代码没有完全重构之前,加功能还得继续上古
|
13
Felldeadbird 2017-05-06 10:03:14 +08:00 1
吐吐槽就好了,该怎样做还是要做。重构就免了,因为你的收入根本不足够你去重构如此项目。
如果要改善此项目。1:在新功能中引入新架构开发,同时要确保原有的函数、方法可以调用。2.修改旧功能,看开发时间而定,如果很耗时较长,直接在原架构下开发。反之参考第一点。 对于老旧项目,除非老板肯定重构,否则不要一步到位。这需要新旧架构通存过渡期。 |
14
reus 2017-05-06 10:04:08 +08:00
无能。
|
15
dsg001 2017-05-06 10:12:13 +08:00
画重点:需求很简单,对方也要求低,客户比较好,按时间付费;
那就慢慢来呗,客户又没有要求重构 |
18
iRiven 2017-05-06 10:18:45 +08:00 via Android
原生就不好吗
|
20
zjqzxc 2017-05-06 10:24:37 +08:00
不要重构,重构坑更多
慢慢改吧。。没有太好的方法 |
21
jiehuangwei 2017-05-06 10:34:13 +08:00
缝缝补补又一年
|
22
yumijie 2017-05-06 10:37:52 +08:00
@jiehuangwei 赞同
|
23
dsg001 2017-05-06 10:38:04 +08:00 1
@danhahaha 对方代码应该是经过漫长时间考验,比较稳定可靠的,如果重构能保证提高效率而且没坑吗?如果只是因为洁癖就去重构客户代码,这才是坑吧
|
24
Mutoo 2017-05-06 10:41:29 +08:00
不要重构,要重写。
|
25
QQ2171775959 2017-05-06 10:51:18 +08:00
希望您能静下心来,好好思考一下,也许就会发现并没有那么难的,抗过了这一波后,又是一个英雄好汉。
|
26
wangjie 2017-05-06 10:58:02 +08:00
我接手过最烂的代码还不过是一份基于 tp3 的代码
|
27
sagaxu 2017-05-06 11:01:38 +08:00
@gouchaoer
封装得当的代码,一个功能可能调用了 10 个业务方法,理想的情况下只要看一下十几个名字就了解个大概了,最差情况是名字不好,得一层层的人肉过一遍代码。 封装不好的代码,一个功能几千行代码全放一起,call stack 是比较浅,但是要读更多的细节代码,还很容易陷入复制粘贴的泥淖,到处长得相似却又并不完全一样的代码是很头疼的。 封装可以把实现细节和意图隔离起来,维护代码的时候,我们更多关注意图之间的串联,而非实现细节。 |
29
ferran 2017-05-06 11:07:05 +08:00
从接盘到跑路
|
30
hzw94 2017-05-06 11:09:15 +08:00
无解的代码
|
31
hellpeng 2017-05-06 11:15:46 +08:00
删除工程, 新建工程
|
32
wolfan 2017-05-06 11:23:30 +08:00
新建项目申请项目资金。
|
33
fuxkcsdn 2017-05-06 11:37:23 +08:00 via iPhone
都知道是上古项目了,还能要求啥?
之前公司里还有个项目是 PHP 4 时代写的呢。 这种上古项目修改起前端感觉反而更方便,基本上一个页面就是一个 php 文件,URL 就已经指名了 个人最无法接受的是代码格式混乱,看代码时总有格式化代码的冲动(一格式化起来就没完没了了) |
34
visonme 2017-05-06 11:40:57 +08:00
在原生 php 工程基础上用框架不可取,最近的一个项目就是类似情况,后面果断放弃了,只能坚持原生或者框架重写。
原生 php 工程如果代码结构好点,其实修改起来还是很容易的。 |
35
PythonAnswer 2017-05-06 11:44:37 +08:00
提取表格,生成 api。
|
36
isbase 2017-05-06 12:24:40 +08:00 via Android
这次放弃了,以后还会放弃的
|
37
designer 2017-05-06 12:31:20 +08:00
突然钦佩上了上古大拿
|
38
Meimei 2017-05-06 12:49:47 +08:00
我只有说钦佩,继续努力干
|
39
shijingshijing 2017-05-06 13:07:38 +08:00
|
40
liuxu 2017-05-06 13:11:14 +08:00
我公司老网站也是你说的那个样子,然后我们自己定义 mvsc 层,新需求都用 mvsc 写
拿请求返回数据由 action 操作,显示页面用 view,view 层用 smarty 做,view 里面的 ajax 接口都是 action,action 和 view 调用逻辑处理 service 层,service 遇到数据库,文件读写调用 model 还需要自己写一个公共 model 类,封装原生 mysql,然后每个模块的 model 引用这个公共 model,操作会很轻松 严格按照这个来的话,有很多代码可以直接复制粘贴修改就行,很节约时间 |
41
jarlyyn 2017-05-06 13:28:03 +08:00 1
没有说明书的话。
这种代码比基于任何一个框架的都好改。 楼主属于锤子用多了,觉得什么都应该是钉子…… |
42
8355 2017-05-06 13:34:50 +08:00
个人建议你还是把你项目情况跟客户解释清楚 问问客户是否需要重构 如果需要的话你就完全帮忙重写一个项目 直接抛弃掉这个 如果原来的数据库建的还能用就继续用 如果不行就重新洗一下数据开始你的重构吧..
如果不需要你就继续用传统开发直接写就好了啊. |
43
billlee 2017-05-06 13:35:07 +08:00 1
你这还好啊,更可怕的是自己造了个没文档的框架。。
|
44
sobigfish 2017-05-06 13:53:00 +08:00
感觉至少要把 view 整合下 不想上 framework 的话直接上 twig 吧( template 引擎) https://twig.sensiolabs.org/
|
45
paullee 2017-05-06 13:56:46 +08:00 via iPhone
h
|
46
harker 2017-05-06 14:13:51 +08:00
建议在基础上慢慢改吧,只是原生代码生疏了,看熟老古董就好了
|
47
Z1076 2017-05-06 14:56:52 +08:00
我现在就接手了一个这样的项目做二次开发,一个 php 文件,1w8 行,就问你怕不怕。
|
48
Z1076 2017-05-06 14:58:29 +08:00
用 phpstorm 修改这个文件,打开的时候笔电的风扇都跟发动机一样响。真是日了狗...
|
49
loserwn 2017-05-06 15:00:39 +08:00
说「上古」我还以为是 PHP3 PHP4 呢。。。中老年程序员(逃
|
50
aksoft 2017-05-06 15:15:41 +08:00
一分钱一分货。。一步一步调试吧。
我也这么干过,至于后来入坑者。。。 |
51
shmilypeter 2017-05-06 15:35:48 +08:00
还好吧,你没见过项目中大量用了泛型,但是到部署的时候才发现,人家服务器 jdk 还是 1.4 的,那个蛋疼啊。
|
52
Mine 2017-05-06 16:39:45 +08:00
好好做,做完你就成大牛了。
|
53
xifangczy 2017-05-06 16:41:29 +08:00
用框架习惯了而已,按时间算已经很不错了,还在抱怨啥。去改吧。。
|
54
fhefh 2017-05-06 17:21:27 +08:00
大量的积分
我想成了数学的微积分 看了半天 囧 |
55
fhefh 2017-05-06 17:23:45 +08:00
|
57
xyjtou 2017-05-06 20:54:54 +08:00 via Android
那位上古程序员难道已经仙逝?最好的办法,如果上古人士还健在!请一天的咨询费用,让人家来给你理理,回忆一下当年的设计思路,否则猜他人的思路是非常痛苦的事情,消耗的时间也更多。
|
58
Lonely 2017-05-06 21:56:38 +08:00
真是矫情
|
59
murmur 2017-05-06 21:57:44 +08:00
ecshop 还不是这个路子 连 oom 都没有一水的 sql 拼接
当年愣是魔改了 N 多新功能上去 |
60
pengbo37877 2017-05-06 22:19:42 +08:00
只要数据库在,重新写
|
61
yankbytes 2017-05-07 01:49:42 +08:00
没怎么接触过前端的知识但是感觉可以先把逻辑分离?管数据的管数据,管 UI 的管 UI。不知道 js 在项目里主要是做啥,如果是实时动态显示的话考虑下转 angular 或者 react 框架? php 部分用来和数据库交互的部分就先别动啦~遇上重构的项目真的觉得心累。。。
|
62
GoBeyond 2017-05-07 06:51:36 +08:00 via Android
如果只是想保稳就不要动这种东西
|
63
johnny23 2017-05-07 08:55:52 +08:00 via iPhone
就是说 删除一个注释系统就跑不起来系列嘛 哈哈哈哈哈
|
65
danhahaha OP 代码还全部左对齐,感觉是故意的
|
66
580a388da131 2017-05-07 11:53:10 +08:00
我的初学项目就是一大堆的 echo 定界符
|
67
huobazi 2017-05-07 20:08:06 +08:00 via iPhone
怕啥 我还维护过扩展名 php3 的……
|
68
ychongsaytc 2017-05-08 01:11:30 +08:00 via iPhone
浴火,重生。
|
69
msg7086 2017-05-08 02:50:18 +08:00
不要多想,直接开工干就是了,读代码写代码,反正按时间收费,你慌什么。
|
70
gowk 2017-05-08 11:36:40 +08:00
rewrite it
|