最近维护一份前人写的 PHP 代码,看的人头疼。

2018-05-20 17:53:13 +08:00
 jojojo

一个查询系统,用户查询和后台管理分两个系统,一个用 lavarel,一个用 ci 框架,当然,这些都不重要,给大家看一下大神的代码:

        $ip = real_ip();  //没有用到
	if (isset($_COOKIE['P0001'])) {   //p0001 是什么鬼?
		$arr["status"] = 1;
		$arr["dBTypeList"] = array( 
                      "0" => array("type"=> "0","databaseNtro" => "MySQL"),  //databaseNtro 是什么
		      "1" => array("type"=> "1","databaseNtro" => "Redis"),
		);
		echo json_encode($arr);
		} else {
			echo json_encode(array("status"=>0));  //前后返回 json 格式不一样
		}

当然,这些都不重要,重要的是

为什么要把这个项目给我做?

7397 次点击
所在节点    程序员
59 条回复
Actrace
2018-05-20 22:43:41 +08:00
其实我总结一下各位的意见,就是他写的代码我,,,
不想读不想读不想读,我不想知道他到底写的是什么,他算老几,我为什么要去理解他的代码,

大概应该是这样。
spark20
2018-05-20 22:48:48 +08:00
我觉得只要把变量的意思,算法,写清楚就好了吧,其他的还好说
GGGG430
2018-05-21 00:44:09 +08:00
else 看着难受
xjroot
2018-05-21 03:37:41 +08:00
直接删除,自己重写吧。 就单纯 $_COOKIE['P0001'] ,就可以搞点事情了, 返回 json 这个判断写的根本无法用。
karlxu
2018-05-21 08:58:36 +08:00
当时我也是,维护了几个月,放弃了,用 Django 重写了
nosay
2018-05-21 09:09:02 +08:00
v 站的人似乎不怎么接二次开发..
反正我接很多二次开发
这代码还有什么好吐槽的?太年轻了!
重构? v 站的很多人好像时间很多的样子...
不说了,继续搬砖了
yangqi
2018-05-21 09:13:34 +08:00
这么简单的代码有啥好吐槽的,看懂大概意思就行了,你揪着细节不放,应该先问一下你自己有没有同样的问题。
chairuosen
2018-05-21 09:35:52 +08:00
每一个王子最后都会变成恶龙
zarte
2018-05-21 09:45:54 +08:00
第一个不用了懒得去掉,第二个想不到英文,第三个英文太长缩写不知道该怎么缩,第四个返回格式是一样的。
changepll
2018-05-21 09:51:06 +08:00
质量这么高的代码,楼主有什么好抱怨的
azh7138m
2018-05-21 09:55:25 +08:00
@wly19960911 事件委托了解一下?
fcten
2018-05-21 10:00:30 +08:00
这 json 格式哪里不一致了,不是有个通用的 status 属性用来判断吗
wly19960911
2018-05-21 10:05:29 +08:00
@azh7138m 恩,想了下的确我错了,不过这个委托都快到根节点了。
RorschachZZZ
2018-05-21 10:11:35 +08:00
现在我维护古董代码。只要变量和方法命名规范点、再稍微有点业务解释。感觉已经非常满足了。。
ryuzaki113
2018-05-21 10:12:52 +08:00
不知道楼主有没有见过,“防止保存失败,for 循环保存一百次”
linxl
2018-05-21 10:22:40 +08:00
命名确实看不懂干啥的, 坑啊
broadliyn
2018-05-21 10:30:15 +08:00
有能力的人早就在开始在理旧代码思路和做重构了。没能力的人跟个怨妇一样贴一通代码到坛子里来获取认同感。

能把代码看明白整清楚也是一个能力明白吗?你自己写的代码,后边接手的人一样会喷你写的辣鸡。

很多时候你不是当事人,没有代入当时的需求场景,你根本不会知道为什么他当时会这么写。换成是你自己,估计也不会写的更好。

只要不是因为能力水平差、思路逻辑混乱写出来的代码,一般都不会是烂代码
nowgoo
2018-05-21 10:42:21 +08:00
isset($_COOKIE['P0001']) 可能是一个隐藏的调试开关。
Felldeadbird
2018-05-21 11:02:34 +08:00
接受现实是每个程序员成长必经之路。
lj3lj3
2018-05-21 11:09:06 +08:00
这样的代码风格已经不错了 看我接手的
```
$username = htmlspecialchars($_SESSION['adminname'],ENT_COMPAT ,'GB2312');//用户
$addtime = time();
if($addcode!=$originator){
exit("<script type='text/javascript'> alert('请不要刷新本页面或重复提交表单!');location.href='".$sourceurl."';</script>");
}else{
unset($_SESSION["addcode"]);
if($id!="" && $name!=""){
$que=$db->query("select * from ".$cfg_dbpre."news where id=$id");
$num=$db -> num_rows($que);
```

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

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

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

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

© 2021 V2EX