[不懂就问] PHP 的开发效率具体快在哪里?

查看 416|回复 29
dilu   
@belin520 #17 说的也是一个优点,改完代码保存至今就能看结果,强类型语言还得编译一下,即使是 go 这种编译速度很快的语言,当项目变复杂/变大之后,编译也很慢。并且有时候如果有人引用了一个奇怪的包,例如只能在 linux 下用,mac 和 win 不能用的包,你就直接编译不了了,但是 php 不会有这个问题。
javalaw2010   
举两个 demo ,管中窥豹:
1. 返回一个 json 响应,一行代码:
```php
echo json_encode(['code' => 0, 'msg' => 'success', 'data' => ['user_id' => 1, 'nickname' => 'foo']]);
```
2. 如果你有一个 map ,你想翻转它的 key-value:
```php
$map = ['red' => 'tesla', 'blue' => 'volvo'];
$map2 = array_flip($map);
```
其实就是得益于几乎万能的 array 和强大的内置函数。另外就是 fpm 模式简单粗暴地解决了内存泄露,让菜鸟写出来的代码也能稳定运行。
成也 array 败也 array 吧,数组的滥用导致了几乎在 php 的所有项目中 array 都乱飞,给团队协作带来了很大的不便。
belin520   
@orlog 原先 JavaScript 也是所写所得,不需要编译的。后来加上各种构建工具、TS 之后,也是需要编译(开发阶段有 hotreload )
lolizeppelin   
这类问题都和语言关系不大的....重点是框架
php 几个开箱即用的框架能快速出成品,会的人多上手也简单
bluicezhen   
可以 ssh 到 server 用 vi 直接改生产环境代码,改完立即生效
wonderfulcxm   
额,上面说的这些函数、数组用 ai 也就几分钟的事。
x86   
以前 tp3.x 的时候,你甚至可以一个 contorller 里写完成全部业务 🐶(畜生写法)
smirkcat   
直接改代码,无需任何编译,各种弱类型表述,框架多
orlog   
@belin520 我说的就是最单纯的用 js 作后端语言,毕竟 php8 之后也变成强类型语言了,ts 之所以效率慢也是因为强类型
lyxxxh2   
## 无需编译
可能你说,编译不久几毫秒吗,又不费时间。
后期编译型语言,改个字符串,你可能等 300-1500ms 才能刷新一次。
如果用 swoole:
hyperf vs laravel,你会发现 hyperf 开发速度慢一大截。
## 完整的包
```
public function order(Request $request)
{
# 先删除 达成伪更新
AiOrder::where('video_id',$request->video_id)->delete();
$models = [];
foreach ($request->statis as $statis){
$models[] = (new AiOrder())->fill(
Arr::only($statis,[
'device','single_number','single_id',
'total_number','good_num','person_id',
'images','good_num_statis','input_at','output_at'
])
)->fill([
'video_id' => $request->video_id
]);
}
DB::transaction(function () use ($models){
foreach ($models as $model){
$model->save();
}
});
return $this->ok(
['msg' => 'ok']
);
}
```
这是我前几天写的,共 820 字符。
换成 go:
```
var requestData map[string]interface{}
if err := json.Unmarshal(c.Ctx.Input.RequestBody, &requestData); err != nil {
c.Data["json"] = map[string]interface{}{"error": "Invalid request format"}
c.ServeJSON()
return
}
// Get video_id from request
videoID := requestData["video_id"].(string)
...
from chatgpt
```
2458 字符
您需要登录后才可以回帖 登录 | 立即注册

返回顶部