最近维护一份前人写的 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 格式不一样
		}

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

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

7388 次点击
所在节点    程序员
59 条回复
conwey
2018-05-20 18:16:19 +08:00
哈哈,你现在写的后面来的人也会这样说。
phpcxy
2018-05-20 18:18:19 +08:00
因为要服从上级安排
Seth8277
2018-05-20 18:40:28 +08:00
看着你直接复制过来的代码也是头疼
FrankAdler
2018-05-20 19:02:44 +08:00
这点小问题还好意思说, 你维护过十几年的 php 项目吗, 一个文件几万行见过吗, 一个方法上千行见过吗
des
2018-05-20 19:10:48 +08:00
不知道楼主见过,"保证执行顺序用 settimeout,保存操作放在 getxxx 里面" 这样的代码没有
jojojo
2018-05-20 19:42:23 +08:00
@FrankAdler 一个方法上千行还真见过
@conwey 至少我不会不写 readme,也不会把各种路径全部写死在代码里,也不会写一堆看不懂意思的变量
@des 这种比较吊的就没见过了
allgy
2018-05-20 19:44:48 +08:00
这就是我转 python 的原因
fhefh
2018-05-20 20:13:14 +08:00
当初跟楼主一样
现已麻木 只管写 业务能跑即可 没人会看你的代码的
除非你有时间重构~
zjsxwc
2018-05-20 20:32:52 +08:00
差不多
Nick66
2018-05-20 20:33:38 +08:00
哈哈
forestyuan
2018-05-20 20:37:26 +08:00
维护别人的代码肯定好多坑啊
h1367500190
2018-05-20 21:04:32 +08:00
@des 这个牛逼


@jojojo 以后你会见过更坑的
wly19960911
2018-05-20 21:12:09 +08:00
@des settimeout 我用过,为了保证是最后触发,问题我也很无奈啊,前端 ui 框架没有分离,需要实现的功能是动态添加,修改了 Dom 结构导致事件不能直接绑定,加上 ui 框架初始化没有接口,只能用 settimeout 去最后执行事件绑定。
coolesting
2018-05-20 21:28:42 +08:00
我维护过一个项目,不用 <a> 来跳转页面的, 而是无限的 js 弹出窗口(新的页面)。
fulvaz
2018-05-20 21:37:42 +08:00
正在维护的 ts 项目.

前人一个函数可以 return 出多种不同的类型, 一个函数根据传入参数的不同可以做很多事情

全是 initValue 和 pickItem, 至于返回了什么只有他知道.

开发环境崩了

后端 api 文档不更新了

不遵守 tslint

完全把 ts 当 js 写了, 对象没任何 type 定义

把 redux 的 store 当 obj 用, 如 store.a = xxx

全是复制粘贴.

诡异的实现方法

全世界在催我

--------------------------

TM 这么恶劣的条件我竟然一个个猜到了这坨东西写了啥!

然后一个个重构命名!
jojojo
2018-05-20 21:42:46 +08:00
@allgy 跟语言没关系吧,更多的是一个人职业素养的问题,当然,可能我是运维开发的关系吧,我遇见的 php 只有几个水平不错的,大部分都很垃圾
@forestyuan 维护这种代码很容易影响心情
fulvaz
2018-05-20 21:44:05 +08:00
@des 来个刺激的

实现这么一个需求

父组件点击打开按钮时, 子组件会执行对应的动作, 然后子组件动作执行结束后, 父组件再执行其他动作.

然后出现了这样的写法

将父组件的 open 属性传给子组件作为 input

然后父组件点了打开, 就会出现这么一个执行顺序的东西...

父.open = true -> 子的 onChange 生命周期函数判断自己的 open 为 true, 做自己的事情 -> 父的定时器 100 触发, 执行自己的动作.

这还是个用了全局状态的项目.
iRiven
2018-05-20 22:16:31 +08:00
这代码真心没啥好吐槽的
mahone3297
2018-05-20 22:31:47 +08:00
@fulvaz 》 TM 这么恶劣的条件我竟然一个个猜到了这坨东西写了啥!
看来写的还可以。。。别人还是看得懂的,哈哈哈
Linxing
2018-05-20 22:36:08 +08:00
逼着你重构一个

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

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

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

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

© 2021 V2EX