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

Java 出活真的快吗

  •  3
     
  •   javak · 110 天前 · 14060 次点击
    这是一个创建于 110 天前的主题,其中的信息可能已经有所发展或是发生改变。

    经常看到有人说,做自己的项目用 php 、python 、ruby 等等或者其他的什么框架,出活贼快。想具体讨论下。

    正好最近我接了一个私活,是做一个 app 的后端+一个简单的后台管理系统的后端,因为 app 和前端对方已经找到相应的人了。

    有个有个朋友找到我,我就选了 Java ,因为我只会用 springboot ,选别的还得重头学。

    是从 0 开始搭建一个后端服务,对方给到我的内容:

    • 设计稿和需求文档
    • 服务器的 ip 和基本权限,服务器上什么软件都没有,需要我自己去安装。

    功能点包括:

    • 用户注册登录:微信+手机,个人信息维护
    • 选课+学习(类似得到那种买课然后上课)
    • 一个极简版的商城(展示的内容,都是人工在管理平台配置)
    • 学习过程中的积分体系(类似 V2EX 的铜板)
    • 一些场景展示的广告配置。

    我只做了一个服务,把 app 端的功能和管理平台的功能都放到这同一个服务里面。 我做的事情包括:

    • 部署 nginx (因为前端也要用到,我就顺便一起弄了) + java server(就是下载一个 jdk + maven), 然后通过 java -jar 运行起来。
    • 设计所有的数据表
    • 从 0 开始,搭建服务框架(包括可以跟踪的 log 系统,就是每个 log 都带上 traceid ),然后 CURD 。

    我做的过程中,都用了计时统计,全部弄好上线,一共花了 20 小时。(这是纯纯的动手时间,和上班那种一天 8 小时,5 小时在划水的,8 小时工作不是同一个意思。)


    如果上面这些事,用 php 、python 、ruby 熟手,需要花多久时间呢?

    145 条回复    2023-07-19 16:42:44 +08:00
    1  2  
    EmptyDX
        1
    EmptyDX  
       110 天前   ❤️ 4
    PHP 一小时🐶
    dqzcwxb
        2
    dqzcwxb  
       110 天前   ❤️ 1
    工程上的快和手动挡的快是两码事
    zero47
        3
    zero47  
       110 天前
    开发效率肯定比不上动态语言,也比不上 go ,java 是门槛低,一般人培训培训都能写 web 的语言
    lyxeno
        4
    lyxeno  
       110 天前   ❤️ 4
    我咋感觉你这还挺快的。才 20 小时就做完了
    janus77
        5
    janus77  
       110 天前   ❤️ 3
    java 出活不算快,也没人说过 java 出活快这种话吧。
    另外如果你是接活,应该是这样:
    - 去 github 找一个开源商城模板
    - 配置好一些东西,成功运行
    - 建一个测试账户,一边点一边测,然后按照需求修改一些业务方面的配置,或者修改一些代码
    AreYou0k
        6
    AreYou0k  
       110 天前
    别的公司我不知道, 我们公司 PHP 一个接口十分钟, 直接数据库拿了就扔给前端, 我们前端自己处理. 之前公司 java 接口最起码半个小时. 想省事还得是 PHP
    someday3
        7
    someday3  
       110 天前   ❤️ 2
    Java 的快不是这种概念的快,就像楼上说的,很多语言,PHP 、python 、go ,开发起来绝对比 Java 的快的多。

    Java 是犯错的空间小。一个一年的,做一个大型项目的一部分,犯错的机会会比很多语言小得多。编程规范的一致性也容易保证。
    cmdOptionKana
        8
    cmdOptionKana  
       110 天前   ❤️ 1
    现在主流语言都差不多(动态语言也基本上有 type hint 了,静态语言也基本上有自动类型推导了,再加上 IDE/编辑器 /AI 的强力支持),比起语言本身,是否恰好遇到一个切合需求的第三方库、是否恰好有个类似的开源项目等因素影响更大。
    cxsz
        9
    cxsz  
       110 天前
    也是只会 springboot ,试过 python 的 django 感觉就是各种卡壳
    wolfie
        10
    wolfie  
       110 天前
    @zero47
    真正门槛低的是 python 、js 。
    cxsz
        11
    cxsz  
       110 天前
    顺便请教下楼主,注册登录用的是现成的库,还是手动写的加解密这些,有什么现成的库可以推荐下吗,感觉手写好麻烦的
    ljsh093
        12
    ljsh093  
       110 天前
    @EmptyDX #1 过于亏贼了哈
    javak
        13
    javak  
    OP
       110 天前 via iPhone
    @cxsz 手写,就简单的 aes256 ,感觉不麻烦啊,几十行代码
    gbkus
        14
    gbkus  
       110 天前   ❤️ 6
    @AreYou0k 这就不叫出活吧 , 要这么干给前端搭个桥接中间件 ,前端直接查 sql 不就完了? ,

    就算 php , 要做的也很多 中间件: 日志, 日志审计, 限流, 锁, 安全性考虑, 预防并发脏读脏写, 接口设计(rest, graphQL) , 怎么设计返回字段才能更省带宽 响应更快, 要不要做网关层缓存, 根据业务做数据库选型, 怎么加索引, 要不要用搜索引擎 ...
    如果要是写个 sql 原样返回 建议公司开除后端 钱都发给你们前端得了
    duteliang
        15
    duteliang  
       110 天前   ❤️ 11
    其实私活看的并不是语言, 我也算是每年接 2-3 个私活。 私活需要的模板,不管你用 Java 、Python 、PHP 、GO 你没有模板,直接用原生语言重新搭么? 比如我做一个 APP 后端+后台管理,那这套模板鉴权、文件上传、定时任务模块等基本肯定要有了,然后由于我后台管理也是自己做,所以后台管理中用户管理、角色管理、菜单管理、部门管理、日志管理、定时执行界面全有了。然后就是直接了解业务开发完事
    miv
        16
    miv  
       110 天前 via Android
    速度这块没办法 PHP 竞争,PHP 吊打它
    ljsh093
        17
    ljsh093  
       110 天前
    @cxsz #11 如果是 spring 的话不是自带 spring security 吗
    ecloud
        18
    ecloud  
       110 天前
    @cxsz 可以换 Tornado 试试,简单
    cxsz
        19
    cxsz  
       110 天前
    @ljsh093 #17 知道有这个,一直都没用过😂😂

    @ecloud #18 好的,感谢
    monkeyWie
        20
    monkeyWie  
       110 天前
    springboot 出活速度很快的啊,如果普通的 curd 直接用 spring data rest 定好模型接口就出完了,说比不上 go 的是什么成分?
    Mandelo
        21
    Mandelo  
       110 天前
    不是找个开源轮子然后改改么?
    bhbhxy
        22
    bhbhxy  
       110 天前   ❤️ 2
    java 到处都是配置,等你配置好了,别人已经出活了😂
    szdev
        23
    szdev  
       110 天前
    java 是个大架子,框架搞好了比其他语言逻辑性问题要少很多
    haython
        24
    haython  
       110 天前   ❤️ 4
    太小看 springboot 了,太高看 php 了,太多人停留在 jsp 时代了,太多人停留在 php+html 时代了
    BBCCBB
        25
    BBCCBB  
       110 天前
    springboot 已经很快了..
    nerkeler
        26
    nerkeler  
       110 天前
    java 的扩展性强吧,中间件多,后续添加什么功能,都有成熟的解决方案,而且面向对象,虽然用起来代码冗余,但是维护起来还是比其他语言容易点吧。小项目肯定不如 go/python/php 搭的快
    cmdOptionKana
        27
    cmdOptionKana  
       110 天前
    @bhbhxy
    差别不大,配置多了,要写的代码就少了,别的语言不用配置,必然需要写代码来实现相同的功能。
    复杂度只能转移,不会消失。
    通常一个框架越成熟,配置就越多。
    而如果是一个小项目,Java 也有小框架可以不配置直接写业务代码,和 Python 的小框架类似。
    重点还是熟不熟悉一个语言的生态,熟悉了之后都一样,语言本身的影响很小。
    mshx1
        28
    mshx1  
       110 天前
    @wolfie php 门槛还不低啊,一个 array 全搞定了,哈哈
    zjsxwc
        29
    zjsxwc  
       110 天前
    同样实现一个全功能的 yaml 工具库,

    php: https://github.com/symfony/yaml
    java: https://github.com/decorators-squad/eo-yaml

    php 用了 3061 行 12 个文件。
    $ find . -name '*.php' | xargs wc -l
    3061 total

    java 用了 23573 行 133 个文件。
    $ find . -name '*.php' | xargs wc -l
    23573 total
    byte10
        30
    byte10  
       110 天前   ❤️ 2
    nodejs 一把梭,是真的快。。。java 需要配置这个,配置那个是真的烦。但是你有成熟的手脚架,其实 java 也很快。ndoejs 解析 json 非常的方便。比如你数据库拿出来一个对象 userInfo, 返回几个字段给前端,那么就是可以 const { name, age } = userInfo ,但是 java 就很麻烦。。时刻都在造对象类。。

    大型的工程 java 稳一些,复用性强,组件成熟,要啥有啥。而 nodejs 和 go 一般都热衷 造轮子,通常是因为别人的轮子太简陋了。
    chenqh
        31
    chenqh  
       110 天前
    你们做东西也太快了
    7gugu
        32
    7gugu  
       110 天前
    java 也快,只是因为你没积累,如果只是套模板改改,3 天就搞定了
    CodeCodeStudy
        33
    CodeCodeStudy  
       110 天前
    @gbkus #14 如果是私活或外包,你说的这些完全不用考虑。如果是公司的项目,那么这些东西也是底层的框架层面就处理的,业务处理的部分并不需要关心。“根据业务做数据库选型”,可能 6 楼的接口只是查询,数据库已经设计好了的
    AreYou0k
        34
    AreYou0k  
       110 天前
    @gbkus #14 小公司, 领导就是 php 开发. 前端没权利的. 你说的这些框架封装实现了一部分, 其它的估计不到 10%的接口涉及到. 业务大多数都是增删改查. sql 原样返回快不快就完事了吧.
    CodeCodeStudy
        35
    CodeCodeStudy  
       110 天前
    ruby 完全不用考虑了,冷门了。你只会 java 的话那么就用 php ,因为 php 的语法跟 java 非常像,你几天就入手了。
    szzadkk
        36
    szzadkk  
       110 天前
    写新需求的效率就一般吧,肯定没 python,php 快,但是考虑到后期维护的成本和语言的生态,Java 还是相当相当能打,综合起来效率就不低了
    AreYou0k
        37
    AreYou0k  
       110 天前
    @CodeCodeStudy #33 是的, 我看他们架子搭好了增删改查 PHP 直接查 SQL 返回数据给前端出活速度贼快.
    boshok
        38
    boshok  
       110 天前
    方便说下这个私活什么规模吗?有售后服务吗,如何计算?
    miv
        39
    miv  
       110 天前 via Android
    我就说一句,你们知道为啥外包公司大部分都是用的 PHP 不?就是,他已经被重复证明过效率非常快啊。Java 在发展,PHP 也在发展。但是在这一块 PHP 是最屌的。
    token10086
        40
    token10086  
       110 天前   ❤️ 2
    我 PHP 一个数组梭完,没有各种结构体,还不考虑各种关闭和溢出,并发安不安全压根就不用管,阁下怎么和我玩?
    javak
        41
    javak  
    OP
       110 天前 via iPhone
    @boshok 有售后,1k 一个月,售后不做新功能,一点点小改动和修 bug 。
    zhoupeng199
        42
    zhoupeng199  
       110 天前
    为啥不考虑 django 呢
    fields
        43
    fields  
       110 天前
    根据我最近入坑 java 个人是感觉真快 确实快 虽然语法臃肿的一批 但耐不住人家库多啊 啥样的功能都有 改吧改吧就行了
    libook
        44
    libook  
       110 天前
    跟语言关系不大,接私活多的基本都是有几套模板,可以覆盖绝大多数甲方需求,然后按照需求定制就行了,软件外包公司基本也都是这么做的。
    leonard916
        45
    leonard916  
       110 天前
    Java 有框架的情況下,確實快。基本上幾行解決業務。
    MakHoCheung
        46
    MakHoCheung  
       110 天前
    “跟踪的 log 系统,就是每个 log 都带上 traceid”,单体应用你用的啥框架,自己写?
    ada87
        47
    ada87  
       110 天前
    Java 出活最慢,没有之一,不过再怎么慢也不用考虑 php ,python 快但不适合搞网页,你这个需求用 TypeScript 前后一把梭,时间可比 SpringBoot 省三倍不是个事
    dudubaba
        48
    dudubaba  
       110 天前
    这种外包的活没要求用 java 都是自找麻烦,php 开源一改怎么快怎么来,人家都发布了,你还在改编译的 bug 。。。
    wqhui
        49
    wqhui  
       110 天前
    从 0 开始,20 小时完成前后端开发+上线算快了。跑去服务器装好环境+应用应该就要 2 小时
    assiadamo
        50
    assiadamo  
       110 天前
    虽然我也是 javaer ,但这种小需求我用 golang 做的,比 springboot 快太多了
    javak
        51
    javak  
    OP
       110 天前 via iPhone
    @MakHoCheung io.micrometer.tracing
    siweipancc
        52
    siweipancc  
       110 天前 via iPhone
    害怕,这玩意真能用?跨权调用跟数据检查跟踪拦截了吗,这不就是大学课设水平
    sky857412
        53
    sky857412  
       110 天前
    这种当然选自己最熟悉的语言框架去做,不然都浪费时间在处理莫名其妙的问题上,而不是写业务逻辑。做项目不是练手,自己最熟悉什么用什么
    bthulu
        54
    bthulu  
       110 天前
    @wqhui 用 C#, 打包成单个文件, 部署 1 分钟都算多了
    jllove
        55
    jllove  
       110 天前 via iPhone
    主要还是熟悉程度吧,像 python 的 Django ,你要很熟悉的话做起来也很快
    RoccoShi
        56
    RoccoShi  
       110 天前
    20 小时搞这么多还不快?
    wangkun025
        57
    wangkun025  
       110 天前
    Ruby on Rails 也挺快的。
    urnoob
        58
    urnoob  
       110 天前 via Android
    跟 php 之类比 出活慢
    但是维护,日后扩展会灵活很多
    给人做外包除非有现成模板,否则不推荐
    业务类的自研系统,想长久发展 是首选
    laowudxf
        59
    laowudxf  
       110 天前
    php 一行命令直接可以生成 apiController model migrate dbSeed ,真的是太快了。管理后台有强大的傻瓜式框架(比如 laravel-admin ),太强啦!
    xuanbg
        60
    xuanbg  
       110 天前
    相同的条件下,各种语言其实速度都差不多了。认为 Java 慢的,估计对 Java 的认知还停留在 10 年前。

    我前段时间也搞了个私活,你们以为我需要从头开始写各种功能,至少也要在空白的模版上面去写各种业务的 CRUD 。其实,我直接复制一个项目改个名字,然后改改接口 url ,改改 sql 语句就完事了。你用 PHP 又能比我快到哪里去?
    totoro52
        61
    totoro52  
       110 天前
    如果你用现成的框架确实很快, 但因为 JAVA 太啰嗦了所以又显得很慢
    PHP 就不同了,就拿 JSON 解析这块把,JAVA 还要导第三方包,还要挑哪个好,导入后还要看看怎么用
    PHP 我 TM 直接 JSON_ENCODE 一把梭哈
    totoro52
        62
    totoro52  
       110 天前
    但对于后续维护以及迭代,PHP 就显得没有 JAVA 强了,毕竟 java 强面向对象预天生自带大项目优良体制
    MengiNo
        63
    MengiNo  
       110 天前 via Android
    应该很多 Java 党完全不能理解 PHP array 的恐怖(无论是效率上还是设计上还是制造麻烦上)
    MeteorCat
        64
    MeteorCat  
       110 天前 via Android
    我觉得最快的是 php ,没有之一
    zorui
        65
    zorui  
       110 天前
    ktor kotlin 折中
    nexo
        66
    nexo  
       110 天前
    @AreYou0k 有点恶心啊 是 restful api 风格吗
    Biluesgakki
        67
    Biluesgakki  
       110 天前
    @MengiNo 哈哈哈笑死我了
    vivisidea
        68
    vivisidea  
       110 天前   ❤️ 1
    20 个小时就搞完了?这效率在我看来很高了。。
    Yest192
        69
    Yest192  
       110 天前
    你这些东西,如果是个 php 熟练工,找个熟悉的框架模板改改,上手至少有一半功能都是现成的。
    如果对方并不是必须要用 java 的,你这从 0 开始用 java 搞,说实话你们双方都挺折磨的。一方面你这人天、工期都看上去短不了,自己做的累,别人可能还嫌你速度慢价格高。
    外包不是说做一个企业大项目,一般来说对方也是快速验证自己的想法,80%这种项目没太多后续。看你的描述前后端也就各一个人,还是讲究快速出货。
    AreYou0k
        70
    AreYou0k  
       110 天前
    @nexo #66 肯定不是啊, 是的话没那么快的. 全用 post
    lizhien
        71
    lizhien  
       110 天前   ❤️ 1
    我之前用 fastadmin ,代码都没写,点点按钮,一个增删改查就写好了
    fatekey
        72
    fatekey  
       110 天前
    啥出活快基本上看有无现成模板,和修改模板是否方便,从这俩角度考虑基本上 php 应该 2 小时差不多,毕竟现成的开源 php 网课商城一堆。。python 、ruby 开发速度不慢,不过感觉能抄的模板应该不会太多。。
    taine221
        73
    taine221  
       110 天前
    还是看熟悉我觉得
    对我来说给我用 Elixir + Phoenix 比什么都快
    MYlyc
        74
    MYlyc  
       110 天前   ❤️ 1
    @cxsz #11 sa-token
    xxmaqzas
        75
    xxmaqzas  
       110 天前
    为啥从 0 搭建,ruoyi 又不是不能用
    xiaoliu926
        76
    xiaoliu926  
       110 天前
    我目前就负责一套公司的系统:前端 vue +app 端 flutter+后端 java ,还好。java 复杂是负责,一旦做好后的后期维护和后续开发是非常简单高效的。
    xiaoliu926
        77
    xiaoliu926  
       110 天前
    负责--->复杂
    elevioux
        78
    elevioux  
       110 天前
    20 小时好快啊。我用 php 原生写一个可能都没这么快。
    8355
        79
    8355  
       110 天前
    这么说吧. java 的文件数几倍于 php
    你的那些 MyBatis xml 想想就头大.
    如果是几乎没有复用和代码规范就是日抛月抛型项目无论啥都干不过 php

    1 楼说的一小时就是真实时间 假如有开源项目 cms 之类的有现成的能完美满足需求 就是批量改名的时间.
    购买个虚拟主机 直接 ftp 拉下代码 做下引导数据库就完事儿了.

    如果你还需要阿里云部署可以 -> 宝塔一把梭
    ZSeptember
        80
    ZSeptember  
       110 天前
    看框架,看框架齐全,Java 也可以很快,直接代码生成,从 CRUD 到 UI 。
    hzzhzzdogee
        81
    hzzhzzdogee  
       110 天前
    我认为这种项目快不快

    一是看有没有模板能直接套上去用

    二是看人快不快, 和语言以及技术栈关系不大
    james2013
        82
    james2013  
       110 天前
    说 java 很慢的,估计不怎么用 spring boot 吧?
    spring boot 开发速度飞快,普通的 CRUD ,建好表,用插件一键生成了。
    mysql,redis,日志等配置起来便捷,有成熟的各种框架
    我用 python flask 框架开发过后端接口,速度慢,又恶心,还不好维护
    nothingistrue
        83
    nothingistrue  
       110 天前
    别急,客户还没正式提需求呢。如果客户后面不再提需求了,那八成这东西他们就没打算真正用。真要用得话,光跟 app 和前端的接口对接,就不是 20 个小时能做完的。

    至于比较,毫无意义。因为你这是严格前后端分离的架构,php 、python 、ruby ,都是面向全栈架构的,压根就做不了(也不是做不了,只不过做起来坑非常多)。事实上来说,如果是全栈开发,Java 就是超级慢。
    zhangxiuyan
        84
    zhangxiuyan  
       110 天前   ❤️ 1
    选课+学习是包含线上学习的?简单商场包含下单和各种支付、发货的吗?包含的话如果没借鉴开源项目你这已经快的飞起了吧
    也可能是我太慢了🐶
    UIXX
        85
    UIXX  
       109 天前
    #1 说的一点都不过分。

    0X 年的时候帮人定制 CMS ,用的就是 php 服务全家桶,先租用 Linux 裸机,然后 Apache/Nginx + PHP + CMS 框架,库表设计完后 ORM ,改改功能插件、改改 css 、改改 banner ,1-2 小时做完 BS 两端。现在的话,应该有更好用的整合包了。

    ————————————————————————————

    如果是裸写,20 个小时算不算快不好评估,毕竟能用跟好用是两种不同级别的工程。
    WindProtect
        86
    WindProtect  
       109 天前
    @james2013 我主业 spring boot ,但是,我还是觉得小项目 ruby on rails 快得一批。
    xmt328
        87
    xmt328  
       109 天前
    自己熟悉的语言和框架,少踩坑就是快
    Courstick
        88
    Courstick  
       109 天前
    这么说吧 最近接的一个私活 用的 Django drf 一个接口连筛选鉴权只要六行
    Courstick
        89
    Courstick  
       109 天前
    @Courstick 包含 GET LIST POST PUT DELETE
    veike
        90
    veike  
       109 天前 via Android
    @xuanbg 我拿线现成的项目直接删掉掉不用的模块就完事了。😅
    zhouquanbest
        91
    zhouquanbest  
       109 天前
    试试把 Java 换成 Kotlin 就挺快了
    streamrx
        92
    streamrx  
       109 天前 via iPhone
    你写东西真快
    zy445566
        93
    zy445566  
       109 天前
    ```js
    http.createServer((req, res) => {
    res.end();
    }).listen(3000);
    ```
    node.js 三行代码🐶
    456789
        94
    456789  
       109 天前
    java 墨迹 php 是真的快
    awolf
        95
    awolf  
       109 天前
    自己觉得快就行,要横向比较,没底(因为大家手头的脚手架不同)
    kingjpa
        96
    kingjpa  
       109 天前
    只要记住一点, 在 web 开发,任何时候,任何语言,和 php 比效率都是垃圾,无论怎么吹。
    nmap
        97
    nmap  
       109 天前
    啥私活需要这么紧急啊? 24 小时跟 48 小时有本质区别吗?我感觉一味追求极限速度就是伪需求!
    harrozze
        98
    harrozze  
       109 天前
    我觉得……标题是不是取错了? nodejs 做这种项目也用不了这么久时间。所谓的出活快,无非是两个因素:对语言和框架的熟悉,和类似的项目刚好最近做过。CRUD 用 20 小时真不算快
    wanguorui123
        99
    wanguorui123  
       109 天前 via iPhone
    有比较完善的脚手架和生成器大多数语言开发都比较快,设计需求才是比较慢的环节
    IvanLi127
        100
    IvanLi127  
       109 天前 via Android
    你除非把详细设计或者代码发出来,不然按你说的这个,快的做法和慢的做法都有。。。这项目太小了,理解有点差异都非常影响估时
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2665 人在线   最高记录 5930   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 08:30 · PVG 16:30 · LAX 01:30 · JFK 04:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.