经常看到有人说,做自己的项目用 php 、python 、ruby 等等或者其他的什么框架,出活贼快。想具体讨论下。
正好最近我接了一个私活,是做一个 app 的后端+一个简单的后台管理系统的后端,因为 app 和前端对方已经找到相应的人了。
有个有个朋友找到我,我就选了 Java ,因为我只会用 springboot ,选别的还得重头学。
是从 0 开始搭建一个后端服务,对方给到我的内容:
功能点包括:
我只做了一个服务,把 app 端的功能和管理平台的功能都放到这同一个服务里面。 我做的事情包括:
我做的过程中,都用了计时统计,全部弄好上线,一共花了 20 小时。(这是纯纯的动手时间,和上班那种一天 8 小时,5 小时在划水的,8 小时工作不是同一个意思。)
如果上面这些事,用 php 、python 、ruby 熟手,需要花多久时间呢?
101
xiaochong2020 2023-06-05 23:58:30 +08:00
毕竟 php 是最好的语言
|
103
jklove123bai 2023-06-06 06:42:10 +08:00
现在前后端都有低代码平台,讨论这个有啥意义吗
|
105
coetzee 2023-06-06 07:44:10 +08:00
按照你这个需求,Java 、PHP 、Ruby 、Python 出活都很快,至于哪个更快,按照熟练度来,特别是框架化之后的熟练度。至于 Golang/Node 真不如那四个更快,别尬吹了
|
106
coetzee 2023-06-06 07:47:25 +08:00 3
每次看到这种拼开发效率的都会出来 go 粉来吹,我虽然也写 go ,但是你别吹开发效率了,你的对手是其他几个业务主流语言的时候,go 在开发效率上,跟 Java 差的不是一点半点,看看这个裸露的生态和语言表达力,你凭什么跟 Java 比?当你还在拼各种 utils 的时候,Java 早就写完了,多学学现代 Java ,了解下什么叫做表达力,如果不懂,可以看看 C#和 scala ,表达力越高的语言,当你熟悉了之后,开发效率提升不是一点半点
GO 的优势永远不在开发效率上,至少跟 Java 对比的时候,尬吹 golang 的时候,注意姿势,特别是业务开发,千万别吹 golang 的开发效率 |
107
coetzee 2023-06-06 07:51:02 +08:00 1
@someday3 对,从单一功能来看。Java 不是很能打,甚至的确打不过 go ,这也是 go 粉为啥吹的原因,但是从工程整体开发来看,一个人做一个工程的时候,Java 比 go 快的不是一点半点,比 flask 这类也更快,可能 springboot 可以对线 django 一波,问题就在于,多数开发者,只是在公司承担模块功能开发的人,不担任整体性开发职责,所以没有一个完整的概念,其实如果简单功能论拼凑的话,node 和 python 都很好,但是论 web 项目整体工程化开发的话,Java 和 C#是一档,PHP/Python/Ruby 是一档,golang 一档,就这样子。
你要是能够自己控制一套工程化最佳实践的人,另说,不然的话,老实选 Java ,开发效率和执行效率都不会错 |
108
coetzee 2023-06-06 07:55:31 +08:00
@lyxeno 很快了,很多在下面评论的吹逼,再*5 都未必能做完。所以我说 springboot 熟悉之后,开发效率很快,而且比较无脑,犯错的概率也很低,组件也很成熟,如果自己上一套 Golang web 来做这套业务,最少 50 小时
|
109
yogogo 2023-06-06 08:15:53 +08:00 via Android
我有一套跟你需求一样的
|
110
milukun 2023-06-06 08:43:54 +08:00
推荐自己部署 AppWrite (开源),自带数据、用户认证、云函数、存储、日志等能力,主要的是有多端 SDK (客户端、服务器端都有),云函数也支持 java ,你一些逻辑可以部署在里面。
比如用户一注册,触发 xxx 函数,用户上传某某文件,触发 xxx 函数。 挺好用的 / |
111
milukun 2023-06-06 08:45:02 +08:00
@milukun 之前我倾向于 flask 或者 Django 快速搭建一个服务,现在基本就是在 AppWrite 里面建项目就可以了,多个项目共存
|
112
angryfish 2023-06-06 09:00:24 +08:00
积累一套自己的业务框架,新需求来啦直接就是 Controller ,service ,dao 的写业务。在这基础上用常见的高级语言,效率都是差不多的。
|
113
zachwei 2023-06-06 10:10:42 +08:00
大佬 上哪找的私活
|
114
redvoilin 2023-06-06 10:31:55 +08:00
ruby on rails 熟手的话最多几个小时吧
|
115
TyCoding 2023-06-06 10:42:42 +08:00
是不是太多人停留在几年前的 JavaWeb 阶段了?现在的 Springboot 太快了,哪还用得着配置?基本引入依赖就能用,哪个语言有 Spring 这么完整的生态?
|
116
roundgis 2023-06-06 10:53:16 +08:00
現在都精確到小時了
|
117
xiangyuecn 2023-06-06 10:55:36 +08:00
SpringBoot 最野蛮情况下,只需打包出一个 jar ,有 jdk 就能跑,内置 tomcat 自己玩(包括静态路径处理,https )
nginx 、依赖安装 这些玩意都全可以省了,一个 jar 搞定,,😂 |
118
xiangyuecn 2023-06-06 11:04:32 +08:00
@zjsxwc #29 估计是很多代码单独放到了一个文件里面的缘故吧,一个文件的几行代码,看一段逻辑点开几十个文件😂
欢迎围观我的一个 java 开源库:高性能的坐标数据、边界数据查询工具,Java 开源程序、带 http 查询接口,内存占用低( 1 秒可查 1 万个以上坐标对应的城市信息) https://github.com/xiangyuecn/AreaCity-Query-Geometry 源码直接丢在根目录裸奔,里面有个命令行文件 直接编译运行,代码全丢在一个 java 文件里面 打开阅读无文件切换压力 估计没几个人会和我一样这样写 java 程序了😅 |
119
dogfeet 2023-06-06 11:32:58 +08:00
Kotlin + Spring Boot
前面有人说 PHP 一个接口光写十分钟吧 自己平时做的 CRUD 接口,一个系列增删改查一般总共十分钟不到吧。 Flyway 定义数据库表结构 定义参数结构,通过注解做参数校验(一堆 PHP 不做这个事,有但是不多) 定义个 写 Controler ,写 Service ,MyBatis Plus 一把梭。 对了,带上 Spring Doc 注解,完事后,直接生成文档页面,还可以文档页面直接测试接口。 中间会有些手误啥的错误,强大的类型,包括 MP 都是泛型关联数据库字段,大部分错误编译期就能看的非常清楚。 参考老代码也是一目了然,类型是最权威的注释,也是最权威的代码脉络总纲。 带上测试,15-30 分钟差不多全部搞完吧。 PHP 搞数据库,绝大部分字符串拼接一把梭,搞出问题来了在哪里 Debug 个半天,看着让人想笑,一堆说自己快的人搞出有注入风险的代码。 有些搞法所谓的快,是不是真的比人快先不说,出来的东西,我是懒得维护的,后期找起来就是天书。 对了,后面部分接口想做改造,加个缓存,加个读写分离啥的,你们猜要多久,要改动多少? Kotlin 语法既强大,又简洁,还简单。建议去试试。 |
120
wizzer 2023-06-06 11:33:27 +08:00
出活快不快在于你有没有一套基础功能的框架,一些常用功能不用再浪费时间开放
比如 https://demo.budwk.com 自带了权限体系、一堆 starter 组件、API 文档生成等等; 简单的小系统分分钟搞定。 |
121
trlove 2023-06-06 12:19:24 +08:00 1
很多人说快都是从不考虑安全问题 ,数据问题,以及设计问题,后期维护程度问题,就在那说 PHP 比 java 快……如果啥也不管直接数据库查出来 直接返回给前端,那么 java 也同样可以非常快,直接 map 一把梭不就完事了。java 现在阶段写起来还慢的主要原因就是架构设计和代码规范问题带来的。如果用 PHP 做同样的规范和设计,它也快不起来
|
122
runtousa 2023-06-06 16:17:47 +08:00 via iPhone
想问一下 op ,售后的话如果出了紧急 bug ,但是你又没时间处理,这样怎么办呢
|
123
IdJoel 2023-06-06 16:21:20 +08:00
学学 PHP 吧。。。。 时间差的不是一点半点啊
|
126
miv 2023-06-06 16:26:33 +08:00 via Android
PhP 表示在座的语言都是垃圾。🤪
|
129
someonedeng 2023-06-06 16:39:33 +08:00
项目规模越大,编程语言本身的影响越小
小项目 Java 中规中矩吧,python 、php 一把梭快点 |
130
trlove 2023-06-06 18:59:55 +08:00
@IdJoel 你如果用 laravel 的 orm 框架啥的 来说明 PHP 快 那 java 同样也有很优秀的 orm 库…… mybatis plus jpa 等等 。mybatis plus 可以一键生成数据库单表对应的所有东西,jpa 如果业务简单,单表操作 使用起来更无敌。但这种算起来是生态圈子好用 而不是语言本身很犀利……单从语言本身出发,java 也可以写的很犀利很快,也可以各种炫技各种设计模式往上堆让它变复杂。而你说的那些都是属于生态圈子,java 的库只会比 PHP 多,生态圈子只会更好,这也是企业更愿意用 java 的原因。PHP java 我都会,你说的我也都用过。但吧数据从数据库查出来仅仅只是"简单完成任务而已",如果只是为了 crud ,只是为了吧数据库展示给前端,任何语言都能写的很快。如果在完成展示数据的基础上 要考虑后期维护 考虑异常封装,考虑统一数据结构返回 考虑权限 考虑数据安全 考虑并发 考虑 xss 考虑后期拓展 考虑后期是否需要分库分表 是否需要微服务 是否……等等一大堆。那你就会需要引入一大堆库和一大堆中间件,那项目做起来必然麻烦和慢,就是 PHP 它也得慢下来。现在 Java 岗位做起来觉得慢是因为很多公司不咋样,但是总觉得未来会上市 未来大赚特赚,用户多到数不清,所以在写项目的时候都是各种微服务架构 各种拓展,各种灵活。这种开发起来慢是由于架构原因带来的 并不是 java 本身的问题。
|
131
xinshoushanglu 2023-06-06 19:37:42 +08:00
php 接外包开发效率无敌,几天就出活儿,商城类模版项目也贼多
|
132
cquan 2023-06-06 20:09:36 +08:00
Java 快是因为开源项目多,php 上手才快
|
133
yueye115 2023-06-06 21:38:16 +08:00
Ruby 最快
|
134
lingalonely 2023-06-06 22:12:44 +08:00
开发小工具,Java 是弱鸡的,一旦是复杂一点的工程 Java 这套就有优势了
|
135
jack4536251 2023-06-06 23:39:25 +08:00 via Android
@jklove123bai 推荐个好用的低代码平台
|
136
jack4536251 2023-06-06 23:46:26 +08:00 via Android
@lingalonely 小公鸡用啥好?
|
137
512357301 2023-06-07 00:02:59 +08:00 via Android
先想办法精简下 Java 团队吧,人数太多了,3 个起步上不封顶,创业团队吃不消的。
你这 20 小时的活儿,而且全是中等强度(不考虑难度),实际在公司里开发,排期估计得*3 ,一周。。。,这才是真实速度 |
138
IdJoel 2023-06-07 09:43:33 +08:00
@trlove 你自己看看 mybatis plus 生成个模型需要多少配置。。。 多少代码。。。
考虑异常封装,laravel 自带 考虑统一数据结构返回,laravel 中间件 5 分钟搞定 考虑权限,laravel policy 考虑数据安全,laravel model 的 hidden , 考虑并发,这个不说了 说实话这些东西,我写个小项目都考虑,但是基本搭框架的时候半个小时全弄完了 |
139
trlove 2023-06-07 11:11:51 +08:00 1
@IdJoel 首先呢 异常封装你说自带 这就是个问题 当你引入不同的库 就会出现不同的错误异常,这是代码层面的,还有业务层面的异常,laravel 自带的就不够用了吧?另外 我不是说 PHP 做不到那些东西,我也知道 laravel 都有。我最早接触的框架还是 CI ,那时候它的设计模式就很像 java 靠拢了。你所描述的那些都是单体项目,所以会很快。java 现在 springboot 的一套东西也能完成,单体应用也能做的很快。但为什么很多公司做的慢呢 我一直提到一点是架构的问题,就是不管多小的公司 写一个项目上来就是分布式,微服务,分库分表,所以导致写起来很慢。根本原因就在于简单事情架构复杂化了。而 php 大家用它不管是工作还是接私活都是写单体项目,所以特别快就成了共识。提到 java 大家就想到复杂的架构……其实 java 也能做单体应用,也能很快的……而且我自始至终也说 php 很快,只是我的观点是 java 也可以很快……
|
140
zzzmh 2023-06-07 11:17:36 +08:00
得看项目多大,越大 java 比 php 的优势就越大,反之小项目打不过,就算只比写接口估计也难
|
142
rophie123 2023-06-15 15:06:42 +08:00
我主要写 php 的,优先使用 php 的原因是手里很多 php 项目,很多代码可以复制粘贴,出活飞起。偶尔也用 go ,java 会写安卓,最近在看 springboot 和 kotlin ,感觉也还行吧,常用的 java 库,php 也有,只写 api 的话想快也都可以快,想慢(细活)那 java 可发挥空间就大得多。出活快慢还是要看代码积累和生态,php 很单纯直接
|
143
RainCats 2023-06-16 16:00:58 +08:00
@javak 有没有可能是你工具不到位,设计好表,然后 MybatisPlus 有代码生成器,一键生成所有表的 CRUD 接口,剩下的就是根据实际需要调整一下就好了
|
144
FuryMe 2023-06-19 09:54:25 +08:00
熟手的话,Python 最快
|
145
mlbjay 2023-07-19 16:42:44 +08:00
|