V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
helloword001
V2EX  ›  PHP

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

  •  
  •   helloword001 · 2022-08-07 20:00:27 +08:00 · 13272 次点击
    这是一个创建于 872 天前的主题,其中的信息可能已经有所发展或是发生改变。
    打算做个 APP ,请教一下各位大神,Java ,PHP ,Go ,哪种语言和框架更适合开发 APP 的 API 接口?请各位大神赐教?
    第 1 条附言  ·  2022-08-08 20:19:38 +08:00

    非常感谢大家的建议,我的本质工作是一个前端,之前自学Python用Django REST framework写过一些小说类APP的API且上线运行良好。

    综合一下大家的两个方案如下

    • Go + go-zero
    • PHP + Laravel
    129 条回复    2022-08-31 18:21:47 +08:00
    1  2  
    meteor957
        101
    meteor957  
       2022-08-08 15:30:25 +08:00
    nodejs 对 json 很友好
    miniwade514
        102
    miniwade514  
       2022-08-08 15:37:24 +08:00
    好久没在热榜看到这种纯粹讨论技术的帖子了。
    kinge
        103
    kinge  
       2022-08-08 15:42:48 +08:00
    天下武功为快不破,当然是 php
    di1012
        104
    di1012  
       2022-08-08 15:47:52 +08:00
    .net core 6
    kalman03
        105
    kalman03  
       2022-08-08 15:50:46 +08:00
    若有需要,我愿意跟楼主合作,提供稳定可靠的 Java 服务端,额,仅限副业项目。
    cbasil
        106
    cbasil  
       2022-08-08 15:58:30 +08:00
    别的不敢说,php 的数组独步天下,你看 go 什么切片 结构体 map 啥的,哪个有 php 数组好用,别给我扯什么用 go 快啥的,加上 db 后能有多大区别。php 写接口多块啊,写完有大把时间摸鱼不好吗?
    flyqie
        107
    flyqie  
       2022-08-08 15:58:48 +08:00 via Android
    @bthulu #66 #97

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

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

    swoole 需要装独立的扩展。

    workman 在这方面好一些。

    我曾经把这俩混着用,现在想想都觉得奇葩。
    gongquanlin
        109
    gongquanlin  
       2022-08-08 16:33:21 +08:00   ❤️ 1
    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
        110
    brader  
       2022-08-08 16:58:53 +08:00
    如果你用 PHP 的话,比较多人用 ThinkPHP 、laravel 这两个框架
    noyidoit
        111
    noyidoit  
       2022-08-08 17:25:49 +08:00
    @bthulu 主要是你们公司没人熟悉...你说的这些丢给我 10 分钟内就能搞定
    gaifanking
        112
    gaifanking  
       2022-08-08 18:38:39 +08:00
    java/kotlin : vert.x
    go : gin
    js : nodejs
    Twnysta
        113
    Twnysta  
       2022-08-08 18:52:59 +08:00
    @helloword001 这个要搭配 laravel 啊,实际上 laravel 搭配 spatie/laravel-query-builder 超级快
    lixon166
        114
    lixon166  
       2022-08-08 19:44:10 +08:00
    no api 不是最好么,一个 txt 一个 api
    goddoogasidivil
        115
    goddoogasidivil  
       2022-08-08 20:19:22 +08:00
    node.js 一把梭
    mxT52CRuqR6o5
        116
    mxT52CRuqR6o5  
       2022-08-08 20:24:25 +08:00
    @jjshare123 +1 ,google 明明给 go 定的目标是得到一部分 C 语言的市场,而明显 C 语言明显不是用来也不是适合写 API 业务的常见语言吧
    kran
        117
    kran  
       2022-08-08 22:39:06 +08:00 via Android
    好家伙,直呼好家伙,append 里的俩推荐真是棒极了
    LINAICAI
        118
    LINAICAI  
       2022-08-08 22:56:17 +08:00
    java,springboot
    QlanQ
        119
    QlanQ  
       2022-08-08 23:18:32 +08:00
    @bthulu 你这编译安装。。。。。所以可能你还是对服务器不太熟悉,yum/apt 或者 docker 都可以,感觉 jdk 也可以用 apt/yum 安装吧,也可以用 docker 吧,
    原来 Java 部署都是手动复制 jdk 解压,然后设置 JAVA_HOME 的呀,Java 这块我确实接触的少
    houshuu
        120
    houshuu  
       2022-08-09 00:39:54 +08:00
    虽然我总体来说比较喜欢写 Go, 但还是推举 Java. 不是 Java 有多好, 只是 Spring 生态实在是过于成熟了, 网上资料也多, 基本遇不到谷歌之后解决不了的问题.
    bthulu
        121
    bthulu  
       2022-08-09 08:08:22 +08:00
    @QlanQ 也能 apt 安装, 只不过我司用的是魔改过的 jdk, apt 上没有, 只能复制解压安装.
    IIInsomnia
        122
    IIInsomnia  
       2022-08-09 08:22:25 +08:00
    Go + yiigo + chi
    CantSee
        123
    CantSee  
       2022-08-09 11:17:13 +08:00 via iPhone
    Python 快,简单方法,性能拉,Java 可维护性好太重量级了
    li746224
        124
    li746224  
       2022-08-09 11:35:21 +08:00
    原本是前端的话,直接 nodejs 啊,node+Nest.js
    yuhaotjutwt
        125
    yuhaotjutwt  
       2022-08-09 15:01:31 +08:00
    @helloword001 看看我的框架:lovephp,不过是全栈框架,你要是做 api 的话,很多功能也用不到
    mmdsun
        126
    mmdsun  
       2022-08-09 15:07:42 +08:00
    Java 和 C#
    spring boot + jpa 和 .net core api + ef core
    go 不适合写业务代码,api 也可以写但不推荐。
    putyy
        127
    putyy  
       2022-08-23 08:38:07 +08:00
    写 api 都差不多,不推荐 java ,go 、php 框架一大把, php 推荐 hyperf
    heraldboy
        128
    heraldboy  
       2022-08-28 19:55:43 +08:00
    @bthulu Php 环境我们磨合了一段时间,现在基本不用管了,复制一份新建个容器就可以了。
    xiaoshouchen
        129
    xiaoshouchen  
       2022-08-31 18:21:47 +08:00
    推荐 DreamWaver 和 FrontPage
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3005 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 74ms · UTC 11:04 · PVG 19:04 · LAX 03:04 · JFK 06:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.