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

145 天前
 lucasj

有没有熟悉多门编程语言(包含 PHP )的大佬,想问下 PHP 的开发效率到底快在哪里?

11680 次点击
所在节点    PHP
116 条回复
javalaw2010
145 天前
举两个 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
145 天前
@orlog 原先 JavaScript 也是所写所得,不需要编译的。后来加上各种构建工具、TS 之后,也是需要编译(开发阶段有 hotreload )
lolizeppelin
145 天前
这类问题都和语言关系不大的....重点是框架
php 几个开箱即用的框架能快速出成品,会的人多上手也简单
ounxnpz
145 天前
可以 ssh 到 server 用 vi 直接改生产环境代码,改完立即生效
wonderfulcxm
145 天前
额,上面说的这些函数、数组用 ai 也就几分钟的事。
x86
145 天前
以前 tp3.x 的时候,你甚至可以一个 contorller 里写完成全部业务 🐶(畜生写法)
smirkcat
145 天前
直接改代码,无需任何编译,各种弱类型表述,框架多
orlog
145 天前
@belin520 我说的就是最单纯的用 js 作后端语言,毕竟 php8 之后也变成强类型语言了,ts 之所以效率慢也是因为强类型
lyxxxh2
145 天前
## 无需编译
可能你说,编译不久几毫秒吗,又不费时间。
后期编译型语言,改个字符串,你可能等 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 字符
2024
145 天前
市场份额不会说谎,管理后台、内容站清一色是 PHP ,可能其他所有语言加起来的份额都没有 PHP 大。
1. 管理系统,例如游戏领域,无论用什么语言开发的游戏,大概率还是要配一套 PHP GM 。
2. 内容站更是了,新闻站点、贴吧都是

其他脚本类型的语言例如 py 、node ; 有优点,但是缺点更大。
py: "WEB"基本只有运维系统这个领域超过了 PHP, 因为曾经 PHP 常驻应用模式不是主流。py 开发复杂逻辑太难阅读了,curd 又是频繁改动的。py 在智能领域是瑶瑶领先,但是 web 是真打不过。
node:国内小众,开发起来还不错,但是调试太难,例如闭包后,丢失上下文,基本没有办法监控一个请求有哪些逻辑(请求参数、影响结果、过程 LOG 、 有哪些对外部请求等等),而闭包用法处处都是。
zjsxwc
145 天前
php 优点是:少写代码,且通俗易读。

Java spring 属于多写代码,sping 一上就变成晦涩难读。
go 属于多写代码。
ruby ror 属于少写代码,但猴子方法把代码变的晦涩难读。
js 属于 async/await 把代码变的晦涩难读。
xiebinbin666
145 天前
php 开发快啊
一个人 我两天 在需求明确下 干一个后台
用这 flamentphp
zjsxwc
145 天前
@zjsxwc #30
强类型的 python ,也属于多写代码
qwedcxsaz
145 天前
laravel 重度用户,轮子够多,什么需求都能满足

我之前发帖过的 [第一次做全栈,AI 考研英语,希望听听大家的意见和批评,谢谢各位!]( https://v2ex.com/t/1046939?p=1#reply22),用的 Lumen TDD 模式开发,后端占总开发的时间估计只有 20%,剩下的时候全都去弄前端和 ui 了
atan
145 天前
livewire+tailwind 前后端开发效率直线上升,如果算上后台管理再加个 filament 太轻松了
aaronnum7
145 天前
1 、开发快。一个基本的 Web 请求,Go 的话,需要先定义参数绑定结构体,响应结构体。PHP 不需要,直接读请求参数,输出直接 json_encode 。大部分 Web 业务,都是增删改查,涉及到的大多也是数组对象的一些操作。PHP 的数组和内置函数十分强大。
2 、调试快。如果发现某个地方有问题,直接改下代码,刷新页面就可以了。Go 的话,需要重新编译再执行。PHP 的 var_dump 可以直接输出变量的信息,简单粗暴。Go 也有断点可以调试,但是复杂结构的信息不如 var_dump 的直观。
3 、PHP 麻烦的地方,一个就是运行环境相对复杂一些,另外就是性能和并发问题。现在也有其他解决方案。
Mrun
145 天前
laravel 的 ORM ,是我做过的后端开发语言框架里面,最强的
PIECEx
145 天前
那是当年 Java 没 spring boot ,需要写的东西太多太重,也没 k8s 没 docker ,等等没有那种傻瓜式的一键部署的东西,并且 Jenkins 没那么的好用。
可是现在 Java 也行了,并且 Java 代码的优点刚好适用于目前的商业环境,没有 C++那样的复杂度,没有 PHP 的零碎,大型项目代码多了,比其他语言更好维护,并且开源社区给力,有问题有真大佬解惑,解决问题效率高的多。
毕竟 PHP 的简洁快速是有代价的(项目太大没有约束,写的太随意别人根本看不懂,基本无法维护)。
C 系的复杂度也有代价,只有维护过大型项目的人才知道维护效率多低,有时候多了一个维度后,复杂度指数级上升,对于从业人员要求更高。
而 Java 属于刚好找到了一个甜点,干碎了其他的语言,荣登 top 。
tabris17
145 天前
PHP 可以脱离框架和不依赖外部组件裸写 WEB 业务,这是其他语言做不到的。连 node.js 也做不到这一点
Felldeadbird
145 天前
不需要类型判断是最强的。结合万能的 array ,让人欲罢不能。

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

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

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

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

© 2021 V2EX