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

2022-08-07 20:00:27 +08:00
 helloword001
打算做个 APP ,请教一下各位大神,Java ,PHP ,Go ,哪种语言和框架更适合开发 APP 的 API 接口?请各位大神赐教?
13307 次点击
所在节点    PHP
129 条回复
Mexion
2022-08-08 11:44:56 +08:00
看你说你是前端,你用 go 不如用 nodejs ,和用 go 的体验不是一个量级的,js 写的舒服,性能可以,生态好,部署也方便
Trim21
2022-08-08 11:46:30 +08:00
fastapi (
QlanQ
2022-08-08 11:47:02 +08:00
@bthulu 其实是对服务器不熟悉吧,服务器上你 jdk 怎么装的,PHP 和 PHP 的扩展就可以怎么装呀,都有官方包,不需要编译
ivencooli
2022-08-08 11:47:12 +08:00
如果需要框架推荐的话,我用过的 golang 和 php 各有一个可以推荐

golang 的话 推荐 go-zero ,有快速生成工具 goctl
地址: https://go-zero.dev/cn/

php 的话,推荐 hyperf ,我司有几个线上的项目正在使用,不过不是做 api 服务,对接的是微信服务,对于习惯 php-fpm 的人来说也比较容易上手,而且对协程封装后,使用起来更简单,不过对于 api 服务不肯定适不适合
地址: https://hyperf.wiki/2.2/#/README

最后,使用什么代码什么框架,可能还是看业务需求,上线时间,还有对应用到的哪些数据库,去匹配合适的语言和框架,建议先看下文档和 demo
airqj
2022-08-08 11:47:31 +08:00
一定要用 php 的话 ,推荐 webman
简单易上手性能好,现在 xdebug 也支持了
bthulu
2022-08-08 11:54:00 +08:00
@pytth 有你说的这么简单, 那咋我丢进去就是不行呢?
go233
2022-08-08 11:57:39 +08:00
bthulu
2022-08-08 12:01:02 +08:00
@QlanQ jdk 我是直接复制 jdk-xxx.tar.gz, 解压到用户 home 目录, 设置环境变量 JAVA_HOME 指向这个目录就算完事了.
php 还要先安装 nginx, 然后配置 location ~ \.php$ {...}
我再给你看看 php-fpm 是怎么安装的, 其中三个 cp 指令, 官网文档还写错了, /usr/local/etc/php-fpm.d/www.conf.default 根本没有这个文件, 实际应该是 /usr/local/etc/www.conf.default
wget http://xxx/php-5.6.40.tar.gz
tar -zxvf ./php-5.6.40.tar.gz
sudo apt install libxml2-dev
cd php-5.6.40
./configure --enable-fpm
make
sudo make install
cp php.ini-development /usr/local/php/php.ini
cp /usr/local/etc/www.conf.default /usr/local/etc/www.conf
cp sapi/fpm/php-fpm /usr/local/bin
# 修改 /usr/local/php/php.ini 文件中的 cgi.fix_pathinfo=0
# 修改 /usr/local/etc/www.conf 中的 user 和 group 为当前用户及所在群组
sudo /usr/local/bin/php-fpm

就这你跟说个安装简单, 部署简单? 见鬼去吧
liuxu
2022-08-08 12:23:56 +08:00
@bthulu #88 按照你这种拿 php5.6 进行手动编译部署方式,那我也只能说 java5 不好用了
2bad4u
2022-08-08 12:26:58 +08:00
Java 有成熟的规范(死板,在规范下写代码有一种真正搬砖人的感觉),php 一个文件就能写个博客写代码够自由热部署(自由发挥的项目大了人多了管理不好的话写的乱七八糟不容易维护),同样的项目 java 比 php 代码量更多,java 比 php 需要更多的人手,java 比 php 需要更多的开发时间,java 比 php 运行起来需要更多内存 cpu 这些硬件资源,所以,项目大有钱就 java ,项目小省钱省资源用 php 。
liuxu
2022-08-08 12:30:57 +08:00
@helloword001 #5 laravel 吊打一切
2bad4u
2022-08-08 12:38:30 +08:00
另外,在操作数据库方面
php 有 pdo ,php 的框架基本上都有 orm ,写 sql 写 orm 随便,没有规范的话会导致乱写的人多了项目就特别不好维护。
java 虽然也有 orm 但是基本上都是用 mybatis ,xml 里面写 sql 也是很奇葩的,如果人少没人 codeview 规范不足的话也容易写的乱七八糟。
wonderfulcxm
2022-08-08 12:40:14 +08:00
@bthulu 我去,你这是连个 php-fpm 都装不了的,入门都没有,还编译安装,水平不够用 yum, apt ,再不行用 docker 好吗?还不行买个虚拟主机自带 php 环境,而且 nginx 默认的 nginx.conf 自带 php-fpm 配置,不过是被注释掉的。
markgor
2022-08-08 13:13:30 +08:00
@bthulu #52
@bthulu #88
你这说法.....
其实你为什么不把 NGINX 源码编译也展开来说呢?

另外你部署 java 的前置不需要配合 tomcat 这些 web 服务吗?
是 java 项目中自己实现了 http 服务或用 1.6 的 HttpServer ?

那按你这么说,如果你们 PHP 是基于 CLI 模式或使用 PHP 的內置的 web 服務也不需要 nginx 啊。
还有你不熟悉的情況下為什麼要编译 PHP 呢? yum/apt-get 这些不行吗?或者找 rpm/deb 包?


其实对方丢给你们部署,你们可以先问对方要运行环境信息,这样就不存在你说的 什么扩展 /插件也不清楚。
*PHP 的插件都在运行代码里,所以其实你不需要搞清楚用什么插件,但使用到的扩展则必须要用;
*如果不知道什么扩展,可以把支持的扩展都编译进去。
*如果不熟悉编译,其实可以 yum/apt-get 形式安装 PHP 和 PHP 的扩展。

另外你 java/C#的话,JDK 版本和.net core 版本可以随意换不出错吗?

------------------------------------------------------
yum install php
yum install php-*
php -S 0.0.0.0:80 -t /PATH/TO/WEB

搞定
--------------------------------------------------
bthulu
2022-08-08 13:23:38 +08:00
@markgor java 高版本替换低版本绝大部分时候是没问题的, java1.1 时代的包, 在 java17 上都能正常运行.
java 部署不需要 tomcat 的, springboot 打包出来的 jar 包一丢就行了.
php 安装我是按照 php 官网文档来的, 文档里说的就是编译部署啊, 直接 Install 的, 难道不是安装的最新版吗? 又不能 install 指定版本, 不就只能编译部署了?
agdhole
2022-08-08 13:32:47 +08:00
@markgor #94 .net core 可以把 runtime 都一起打包了
bthulu
2022-08-08 13:41:15 +08:00
@agdhole 所以说嘛, 玩 php 的都有点跟不上时代了. java, C#, go, js, 开发都越来越方便了, 部署也是一个赛一个的简单, 就 php 还在原地踏步还以为别人也跟他一样.
agdhole
2022-08-08 13:45:57 +08:00
@bthulu #97 我写了很多年 PHP ,前两年用到 PHP 7 + swoole 之后就再也不用了,这语言各方面都落后太多了,不知道为什么那么多人抱着不放。
用 ts c# 做开发完全感觉不到效率比 PHP 差到哪里,反而体验更好,性能能好,安装部署也更方便。
realpg
2022-08-08 13:53:40 +08:00
@kingjpa #10
不 很多人把 PHP 搞成了 java 的样子
aitaii
2022-08-08 15:10:07 +08:00
Ruby on Rails

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

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

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

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

© 2021 V2EX