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

本人是 iOS 开发,准备自己创业开发 APP,要自学一门后端语言, Java 、 PHP 、Go、 Python 、Node.js,请各位大佬推荐一下学习哪个,主要应用场景是给 iOS 客户端用的 API

  •  1
     
  •   helloword001 · 247 天前 · 9765 次点击
    这是一个创建于 247 天前的主题,其中的信息可能已经有所发展或是发生改变。
    本人是 iOS 开发,准备自己创业开发 APP ,要自学一门后端语言,Java 、PHP 、Go 、Python 、Node.js,请各位大佬推荐一下学习哪个,主要应用场景是给 iOS 客户端用的 API
    第 1 条附言  ·  247 天前
    主要应用场景是给 iOS 客户端用的 API
    184 条回复    2023-09-09 08:32:49 +08:00
    1  2  
    iorilu
        101
    iorilu  
       247 天前 via Android
    @helloword001 我没搞过 go
    但 go 优点显然是性能,但性能是初创业者最不需要考虑的东西
    volatileSpark
        102
    volatileSpark  
       247 天前
    先用 python 写,积累用户之后再用其他语言重构,比如 Java 。
    putyy
        103
    putyy  
       247 天前
    如果熟悉 web 前端 可以选择 nodejs 否则 go > php >java>python 当前是个人看法
    mmdsun
        104
    mmdsun  
       247 天前
    进入官网对比一下,我推荐这两个:

    dot net core :
    https://dotnet.microsoft.com/zh-cn/apps/aspnet/apis

    spring boot:
    https://spring.io/guides/gs/rest-service/
    amlee
        105
    amlee  
       247 天前
    当然是 node 啊,无它,op 是要做独立开发,大概率是绕不过 web 的

    那为什么不 TS 一把梭,你要真的用户量能起来,再说招人换架构的事。

    再说了,node 成熟的业务框架又不是没有,比如 nestjs
    igeeky
        106
    igeeky  
       247 天前   ❤️ 1
    我的推荐顺序:
    第一: Node.js, 创业项目经常也需要管理后台或者 h5. 做这些你绕不开写 javascript. 这样能前后端统一. 当然 ios,android 端也可以用 uniapp 框架用 js 一起写了.
    第二: Python, 足够简单,库也丰富, 是这里面最容易上手的. 而且创业项目也经常会用到爬虫或 AI 相关的,而这些用 python 都是比较好的选择. python 可以用 fastapi 框架, 速度比 flask 快不少. 在你 app 日活 100 万以前应该不会有什么性能问题.

    Java 不太推荐, 个人认为 Java 还是稍微复杂了一些. 不适合创业团队. 优势是生态全. 啥都有, 也好招人

    Go 也不太推荐, 它优势是性能, 开发效率比 Nodejs 及 Python,PHP 差不少. 等你日活过百万了, 再考虑用它优化核心服务吧.

    PHP 不推荐. 是因为我也不会, 个人对它是有偏见的, 总感觉是要被淘汰的东西.
    streamrx
        107
    streamrx  
       247 天前 via iPhone
    用 nodejs 配合 serverless , 最方便简单
    lerry
        108
    lerry  
       247 天前
    Django+Django REST framework
    需要时间上手,然后出活超快。
    Django 的资源也比较多。
    igeeky
        109
    igeeky  
       247 天前
    相对于语言, 数据库的造型也非常重要, 强烈推荐你用 PostgreSQL.
    说一些比较常用的优势项:
    字段类型支持数组(这样不用关联第二张表), 并且数组是支持索引的.
    字段类型是支持 Json 的(不需要序列化到字符串再保存). 并且 JSON 中的字段也能索引.
    支持倒排索引, 就是实现简单的字符串全文搜索. 并且支持中文分词.
    支持文本,图片相似度(imgsmlr 扩展, 以图搜图)搜索.
    支持向量(pg_vector)类型.
    支持 GIS 扩展, 基于地理位置的查询.
    AppJun
        110
    AppJun  
       247 天前
    我作为一个 iOS 开发建议是:

    请一个人搞后端,把开发时间压缩在 4 个月可以上架贩卖的程度。

    除非你有信心 4 个月自己学折腾然后也能上架贩卖。
    beizhuaguoderen
        111
    beizhuaguoderen  
       247 天前
    来的有些晚,不知道你还会不会看。
    既然是创业,那建议你分析好需要做的接口,外包平台或者朋友圈里找一个后端来做,签订软件合同进行开发,写明违约责任(比如工期)。
    做生意嘛,计算好自己的成本,只要收益大于成本就好了。
    不建议自己学习,周期太长,成本太大。
    helloword001
        112
    helloword001  
    OP
       247 天前
    @beizhuaguoderen 本身自己是做 iOS 开发的,有基础想自己学,也想过找人做,但苦于囊中羞涩,前期综合考虑自己做
    dayeye2006199
        113
    dayeye2006199  
       247 天前 via Android
    别学了 firebase 吧
    helloword001
        114
    helloword001  
    OP
       247 天前
    @igeeky 感觉 PHP 挺简单的容易上手,Python 也挺不错,就是性能差,GO 不适合写业务但是性能牛逼
    beizhuaguoderen
        115
    beizhuaguoderen  
       247 天前
    @helloword001 如果只是写接口,不写后台管理的话,从开发和部署来看,php 和 go 可以选择。
    如果要做后台管理,那还要学习 web 前端知识,php 合适一些,找个快速开发框架,就可以生成全套的后台管理页面+增删改查了。
    go 在这方面虽然也有,但是发展的时间还是短,而且他大部分都是用 Vue 、React 去写的,学习成本还是高。
    Java 、python 、node.js 还是算了。
    exploreexe
        116
    exploreexe  
       247 天前
    Python 用起来是真爽
    helloword001
        117
    helloword001  
    OP
       247 天前
    @beizhuaguoderen 只开发 API 用,没有后台管理
    Leonard
        118
    Leonard  
       247 天前
    node 吧
    dayeye2006199
        119
    dayeye2006199  
       247 天前
    也别学了,
    supabase ,firebase ,amplify ,增删查改怎么着都够用了。
    xuanbg
        120
    xuanbg  
       247 天前
    学什么都行,但个人推荐 Java 。因为 Java 入门最简单,生态最完善,做什么都方便。

    另外,创业很好,但要谨慎投入。没有成本压力,才能从容把事做好。事做好了,才能获得成功。
    shanghai1998
        121
    shanghai1998  
       247 天前
    我做过 10 个 app 了,推荐你用 nodejs 吧,快大统一了
    xuAN111
        122
    xuAN111  
       247 天前
    创业的话以快为主吧,推荐 python
    MeteorCat
        123
    MeteorCat  
       247 天前 via Android
    创业首先把需要编译打包的语言排除
    Promtheus
        124
    Promtheus  
       247 天前
    难道是因为 java 不高端 所以没人推荐吗。。java 现成轮子这么多,基本什么场景都有成熟的方案。搞什么 go 啊 python 显得你们牛逼吗
    shenjinpeng
        125
    shenjinpeng  
       246 天前
    选 PHP , 开发快, 即改即用 部署快 , 服务器成本低 , 不用担心线程安全 , 后续想转 Java 也快, 学会 PHP 也就离学会 JAVA 不远了 /doge

    我现在就是 PHP Java go 换着折腾, CURD 还是 PHP 舒服 , 有啥需求变动 一分钟改完上线
    johnman
        126
    johnman  
       246 天前
    @ChengLuffy python 我用 django ,感觉部署起来超级麻烦,有什么好的实践吗?
    johnman
        127
    johnman  
       246 天前
    @imkerberos python 用哪个框架?怎样部署最方便呢?
    assad
        128
    assad  
       246 天前
    @helloword001 PHP 性能现在已不是瓶颈了,Python3,2 性能还是不太行,不过你可以用 pypy ,性能也不错
    HolmLoh
        129
    HolmLoh  
       246 天前
    @Promtheus #124 笨重啊,开发初期 php py 一把梭连思考都不用,创业初期哪有什么特别的场景
    musi
        130
    musi  
       246 天前
    创业首先排除 Java 、Go ,其他三个你可以都看看,先做出第一版验证一下 PMF 再说,创业从来都不是死在技术上,等你有钱了你找个团队给你重构都行
    imkerberos
        131
    imkerberos  
       246 天前
    @johnman 如果侧重 API, fastapi > flask > django. 部署直接上 docker/docker-compose 即可.
    iugo
        132
    iugo  
       246 天前
    如果考虑将来会上 Web 前端, 建议 TypeScript 配合 Deno 运行时.

    如果不考虑 Web 前端, 那么如果接纳 Serverless 则用 Python, 如果不接纳则建议 Go.

    上述技术我们都在生产环境中使用.
    GTim
        133
    GTim  
       246 天前
    Python 不要学其它的,除非你想找后端工作
    Ally
        134
    Ally  
       246 天前
    我倒要看看有没有人推 rust 🐶
    junkk
        135
    junkk  
       246 天前
    为啥好几个投 go 的, 我看别人说 go 不是不适合写业务吗? 适合写应用,中间件,底层的那些东西
    victorylau808
        136
    victorylau808  
       246 天前
    我也是 iOS 开发,之前帮一个项目做点简单的接口测试。
    用的 Node.js+Express+MongoDB ,上手还挺快的。
    gimp
        137
    gimp  
       246 天前
    Go 或 Python
    xfn
        138
    xfn  
       246 天前
    我的个人经历,5 年 Android ,5 年 Java 后端,2 年 Go 后端。推荐 Go
    pipasese
        139
    pipasese  
       246 天前 via iPhone
    推荐 java ,生态成熟,写起来 ide 加持下很舒服
    x86
        140
    x86  
       246 天前
    php 一把梭
    WebKit
        141
    WebKit  
       246 天前 via Android
    推荐 java spring 全家桶,下限高
    zhang2e
        142
    zhang2e  
       246 天前
    别把时间浪费在学习语言上了。

    用 BaaS ,开源的闭源的都行,有许多开源的支持自己部署,比如 Appwrite ,Supabase ,很简单,数据库增删改查都不需要自己写,更无需自己设计 Api 。

    用闭源也可以,国外 Firebase ,国内 LeanCloud ,缺点就是会用户数据和平台是绑定死的。
    leenjewel
        143
    leenjewel  
       246 天前
    我自己搞是 Go + Python 双修的,Go 写 API 服务,Python 用 Django 做后台管理工具,都是好入门,开发效率高的语言,一个人搞主要还是多关注开发效率和后期部署运维负担,性能什么的放后边吧,如果你是千万级别用户量的另说
    yazinnnn
        144
    yazinnnn  
       246 天前
    首先排除 go 和 java

    可以考虑用表达能力强的技术, 比如 clojure
    qiqw
        145
    qiqw  
       246 天前
    go gf 写 api 很简单, 部署又快又简单
    hauibojek
        146
    hauibojek  
       246 天前
    搞个简单的 python 就行了,把精力放到产品上,还搁那纠结性能,纯纯的程序员思维。先有人用你再谈其他的
    gaifanking
        147
    gaifanking  
       246 天前
    推荐 java spring boot ,很简单最适合 crud
    jonah
        148
    jonah  
       246 天前
    go 可以,容易上手,做 API 服务很合适,你看看这个 https://opencat.app/docs/zh-CN/opencat-for-team API 后端就是 go 写的。
    dw2693734d
        149
    dw2693734d  
       246 天前
    @sofukwird 学习了,原来还有这种好东西
    Rehtt
        150
    Rehtt  
       246 天前
    相比选语言,我觉得数据库的选型、表的设计才是最重要的,语言终究都是围绕数据服务的
    yjw239
        151
    yjw239  
       246 天前
    推荐 java 全家桶,找个开源的项目二开,极速上手
    vvvv222
        152
    vvvv222  
       246 天前
    PHP Laravel ,虽然其他框架把 PHP 生态搞得很拉胯,但是 Laravel 你值得信赖。主要是快!
    SearchDream
        153
    SearchDream  
       246 天前 via iPhone
    Python+Django
    mPatrickStar
        154
    mPatrickStar  
       246 天前
    公司用我推荐 Java ,无他,生态成熟。个人开发者 Python ,FastApi 爽的飞起。
    daley
        155
    daley  
       246 天前
    像微信支付官方 SDK 就只有 Java PHP Go ,其他语言生态差点,你创业就要快速开发,php 最适合了,直接 Laravel 开干
    yumerdev93
        156
    yumerdev93  
       246 天前
    @helloword001 建议楼主找个人专门做后端,比如我😁,可以先联系聊聊交个朋友:bWFyc3l1MjAyMg==
    gongquanlin
        157
    gongquanlin  
       246 天前   ❤️ 1
    Laravel 、Java 、Go 都用过也都有生产项目
    Laravel
    优点:
    好处是好多功能脚手架都开箱即用,php 处理 json 不区分对象和数组用起来也很爽,开发速度快,无脑梭爽的一批,生态完善,队列、各种 Model 的联表的骚操作开发效率极高
    缺点:
    1.速度太慢了,遇到复杂业务 4c8g 可能连 1000 并发都搞不了,后来无奈换 go
    2.不支持长连接、持久态,因为 php-fpm 的特性执行一次之后数据就被清,所以每次请求都要重新读取数据、拉取缓存、处理数据、结束,适合单业务的 CRUD 。不要杠用 swoole 这种框架,有这时间学这种奇淫技巧不如直接换 spring 全家桶
    3.debug 困难,每次 debug 都要改代码,下 dd();发请求看日志,不支持断点。除非上 phpdebug 之类的依赖。
    4.维护困难,不建 dto ,下次开发的时候这个数组有什么字段都不知道,还得看代码维护
    5.弱语言变量类型的坑,比如在 A 业务是 string ,到了 b 业务就成了 int ,这种问题导致生产出现过好几次 bug
    6.laravel 封装的太好了,想做一些复杂的骚操作需要看底层源码,很难受


    Java
    优点:
    生态完美,遇到的问题网上都能找到。性能没的说,各种中间件针对 Java 都有适配,大厂的 sdk 很全,无需考虑生态问题,速度快效率高
    缺点:
    1.内存占用高,啥应用没跑就占 1G 左右的内存,前期对服务器投入大
    2.想要后面好维护,就要写各种 dto ,面向对象开发要符合阿里规范的话,一个 dto 一个文件,极其恶心
    3.想看源码,各种复杂设计模式,断点跳来跳去太容易懵。老麻麻的袜子,又臭又长

    Go
    优点:
    效率极高,内存占用低,上手快
    缺点:
    1.没有面向对象的支持,开发起来需要适应
    2.生态不完善,生态靠社区维护,各种包说停更就停更,比如 gorilla/websocket 说不维护就不维护,带劲;想用到哪些包,star 很低,不敢在生产上用,属于富贵险中求的
    3.开发各种坑,比如官方的 json 编解码,string 类型的变量只能用 string ,如果报文里是数值就会报错挂掉
    4.还是没有面向对象的支持,做一些设计模式的时候例如策略工厂,就只能实现工厂,策略需要手写反射实现
    5.没有 try...catch 只有 if err ,但是如果出现了 panic ,程序可能直接宕掉,这很操蛋

    NodeJs
    没有在生产用过,只在自己的项目上玩过.nextjs ,使用的 typescript ,简单说一下
    优点:
    ts 解决了 js 的类型问题,写起来很爽,nextjs 直接前后端集成,用 trpc 调用爽的一批,支持是用 model 的形式操作数据库,Prisma 是目前用起来体验最好的 orm 了,和 laravel 的 orm 似的爽,目前用起来体验最好的语言
    缺点:
    1.因为 nodejs 是全异步的,io 型应用友好,但是不适合 cpu 密集型应用,每次写 async await 的时候可能遇到需要在 non-async 函数下获得 await 结果的情况,可能会遇到坑,避免不了嵌套地狱
    2.执行效率不是很高,比 go 和 java 低一些



    综上要是我,选择大概率 Nodejs > go > Java > php

    前期项目没什么量,nodejs 或者 go 直接托管到云上按需付费,需求量大了之后再转 java 升级服务或者继续用 go 开发。php 的 laravel 虽然用起来很爽,但是复杂业务逻辑因为 php-fpm 自己本身的问题无法解决,换 swoole 之类的框架为什么不直接用生产更完整的 spring 全家桶呢?
    wxlwsy
        158
    wxlwsy  
       246 天前   ❤️ 2
    后端语言就一个标准:强类型语言
    选择弱类型不是蠢就是坏.
    wangbin526
        159
    wangbin526  
       246 天前 via Android
    @junkk Go 只是木有类似 Django 、spring 全家桶之类前后端一把梭的框架,但就开发个后台 api ,一般就是十几个接收 http 请求再返回纯 json 的接口,整个项目随便用什么语言开发都不过几百行代码,用大而全的框架,绝大多数功能用不着还严重影响性能,随便配置下框架可能都不止这点代码
    而 Go 都是精简框架,只提供了基础的路由、响应、中间件等,很适合 api 开发啊,比如 fiber 之类,因为用了 fasthttp 非常适合密集的小请求,比如物联网设备,偶 2 核 8G 的云服务器支持近 60 万设备几分钟定时上报存时序,外加十几处大屏缓存显示,QPS 平均 2 万高峰期过 5 万服务器还空得很,换 spring 全家桶的话服务器预算加个 0 估计都悬
    当然如果预计 QPS 不过千又不需要保密源码的 API 服务,FastAPI 一把梭就是了
    gooin
        160
    gooin  
       246 天前
    node-nestjs
    Desdemor
        161
    Desdemor  
       246 天前
    go 上手快啊,别的方面都差不多
    Oilybear
        162
    Oilybear  
       246 天前
    python 和 go 吧,但是如果以后真的发家了,我推荐 go ,毕竟 python 的后端和编写者的水平是息息相关
    liantao
        163
    liantao  
       246 天前
    说下什么业务,没准可以合作呢,我 java 的,目前也有 Ios 在给我维护代码
    ganbuliao
        164
    ganbuliao  
       246 天前
    最好学 nodejs
    ingnoscemihi
        165
    ingnoscemihi  
       246 天前
    简单就先 python ,js 或者 go ,建议 js 吧,适用性比较广,不过也得看你的 app 的类型
    veightz
        166
    veightz  
       246 天前 via Android
    业务复杂,后续多人维护,选 Java ,生态齐全。闭眼选 spring boot
    有 go 经验和服务端经验,能手撸一部分轮子,网络 io 需求大的,选 go 。比如 gin ,hertz
    普通 crud ,想快速出活,python 。比如 fastapi 啥的
    clf
        167
    clf  
       246 天前
    纯给 IOS 用的话,考虑一下使用 iCloud 做云端数据,然后大部分的逻辑纯由客户端实现。

    除非是用户之间存在交集的,或者未来需要提供其他客户端和 web 页面的。

    icloud 优势就是存储成本转嫁给用户,很多 ios 软件就是这么干的。
    jmliang
        168
    jmliang  
       246 天前
    go ,用 goframe
    huangzongzhuan
        169
    huangzongzhuan  
       246 天前
    很多人都在说 Python 做 API 性能差,我司目前日活 300 多万,纯 Python ,FastAPI ,毫无压力
    ninjamk200
        170
    ninjamk200  
       246 天前
    java - spring boot, 以后跨端做 android 也能用
    dzdh
        171
    dzdh  
       246 天前
    先学两个礼拜 php
    然后再学 go

    最后啃两口 python

    还有兴趣就啃啃 java
    madril
        172
    madril  
       246 天前
    @helloword001 php 的后端环境搭建会让你头疼,尤其是一些扩展包。建议 java 和 go
    msvcr110
        173
    msvcr110  
       246 天前
    按 MVP(最小可用产品)原则,先造个产品出来能盈利再考虑
    jjww
        174
    jjww  
       246 天前
    python + django + restframework

    这一套能快速搭建起数据库访问, 认证, 授权, Admin Portal 等后台应用常见场景, 并且不用考虑如何组织代码, 心智负担小. 如果选 python, 感觉不需要考虑 FastAPI flask 等别的 web 框架了, 没有 django 一把梭方便.
    lonelee
        175
    lonelee  
       246 天前
    刚看到掘金的文章,可以参考下 https://juejin.cn/post/7274544460104482873
    babyoung
        176
    babyoung  
       246 天前
    创业需谨慎!
    Al0rid4l
        177
    Al0rid4l  
       246 天前
    别的不说, PHP, Python, Nodejs 是一个生态位的, 所以这三个只要选一个就行了

    Web 生态: Nodejs > Python > PHP
    性能: Nodejs > PHP > Python
    语法舒适度: Typescript > JS = Python(Type hint) > Python > PHP
    其他用途: TS/JS(前端移动端) = Python(数据/机器学习) > PHP
    找工作(Web 方向): 三个半斤八两
    iOCZ
        178
    iOCZ  
       246 天前
    上云函数
    iorilu
        179
    iorilu  
       246 天前
    @jjww 有没有推荐的这一套的开源代码啥的, 有空看看, 备用
    helloword001
        180
    helloword001  
    OP
       246 天前
    @huangzongzhuan 服务器什么配置啊
    whereFly
        181
    whereFly  
       246 天前
    php 敢叫嚣是“世界上最好的语言”
    我目前的 APP 后端配的就是 PHP ,用的老掉牙的写法,照样运行。
    otorain
        182
    otorain  
       245 天前 via Android
    自己创业的话,想不明白为啥不用 Ruby On Rails
    coderzhangsan
        183
    coderzhangsan  
       244 天前
    不要用纯技术思维看任何问题,首先你是创业,创业是商业模式试错的过程,要考虑试错的成本,所以前期在资金有限的情况下,应该最大化降低可控的开发成本,兼顾开发效率,用 java\go 的前提是资金充裕,商业模式成熟可靠,否则建议你还是用脚本语言,脚本语言首先 PHP ,开发人员库存多,且人力成本较低,开发效率较高;如果创业成功,后期有资金再调整技术架构也不晚。
    heasy
        184
    heasy  
       243 天前 via Android
    Nodejs 吧
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4105 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 00:53 · PVG 08:53 · LAX 17:53 · JFK 20:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.