经常看到有人说,做自己的项目用 php 、python 、ruby 等等或者其他的什么框架,出活贼快。想具体讨论下。
正好最近我接了一个私活,是做一个 app 的后端+一个简单的后台管理系统的后端,因为 app 和前端对方已经找到相应的人了。
有个有个朋友找到我,我就选了 Java ,因为我只会用 springboot ,选别的还得重头学。
是从 0 开始搭建一个后端服务,对方给到我的内容:
功能点包括:
我只做了一个服务,把 app 端的功能和管理平台的功能都放到这同一个服务里面。 我做的事情包括:
我做的过程中,都用了计时统计,全部弄好上线,一共花了 20 小时。(这是纯纯的动手时间,和上班那种一天 8 小时,5 小时在划水的,8 小时工作不是同一个意思。)
如果上面这些事,用 php 、python 、ruby 熟手,需要花多久时间呢?
1
EmptyDX 2023-06-05 09:44:59 +08:00 4
PHP 一小时🐶
|
2
dqzcwxb 2023-06-05 09:46:24 +08:00 1
工程上的快和手动挡的快是两码事
|
3
zero47 2023-06-05 09:46:40 +08:00
开发效率肯定比不上动态语言,也比不上 go ,java 是门槛低,一般人培训培训都能写 web 的语言
|
4
lyxeno 2023-06-05 09:50:28 +08:00 4
我咋感觉你这还挺快的。才 20 小时就做完了
|
5
janus77 2023-06-05 09:53:13 +08:00 3
java 出活不算快,也没人说过 java 出活快这种话吧。
另外如果你是接活,应该是这样: - 去 github 找一个开源商城模板 - 配置好一些东西,成功运行 - 建一个测试账户,一边点一边测,然后按照需求修改一些业务方面的配置,或者修改一些代码 |
6
AreYou0k 2023-06-05 09:53:22 +08:00
别的公司我不知道, 我们公司 PHP 一个接口十分钟, 直接数据库拿了就扔给前端, 我们前端自己处理. 之前公司 java 接口最起码半个小时. 想省事还得是 PHP
|
7
someday3 2023-06-05 09:54:21 +08:00 2
Java 的快不是这种概念的快,就像楼上说的,很多语言,PHP 、python 、go ,开发起来绝对比 Java 的快的多。
Java 是犯错的空间小。一个一年的,做一个大型项目的一部分,犯错的机会会比很多语言小得多。编程规范的一致性也容易保证。 |
8
cmdOptionKana 2023-06-05 09:54:32 +08:00 1
现在主流语言都差不多(动态语言也基本上有 type hint 了,静态语言也基本上有自动类型推导了,再加上 IDE/编辑器 /AI 的强力支持),比起语言本身,是否恰好遇到一个切合需求的第三方库、是否恰好有个类似的开源项目等因素影响更大。
|
9
cxsz 2023-06-05 09:55:50 +08:00
也是只会 springboot ,试过 python 的 django 感觉就是各种卡壳
|
11
cxsz 2023-06-05 09:59:01 +08:00
顺便请教下楼主,注册登录用的是现成的库,还是手动写的加解密这些,有什么现成的库可以推荐下吗,感觉手写好麻烦的
|
14
gbkus 2023-06-05 10:04:29 +08:00 6
@AreYou0k 这就不叫出活吧 , 要这么干给前端搭个桥接中间件 ,前端直接查 sql 不就完了? ,
就算 php , 要做的也很多 中间件: 日志, 日志审计, 限流, 锁, 安全性考虑, 预防并发脏读脏写, 接口设计(rest, graphQL) , 怎么设计返回字段才能更省带宽 响应更快, 要不要做网关层缓存, 根据业务做数据库选型, 怎么加索引, 要不要用搜索引擎 ... 如果要是写个 sql 原样返回 建议公司开除后端 钱都发给你们前端得了 |
15
duteliang 2023-06-05 10:05:13 +08:00 11
其实私活看的并不是语言, 我也算是每年接 2-3 个私活。 私活需要的模板,不管你用 Java 、Python 、PHP 、GO 你没有模板,直接用原生语言重新搭么? 比如我做一个 APP 后端+后台管理,那这套模板鉴权、文件上传、定时任务模块等基本肯定要有了,然后由于我后台管理也是自己做,所以后台管理中用户管理、角色管理、菜单管理、部门管理、日志管理、定时执行界面全有了。然后就是直接了解业务开发完事
|
16
miv 2023-06-05 10:07:47 +08:00 via Android
速度这块没办法 PHP 竞争,PHP 吊打它
|
20
monkeyWie 2023-06-05 10:17:21 +08:00
springboot 出活速度很快的啊,如果普通的 curd 直接用 spring data rest 定好模型接口就出完了,说比不上 go 的是什么成分?
|
21
Mandelo 2023-06-05 10:17:50 +08:00
不是找个开源轮子然后改改么?
|
22
bhbhxy 2023-06-05 10:21:11 +08:00 2
java 到处都是配置,等你配置好了,别人已经出活了😂
|
23
szdev 2023-06-05 10:26:39 +08:00
java 是个大架子,框架搞好了比其他语言逻辑性问题要少很多
|
24
haython 2023-06-05 10:29:46 +08:00 4
太小看 springboot 了,太高看 php 了,太多人停留在 jsp 时代了,太多人停留在 php+html 时代了
|
25
BBCCBB 2023-06-05 10:32:11 +08:00
springboot 已经很快了..
|
26
nerkeler 2023-06-05 10:32:43 +08:00
java 的扩展性强吧,中间件多,后续添加什么功能,都有成熟的解决方案,而且面向对象,虽然用起来代码冗余,但是维护起来还是比其他语言容易点吧。小项目肯定不如 go/python/php 搭的快
|
27
cmdOptionKana 2023-06-05 10:33:48 +08:00
@bhbhxy
差别不大,配置多了,要写的代码就少了,别的语言不用配置,必然需要写代码来实现相同的功能。 复杂度只能转移,不会消失。 通常一个框架越成熟,配置就越多。 而如果是一个小项目,Java 也有小框架可以不配置直接写业务代码,和 Python 的小框架类似。 重点还是熟不熟悉一个语言的生态,熟悉了之后都一样,语言本身的影响很小。 |
29
zjsxwc 2023-06-05 10:36:27 +08:00
同样实现一个全功能的 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 |
30
byte10 2023-06-05 10:37:12 +08:00 2
nodejs 一把梭,是真的快。。。java 需要配置这个,配置那个是真的烦。但是你有成熟的手脚架,其实 java 也很快。ndoejs 解析 json 非常的方便。比如你数据库拿出来一个对象 userInfo, 返回几个字段给前端,那么就是可以 const { name, age } = userInfo ,但是 java 就很麻烦。。时刻都在造对象类。。
大型的工程 java 稳一些,复用性强,组件成熟,要啥有啥。而 nodejs 和 go 一般都热衷 造轮子,通常是因为别人的轮子太简陋了。 |
31
chenqh 2023-06-05 10:38:29 +08:00
你们做东西也太快了
|
32
7gugu 2023-06-05 10:43:41 +08:00
java 也快,只是因为你没积累,如果只是套模板改改,3 天就搞定了
|
33
CodeCodeStudy 2023-06-05 10:43:46 +08:00
@gbkus #14 如果是私活或外包,你说的这些完全不用考虑。如果是公司的项目,那么这些东西也是底层的框架层面就处理的,业务处理的部分并不需要关心。“根据业务做数据库选型”,可能 6 楼的接口只是查询,数据库已经设计好了的
|
34
AreYou0k 2023-06-05 10:44:08 +08:00
@gbkus #14 小公司, 领导就是 php 开发. 前端没权利的. 你说的这些框架封装实现了一部分, 其它的估计不到 10%的接口涉及到. 业务大多数都是增删改查. sql 原样返回快不快就完事了吧.
|
35
CodeCodeStudy 2023-06-05 10:45:54 +08:00
ruby 完全不用考虑了,冷门了。你只会 java 的话那么就用 php ,因为 php 的语法跟 java 非常像,你几天就入手了。
|
36
szzadkk 2023-06-05 10:46:45 +08:00
写新需求的效率就一般吧,肯定没 python,php 快,但是考虑到后期维护的成本和语言的生态,Java 还是相当相当能打,综合起来效率就不低了
|
37
AreYou0k 2023-06-05 10:53:24 +08:00
@CodeCodeStudy #33 是的, 我看他们架子搭好了增删改查 PHP 直接查 SQL 返回数据给前端出活速度贼快.
|
38
boshok 2023-06-05 10:55:07 +08:00
方便说下这个私活什么规模吗?有售后服务吗,如何计算?
|
39
miv 2023-06-05 11:04:08 +08:00 via Android
我就说一句,你们知道为啥外包公司大部分都是用的 PHP 不?就是,他已经被重复证明过效率非常快啊。Java 在发展,PHP 也在发展。但是在这一块 PHP 是最屌的。
|
40
token10086 2023-06-05 11:06:54 +08:00 2
我 PHP 一个数组梭完,没有各种结构体,还不考虑各种关闭和溢出,并发安不安全压根就不用管,阁下怎么和我玩?
|
42
zhoupeng199 2023-06-05 11:23:35 +08:00
为啥不考虑 django 呢
|
43
fields 2023-06-05 11:25:36 +08:00
根据我最近入坑 java 个人是感觉真快 确实快 虽然语法臃肿的一批 但耐不住人家库多啊 啥样的功能都有 改吧改吧就行了
|
44
libook 2023-06-05 11:26:32 +08:00
跟语言关系不大,接私活多的基本都是有几套模板,可以覆盖绝大多数甲方需求,然后按照需求定制就行了,软件外包公司基本也都是这么做的。
|
45
leonard916 2023-06-05 11:27:17 +08:00
Java 有框架的情況下,確實快。基本上幾行解決業務。
|
46
MakHoCheung 2023-06-05 11:33:37 +08:00
“跟踪的 log 系统,就是每个 log 都带上 traceid”,单体应用你用的啥框架,自己写?
|
47
ada87 2023-06-05 11:37:32 +08:00
Java 出活最慢,没有之一,不过再怎么慢也不用考虑 php ,python 快但不适合搞网页,你这个需求用 TypeScript 前后一把梭,时间可比 SpringBoot 省三倍不是个事
|
48
dudubaba 2023-06-05 11:39:40 +08:00
这种外包的活没要求用 java 都是自找麻烦,php 开源一改怎么快怎么来,人家都发布了,你还在改编译的 bug 。。。
|
49
wqhui 2023-06-05 11:44:13 +08:00
从 0 开始,20 小时完成前后端开发+上线算快了。跑去服务器装好环境+应用应该就要 2 小时
|
50
assiadamo 2023-06-05 11:51:21 +08:00
虽然我也是 javaer ,但这种小需求我用 golang 做的,比 springboot 快太多了
|
51
javak OP @MakHoCheung io.micrometer.tracing
|
52
siweipancc 2023-06-05 12:01:27 +08:00 via iPhone
害怕,这玩意真能用?跨权调用跟数据检查跟踪拦截了吗,这不就是大学课设水平
|
53
sky857412 2023-06-05 12:04:45 +08:00
这种当然选自己最熟悉的语言框架去做,不然都浪费时间在处理莫名其妙的问题上,而不是写业务逻辑。做项目不是练手,自己最熟悉什么用什么
|
55
jllove 2023-06-05 12:10:24 +08:00 via iPhone
主要还是熟悉程度吧,像 python 的 Django ,你要很熟悉的话做起来也很快
|
56
RoccoShi 2023-06-05 12:24:13 +08:00
20 小时搞这么多还不快?
|
57
wangkun025 2023-06-05 12:24:41 +08:00
Ruby on Rails 也挺快的。
|
58
urnoob 2023-06-05 12:29:02 +08:00 via Android
跟 php 之类比 出活慢
但是维护,日后扩展会灵活很多 给人做外包除非有现成模板,否则不推荐 业务类的自研系统,想长久发展 是首选 |
59
laowudxf 2023-06-05 12:52:01 +08:00
php 一行命令直接可以生成 apiController model migrate dbSeed ,真的是太快了。管理后台有强大的傻瓜式框架(比如 laravel-admin ),太强啦!
|
60
xuanbg 2023-06-05 12:54:13 +08:00
相同的条件下,各种语言其实速度都差不多了。认为 Java 慢的,估计对 Java 的认知还停留在 10 年前。
我前段时间也搞了个私活,你们以为我需要从头开始写各种功能,至少也要在空白的模版上面去写各种业务的 CRUD 。其实,我直接复制一个项目改个名字,然后改改接口 url ,改改 sql 语句就完事了。你用 PHP 又能比我快到哪里去? |
61
totoro52 2023-06-05 13:05:58 +08:00
如果你用现成的框架确实很快, 但因为 JAVA 太啰嗦了所以又显得很慢
PHP 就不同了,就拿 JSON 解析这块把,JAVA 还要导第三方包,还要挑哪个好,导入后还要看看怎么用 PHP 我 TM 直接 JSON_ENCODE 一把梭哈 |
62
totoro52 2023-06-05 13:06:52 +08:00
但对于后续维护以及迭代,PHP 就显得没有 JAVA 强了,毕竟 java 强面向对象预天生自带大项目优良体制
|
63
MengiNo 2023-06-05 13:13:27 +08:00 via Android
应该很多 Java 党完全不能理解 PHP array 的恐怖(无论是效率上还是设计上还是制造麻烦上)
|
64
MeteorCat 2023-06-05 13:17:24 +08:00 via Android
我觉得最快的是 php ,没有之一
|
65
zorui 2023-06-05 13:30:50 +08:00
ktor kotlin 折中
|
67
Biluesgakki 2023-06-05 13:53:13 +08:00
@MengiNo 哈哈哈笑死我了
|
68
vivisidea 2023-06-05 13:54:47 +08:00 1
20 个小时就搞完了?这效率在我看来很高了。。
|
69
Yest192 2023-06-05 14:01:12 +08:00
你这些东西,如果是个 php 熟练工,找个熟悉的框架模板改改,上手至少有一半功能都是现成的。
如果对方并不是必须要用 java 的,你这从 0 开始用 java 搞,说实话你们双方都挺折磨的。一方面你这人天、工期都看上去短不了,自己做的累,别人可能还嫌你速度慢价格高。 外包不是说做一个企业大项目,一般来说对方也是快速验证自己的想法,80%这种项目没太多后续。看你的描述前后端也就各一个人,还是讲究快速出货。 |
71
lizhien 2023-06-05 14:07:42 +08:00 1
我之前用 fastadmin ,代码都没写,点点按钮,一个增删改查就写好了
|
72
fatekey 2023-06-05 14:13:42 +08:00
啥出活快基本上看有无现成模板,和修改模板是否方便,从这俩角度考虑基本上 php 应该 2 小时差不多,毕竟现成的开源 php 网课商城一堆。。python 、ruby 开发速度不慢,不过感觉能抄的模板应该不会太多。。
|
73
taine221 2023-06-05 14:44:34 +08:00
还是看熟悉我觉得
对我来说给我用 Elixir + Phoenix 比什么都快 |
75
xxmaqzas 2023-06-05 14:47:38 +08:00
为啥从 0 搭建,ruoyi 又不是不能用
|
76
xiaoliu926 2023-06-05 14:54:02 +08:00
我目前就负责一套公司的系统:前端 vue +app 端 flutter+后端 java ,还好。java 复杂是负责,一旦做好后的后期维护和后续开发是非常简单高效的。
|
77
xiaoliu926 2023-06-05 14:54:35 +08:00
负责--->复杂
|
78
elevioux 2023-06-05 15:05:28 +08:00
20 小时好快啊。我用 php 原生写一个可能都没这么快。
|
79
8355 2023-06-05 15:05:37 +08:00
这么说吧. java 的文件数几倍于 php
你的那些 MyBatis xml 想想就头大. 如果是几乎没有复用和代码规范就是日抛月抛型项目无论啥都干不过 php 1 楼说的一小时就是真实时间 假如有开源项目 cms 之类的有现成的能完美满足需求 就是批量改名的时间. 购买个虚拟主机 直接 ftp 拉下代码 做下引导数据库就完事儿了. 如果你还需要阿里云部署可以 -> 宝塔一把梭 |
80
ZSeptember 2023-06-05 15:14:04 +08:00
看框架,看框架齐全,Java 也可以很快,直接代码生成,从 CRUD 到 UI 。
|
81
hzzhzzdogee 2023-06-05 15:51:07 +08:00
我认为这种项目快不快
一是看有没有模板能直接套上去用 二是看人快不快, 和语言以及技术栈关系不大 |
82
james2013 2023-06-05 16:00:11 +08:00
说 java 很慢的,估计不怎么用 spring boot 吧?
spring boot 开发速度飞快,普通的 CRUD ,建好表,用插件一键生成了。 mysql,redis,日志等配置起来便捷,有成熟的各种框架 我用 python flask 框架开发过后端接口,速度慢,又恶心,还不好维护 |
83
nothingistrue 2023-06-05 16:03:35 +08:00
别急,客户还没正式提需求呢。如果客户后面不再提需求了,那八成这东西他们就没打算真正用。真要用得话,光跟 app 和前端的接口对接,就不是 20 个小时能做完的。
至于比较,毫无意义。因为你这是严格前后端分离的架构,php 、python 、ruby ,都是面向全栈架构的,压根就做不了(也不是做不了,只不过做起来坑非常多)。事实上来说,如果是全栈开发,Java 就是超级慢。 |
84
zhangxiuyan 2023-06-05 16:10:45 +08:00 1
选课+学习是包含线上学习的?简单商场包含下单和各种支付、发货的吗?包含的话如果没借鉴开源项目你这已经快的飞起了吧
也可能是我太慢了🐶 |
85
UIXX 2023-06-05 16:31:29 +08:00
#1 说的一点都不过分。
0X 年的时候帮人定制 CMS ,用的就是 php 服务全家桶,先租用 Linux 裸机,然后 Apache/Nginx + PHP + CMS 框架,库表设计完后 ORM ,改改功能插件、改改 css 、改改 banner ,1-2 小时做完 BS 两端。现在的话,应该有更好用的整合包了。 ———————————————————————————— 如果是裸写,20 个小时算不算快不好评估,毕竟能用跟好用是两种不同级别的工程。 |
86
WindProtect 2023-06-05 16:39:08 +08:00
@james2013 我主业 spring boot ,但是,我还是觉得小项目 ruby on rails 快得一批。
|
87
xmt328 2023-06-05 16:48:33 +08:00
自己熟悉的语言和框架,少踩坑就是快
|
88
Courstick 2023-06-05 17:17:16 +08:00
这么说吧 最近接的一个私活 用的 Django drf 一个接口连筛选鉴权只要六行
|
91
zhouquanbest 2023-06-05 17:51:19 +08:00
试试把 Java 换成 Kotlin 就挺快了
|
92
streamrx 2023-06-05 18:26:38 +08:00 via iPhone
你写东西真快
|
93
zy445566 2023-06-05 20:28:50 +08:00
```js
http.createServer((req, res) => { res.end(); }).listen(3000); ``` node.js 三行代码🐶 |
94
456789 2023-06-05 20:54:01 +08:00
java 墨迹 php 是真的快
|
95
awolf 2023-06-05 21:09:13 +08:00
自己觉得快就行,要横向比较,没底(因为大家手头的脚手架不同)
|
96
kingjpa 2023-06-05 21:55:59 +08:00
只要记住一点, 在 web 开发,任何时候,任何语言,和 php 比效率都是垃圾,无论怎么吹。
|
97
nmap 2023-06-05 23:15:50 +08:00
啥私活需要这么紧急啊? 24 小时跟 48 小时有本质区别吗?我感觉一味追求极限速度就是伪需求!
|
98
harrozze 2023-06-05 23:38:09 +08:00
我觉得……标题是不是取错了? nodejs 做这种项目也用不了这么久时间。所谓的出活快,无非是两个因素:对语言和框架的熟悉,和类似的项目刚好最近做过。CRUD 用 20 小时真不算快
|
99
wanguorui123 2023-06-05 23:43:35 +08:00 via iPhone
有比较完善的脚手架和生成器大多数语言开发都比较快,设计需求才是比较慢的环节
|
100
IvanLi127 2023-06-05 23:44:16 +08:00 via Android
你除非把详细设计或者代码发出来,不然按你说的这个,快的做法和慢的做法都有。。。这项目太小了,理解有点差异都非常影响估时
|