web开发go和php语⾔优缺点对⽐开发php有5年的时间了,我为什么要学go
go开发web项⽬也很快速
对php有更好的性能
抛开php语⾔,phper还能拥有多少编程知识?这个是phper需要问⾃已的。
个⼈更看好go未来
从哪些⽅⾯对⽐php和go的优缺点
CURD开发速度
语⾔特性
外部库包引⼊和库包管理
web开发通⽤组件
易⽤性,易上⼿
中文版php开发工具代码组织
性能
设计模式
协议和未来
对⽐
项
PHP GO其他说明
CURD 开发速
度validate, controller,
db, response
validate,
controller, db
response
开发速度的快慢要看场景,没有决对快。 就CURD开发在速度上两者不相上下。特殊框架下:
php-restful直读库时(部分情况不安全)不需要开发。 go可根据⽂档⽣成⽣成代码(go-zero)在
少代码化⽅向,go要⽐php有多⼯具,和更直接的底层⽀持。
语⾔特
性⼊参和输出可以不考虑
类型, ⽤的最多的是
array, 强⼤的array函
数库
强类型, 在对接多
断时不需要多余处
理,有更强的稳定
性。
php胜。 go⽆法实现php call_user_func , 字符串拼接出类名直接调⽤等功能, go只能调⽤提
前定义map中的⽅法和函数。go reflect可以对标php reflect 。 这⾥指⽇常web开发,抛开其
他场景不说。
外部库
包引⼊和库包管理composer mod
go胜。 go私有包⽆需要搭建镜像仓库,授权依赖于git配置。不会碰到ali等compose仓库不可⽤
的极端情况。 虽然compose也可直读git仓库,但在实际项⽬中没见使⽤。
web开发通⽤组件go胜。 理由:第三⽅仓库php-vender⽬录和go库包是⼀样引⼊。但特殊情况如mod
dleware 等,go不要求指定的⽬录,这⼀点,go赢在库包管理的不同上。 另go⼏乎是天然提供mysql-redis等链接池,php项⽬中使⽤链接池要借助外部⼯具
易⽤性更灵活更严禁php胜,没有指针,初级⼈员开发时报错率更少(也是指web场景),array的灵活它就是⾹。但个⼈认为,稍微多熟悉了go type和指针就⼏乎就没有差别。
代码组
织
go胜,⼏乎是函数式,多年的代码更易读,循环依赖更容易发现解决。
设计模
式
go胜。 理由:实现接⼝不必implement显式申明,更容易替换,模式中各⾓⾊结构更易懂。
性能go胜。 理由:即便是php有了JIT机器语⾔底层代码量也不可⽐。因为php提供了运⾏时和弱类型,更多的可能性,灵活性,更少的严禁性和更慢的速度。 有⼈对⽐最简单数据库读取同样配置同样量下java达到500ms时,go依然能10ms返回。 另有性能上最流⾏的grpc等
协议和未来开发php的⼏乎不关系
协议,甚⾄不关⼼php-
PSR协议
go胜。 理由:它是个新语⾔,和k8s等⼯具更契合。服务都在容器化的情况,go项⽬⽐php更
⼩,更快,更容易调试。
对⽐项PHP GO其他说明
总得来说,给我个⼈感觉和开发经验,php和go开发web项⽬,感觉不出明显的开发速度差别。 完全从0搭建环境的话go环境⽐php环境要容易的多。
就个⼈来说:
对于给app端尤其的直接⽤户端的api和对外api,偏向于选择go
理由:字段类型统⼀⽆差别,更容易扩展提供grpc等⾼性能接⼝。
php需要考虑⼤数字js或其他语⾔最⼤值等特殊情况,api接⼝输出字段类型与数据库字段类型不相同等。
对后admin管理后台,两者没有太多差别,各有优缺长短处。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论