Java , PHP , Go,哪种语言和框架更适合开发 API 接口?

2022-08-07 20:00:27 +08:00
 helloword001
打算做个 APP ,请教一下各位大神,Java ,PHP ,Go ,哪种语言和框架更适合开发 APP 的 API 接口?请各位大神赐教?
13368 次点击
所在节点    PHP
129 条回复
meteor957
2022-08-08 15:30:25 +08:00
nodejs 对 json 很友好
miniwade514
2022-08-08 15:37:24 +08:00
好久没在热榜看到这种纯粹讨论技术的帖子了。
kinge
2022-08-08 15:42:48 +08:00
天下武功为快不破,当然是 php
di1012
2022-08-08 15:47:52 +08:00
.net core 6
kalman03
2022-08-08 15:50:46 +08:00
若有需要,我愿意跟楼主合作,提供稳定可靠的 Java 服务端,额,仅限副业项目。
cbasil
2022-08-08 15:58:30 +08:00
别的不敢说,php 的数组独步天下,你看 go 什么切片 结构体 map 啥的,哪个有 php 数组好用,别给我扯什么用 go 快啥的,加上 db 后能有多大区别。php 写接口多块啊,写完有大把时间摸鱼不好吗?
flyqie
2022-08-08 15:58:48 +08:00
@bthulu #66 #97

web hosting / virtual host (web)
flyqie
2022-08-08 16:04:08 +08:00
@buxudashi #15

不过多考虑性能等因素,仅看最低需求的话。

swoole 需要装独立的扩展。

workman 在这方面好一些。

我曾经把这俩混着用,现在想想都觉得奇葩。
gongquanlin
2022-08-08 16:33:21 +08:00
php 简单,没有类型,开发速度极快,但是没有 dto 之类的约束,最后写出来的代码如果没有文档,根本记不住这个 body 到底需要哪些对象、数组;但是例如 laravel 之类的框架开发极爽,Cache 、Storage 之类的,都给封装好了,直接用

java 开发规范,但是太 TM 规范了,老麻麻的臭袜子,又臭又长,极致复杂的 maven 依赖管理,entity 、dto 、bo 、vo 、乱七八糟 o 不说,写个接口要先写 IService ,serviceImpl ,然后写 Mapper.java ,Mapper.xml ,才能走通,没有代码生成器,写一个增删改查极其恶心;但是生态好,各种 SDK 、语言、优先适配 Java ,各种服务优先适配 java 。有复杂的规范约束,只需要代码风格再进行一下约束,大家写出来的代码都差不多可以用

go 对数据类型要求严格,如果想按照 laravel 或者 spring 的 ioc 思想开发,极其恶心,想向上对接一系列接口,报文返回格式统一,但是 data 可能是 array 可能是 object 的情况下,要写一个中间件,就需要各种反射,工具包匮乏,比较 laravel 的 Cache 封装 redis ,或者 java 的 jedis ,go 的各种 redis 包用起来都反人类一样难用。但是速度快,部署极其容易,除非涉及到 sqlite 的时候打 linux 、windows 、macos 包可能有点麻烦(可以用 docker 部署打包环境),打包出来就是二进制环境,天然的面向云原生开发,函数式编程简化了非常多开发思想,开发起来心智负担极低

如果需要对业务快速上线、试错,io 需求多,可以优先考虑 php(laravel 框架)
如果需要大规模部署,微服务,服务器资源丰富,可以考虑 springboot 、springcloud 之流
如果需要跨 os 部署,客户端部署、长连接,可以选择 go
brader
2022-08-08 16:58:53 +08:00
如果你用 PHP 的话,比较多人用 ThinkPHP 、laravel 这两个框架
noyidoit
2022-08-08 17:25:49 +08:00
@bthulu 主要是你们公司没人熟悉...你说的这些丢给我 10 分钟内就能搞定
gaifanking
2022-08-08 18:38:39 +08:00
java/kotlin : vert.x
go : gin
js : nodejs
Twnysta
2022-08-08 18:52:59 +08:00
@helloword001 这个要搭配 laravel 啊,实际上 laravel 搭配 spatie/laravel-query-builder 超级快
lixon166
2022-08-08 19:44:10 +08:00
no api 不是最好么,一个 txt 一个 api
goddoogasidivil
2022-08-08 20:19:22 +08:00
node.js 一把梭
mxT52CRuqR6o5
2022-08-08 20:24:25 +08:00
@jjshare123 +1 ,google 明明给 go 定的目标是得到一部分 C 语言的市场,而明显 C 语言明显不是用来也不是适合写 API 业务的常见语言吧
kran
2022-08-08 22:39:06 +08:00
好家伙,直呼好家伙,append 里的俩推荐真是棒极了
LINAICAI
2022-08-08 22:56:17 +08:00
java,springboot
QlanQ
2022-08-08 23:18:32 +08:00
@bthulu 你这编译安装。。。。。所以可能你还是对服务器不太熟悉,yum/apt 或者 docker 都可以,感觉 jdk 也可以用 apt/yum 安装吧,也可以用 docker 吧,
原来 Java 部署都是手动复制 jdk 解压,然后设置 JAVA_HOME 的呀,Java 这块我确实接触的少
houshuu
2022-08-09 00:39:54 +08:00
虽然我总体来说比较喜欢写 Go, 但还是推举 Java. 不是 Java 有多好, 只是 Spring 生态实在是过于成熟了, 网上资料也多, 基本遇不到谷歌之后解决不了的问题.

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

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

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

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

© 2021 V2EX