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

10 天前
 lucasj

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

7942 次点击
所在节点    PHP
115 条回复
rahuahua
10 天前
动态语言开始写的爽,时间一长就是灾难,当然也可能产品死得快体验不出来
bigcat133
10 天前
这个说法最早是 php3 时代,可以轻松的将 php 当作一个模板系统,更新页面不用编译重启,还带各种语法糖帮你简写,新手上来就可以做些东西,也不用学什么面向对象、mvc 之类的东西特别是对比 java 那套东西简直无脑开发,当年很多新人入行就是靠的这个,项目配置不清楚可以直接用 php_info 来查看,相比现在做个东西起步就是要上手一个框架搭建还需要脚手架来支撑简直不要太 easy ,引入库也超简单。
错误处理也超简单,很多语言里的错误他直接抛个警告就完事,而且还可以在配置中将警告忽略,完全不用理会,很多时候开发人员只要页面显示的内容正确就完全忽略了这些警告
而且以前很多公司会用这玩意的原因还有一个就是生成页面缓存超容易,里面有一个 ob 系列的函数专门做这个处理,可以直接缓存页面的输出到磁盘,降低服务器端渲染的压力

只不过当前后端分离开始流行后 php 的这些优势就逐渐降低了,web 开发的复杂度也开始上升,这种时候 php 的一些弱点也开始出现,所以 php 也开始逐渐转向一些复杂框架结构,而这种时候我感觉 php 相对其他语言并不一定有什么优势
jonsmith
10 天前
写后台,配合一些脚手架,不用写多少代码,效率很高。
缺点是,弱类型虽然方便,但写的不规范,很容易出 bug 。
lucasj
10 天前
大佬们,下面这套 Java 技术栈如何?我感觉也挺快的

Kotlin + Spring Boot + JPA/Mybatis Plus + JRebel 插件 + Vue.js + Vite + Element Plus + GitHub Action
DOLLOR
10 天前
@zjsxwc
async/await 还难读?是因为喜欢 callback 嵌套吗?
danhahaha
10 天前
就在你调研使用什么语言框架的几天时间里,人家已经搭建好后台,挂到服务器上运行了,至于用户量速度安全这些小问题相信后人的智慧
hukei
10 天前
tp3+layui 梭哈
maigebaoer
10 天前
只需要懂 array 就能开发了,这门槛够低了吧
sagaxu
10 天前
ssh xxx
vim
balabala 一通改
:x
然后浏览器 F5 看效果

不编译,不打包,不重启服务
zjsxwc
10 天前
@DOLLOR #45 你简单代码,当然可以阅读,但遇到复杂点的业务,多个 await 相互循环调用可以把你绕晕,还不如直接 promise 。


PS 补充 js 的的另一个大缺点:
不能正常处理 64 位整数的基本运算,node 作为服务端 js 的实现,于是只能用 53 位的数字运算,整数用 53 位表示,浮点数也是 53 位。

于是如果一个正常的数据库( mysql 、sqlserver 、sqlite...)返回一个稍微大点的常见的 bigint 类型的有符号整数,比如 ~(1<<63) = (1<<63) -1 = 9223372036854775807 ,那么别的语言收到的都是这个数 9223372036854775807 ,但唯独 node 由于先天的残缺收到的值变成了这样:

```
>let bigintFromDB = 9223372036854775807;
>console.log(bigintFromDB);
9223372036854776000
```
看到没,js 把 9223372036854775807 变成了 9223372036854776000 ,最后几位全变 0 了。

由于历史兼容原因,js 的数字运算在语言层面是残缺且无法修复的,现在 cpu 都是 64 位的,64 位的整数正常加减乘除运算是最基本的使用需求。
awalkingman
10 天前
@ixixi 我懂你!
DOLLOR
10 天前
@zjsxwc
let bigintFromDB = 9223372036854775807n
console.log(bigintFromDB)
// 9223372036854775807n
DOLLOR
10 天前
另外我看不懂“多个 await 相互循环调用”是表达什么……
keller
10 天前
我认识的大多数 PHP 程序员都可以独立完成一个完整的项目(前后端运维部署等)
而我认识的 JAVA 程序员中很少有人能做到这一点
zjsxwc
10 天前
@DOLLOR #52 那么问题来了,你能不能让 mysql 每个 sql 查询得到的整数后面都多一个字母 n ,请写出 sql 语句。
DOLLOR
10 天前
@zjsxwc
mysql.createConnection({
supportBigNumbers: true,
bigNumberStrings: true
});
shiny
10 天前
年轻的时候直接在生产环境做开发。后来有个小工具开发着开发着发现,居然还有这么多人在用。
wangritian
10 天前
@PIECEx 刚好 php python go java 都有完整项目经验,java 使用率最高的原因绝对跟语言本身和 spring 的套娃设计无关,中小项目仍然是 php 领先,写成什么样其实看人不看语言。但 java 有大厂背书,大环境整体方向卷,最重要的生态最强大,从业人员也慢慢都向 java 靠拢。仅论开发效率,真的根本没法跟 php 比
zjsxwc
10 天前
@DOLLOR #56 这样不行,这样数据库返回的数字都变成字符串了,能不能把数据库返回的数字变 new BigInt()
DOLLOR
10 天前

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

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

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

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

© 2021 V2EX