不知道各位全栈老哥开发 app 时,后端接口用的什么语言什么框架?
不考虑微服务什么的特性,只本着这几个目标去:
目前看了一些框架,比如 SpringBoot 、Vertx 、Quarkus 、Javalin 、Jfinal 等,也简单调研了 GraphQL 、Apijson,除开 Java,对 Python 的 FastAPI 也做了尝试,始终没有找到完美答案。
老哥们都是怎么搞的?
1
mht 2021-10-18 11:13:01 +08:00 22
PHP
|
2
dcalsky 2021-10-18 11:13:51 +08:00
Java/Kotlin 版本的 Vertx 、SpringBoot 、Quarkus 还有 Ktor 我都折腾过,最后选择了 Vertx,最符合独立开发的要求。
(虽然最后还是全部重构转了 go |
3
MonikaCeng 2021-10-18 11:15:37 +08:00
如果只是增删改查,我一般用 thinkphp6
如果有多线程等任务,我就 SpringBoot |
4
6IbA2bj5ip3tK49j 2021-10-18 11:18:08 +08:00
springboot,中庸之选,基本任何问题都能在搜索引擎第一页找到。
|
5
janus77 2021-10-18 11:23:14 +08:00
如果是安卓 app 千万别用 php 很大概率会被打的
springboot 一把梭其实挺好 |
6
shuimugan 2021-10-18 11:23:52 +08:00 2
我必推荐 Node.js 的 directus,建好表之后 restapi 和 graphql 都有了,后台管理界面也有了,把它当底层用就行了,128MB 内存可以跑得很欢。
|
7
qq1340691923 2021-10-18 11:23:55 +08:00
flutter + gofiber
|
8
james2013 2021-10-18 11:26:47 +08:00 1
Springboot 是一个很好的选择,缺点是资源占用相对较大
不管是前期开发,还是后期扩展 前几个月我试了下 Python 的 flask 作为 1 个项目的后台框架,开发起来速度慢,还挺恶心的.从数据库拿的实体还不能直接对外提供,而且像时间格式的需要手动转,用起来挺恶心的,不像 java1 个注解就自动转了.默认是放在 1 个文件里,也不好改 |
9
blackboom 2021-10-18 11:26:55 +08:00
|
10
chendy 2021-10-18 11:27:40 +08:00
springboot 一把梭
写的时候大脑可以关机,无他,唯手熟尔 没啥量的话 256 内存其实就能跑了 |
11
peyppicp 2021-10-18 11:28:46 +08:00
就减少服务器资源占用这一条, 就用 go 吧,不缓存数据的话内存占用也就几十 M
|
12
BBCCBB 2021-10-18 11:30:02 +08:00
springboot, 如果引入的中间件不多, 其实内存也不多.
|
13
anonydmer 2021-10-18 11:34:31 +08:00
我会选择 spring boot,因为不会永远我一个人做,后面我需要找其他的小伙伴来维护;不做一锤子买卖。
已经这样工作过若干项目了。 |
14
windyboy 2021-10-18 11:44:45 +08:00
如果 java 的话 micronaut 比较好
进一步的话,最好 kotlin micronaut 但单纯讲后端的话,其实 go fiber 吧 |
15
ch2 2021-10-18 11:47:28 +08:00
减少服务器资源占用
这一条单人开发就不要考虑了,加机器就能解决的问题你还要精力去搞定,一个人哪有那么多时间? |
16
rust 2021-10-18 11:47:34 +08:00
难得见到有人推荐 GoFiber 的,不容易啊
|
17
wangkun025 2021-10-18 11:52:11 +08:00
要不要试试 rails ?
虽然对资源占用比较厉害,但开发效率高啊。 |
19
nicevar 2021-10-18 11:57:33 +08:00
我做的个人 app 还是比较多了,期间用过 Java/Python/Go 的各种框架,最终选择了 php 的 PhalApi,我都没系统学过 php,拿来就用,最大的优点就是节省时间
|
20
lerp 2021-10-18 11:58:59 +08:00 via Android 1
用 leancloud,服务器也省了
|
21
janxin 2021-10-18 12:04:07 +08:00
个人开发的时候单体应用最好,不是 Spring 一把梭么
|
22
lbp0200 2021-10-18 12:12:20 +08:00
1 、减少开发工作量——选择支持原编程的语言,例如 Ruby 、lisp,推荐 Ruby
2 、减少服务器资源占用——支持编译成二进制的语言,例如 go 、C/C++、汇编,推荐 golang 3 、少折腾——无法领会 1 和 2,是一对矛盾体,如果是 Java 出身,忍受不了 golang 的语法,可以考虑 kotlin,然后 google 一下关键字“kotlin web framework” |
23
MakHoCheung 2021-10-18 12:14:02 +08:00
Java && 服务资源占用少,那必须 QUARKUS
|
24
sciel 2021-10-18 12:25:46 +08:00
学 v 站~
|
25
libook 2021-10-18 12:29:09 +08:00 3
技术选型是根据需求来的,没有一种架构方案适用于所有需求。
要想开发效率高,首选自己熟悉的技术栈,能接受学习成本的话再考虑自己不熟悉的技术栈。另外技术栈轮子多少也是要考虑的。 要想资源占用少,看具体要少到哪种程度,能撑到当前的主流技术,都有一些解决方案可以在一定程度上满足资源占用方面的要求,但追求极致只能去考虑一些 C++、Rust 之类的方案。 技术架构都是有保质期的,因为在设计的时候仅能对需求做有限时长的预测,所以可以用自己最了解、最简单的方案来做,反正以后肯定会重构。 我做 Web 全栈比较多,后端一开始需求都比较简单,极简的用 Node.js 原生 API 几行写个服务;想预留些扩展性就加个 Koa 框架,路由多了再考虑引入路由中间件,数据库操作多了再考虑引入个 ORM 或 ODM 。 |
26
liuhan907 2021-10-18 13:20:04 +08:00
单人开发我觉得你要是不排斥微软那就用 aspnetcore 一把梭,不喜欢微软那就 Go 一把梭。我觉得还是比 Java 舒服那么一点。
|
27
semoon 2021-10-18 13:20:24 +08:00
50 万用户以下的话,jfinal 单机零优化很稳。。。
|
28
janxin 2021-10-18 13:22:25 +08:00
另外 FastAPI 确实是很省心的,不如先说下各个方案遇到的问题再来看方案。毕竟对你来说选择自己熟悉的方案更合适。
|
29
kennhuang 2021-10-18 14:04:27 +08:00 via iPhone
Strapi?
|
30
windyboy 2021-10-18 14:08:45 +08:00
哦,对
其实后端一定要开发吗? 现成的 headerless cms 不好吗? |
31
SorcererXW 2021-10-18 14:33:49 +08:00
Flutter + Go + gRPC
|
32
zoharSoul 2021-10-18 14:37:54 +08:00
减少开发工作量
减少服务器资源占用 少折腾 ----- 最适合这 3 个的是 PHP |
33
miao666 2021-10-18 15:15:31 +08:00
懂 java 肯定 springboot 吧,配置简单,开箱即用
|
34
cgpiao 2021-10-18 15:49:56 +08:00
Java 只能是 spring 吧,kotlin 的话可以 ktor 。
|
36
gaojiangouyu 2021-10-18 17:19:50 +08:00
ASP.NET Core ( Web ) + EF Core (数据库),在一些一般的场景下,这两者搭配的效率绝对完爆 java 生态了 golang 生态里面的绝大多数框架
|
38
itning 2021-10-18 17:33:40 +08:00
flutter+spring boot
|
40
shuimugan 2021-10-18 17:54:06 +08:00
@bnm965321 我一开始看介绍还以为是一个类似 phpMyAdmin 的工具,但搭起来之后才发现真香,是一个被低估的低代码框架。
|
41
clf 2021-10-18 17:58:57 +08:00
SpringBoot 基本啥都能做,啥都有解决方案。
如果要前后端代码统一用 js/ts 的话,可以用 nodejs 后端,react/react-native 前端 |
42
pengtdyd 2021-10-18 18:00:58 +08:00
如果是我自己选的话:spring cloud
如果是推荐的话:flask 如果是跨平台技术的 app 的话:nodejs 如果追求高并发的话:gin 如果想节省成本的话:serverless |
44
JasperYanky 2021-10-18 18:12:24 +08:00
django
|
45
fishDD 2021-10-18 18:15:08 +08:00
想要快,且稳定就 SpringBoot 吧,成熟的解决方案多(借用楼上,基本搜索引擎第一页都能找到答案)。缺点资源占用高,这玩意是 java 的通病啊。
|
46
binhb 2021-10-18 18:44:49 +08:00 via iPhone
typescript 前后端一把梭
|
47
ReferenceE 2021-10-18 18:46:26 +08:00 via Android
无脑 cython 吧...自己写的话一般工作量不会很大
|
48
TypeError 2021-10-18 19:10:40 +08:00
个人前台接口、页面渲染都包的话,django
单纯 http 接口:gin |
49
pigspy 2021-10-18 19:42:59 +08:00
vertx+kotlin+gradle
开发体验和开发 app 差不多 |
51
boja 2021-10-18 21:57:28 +08:00
前后端都 js/ts,是适应性最强、共享代码最直接的方式。
|
52
beginor 2021-10-18 22:26:37 +08:00 via Android
没啥特殊需求的话后端可以用 nodejs,复杂一些的话可以考虑 .net core webapi, 就算是 py 也比 java 强
|
53
ElmerZhang 2021-10-18 22:38:39 +08:00
PHP/Node.JS/Go 都能满足你的需求
|
54
horseInBlack 2021-10-18 22:38:47 +08:00
我不算全栈哈,主要是做前端的,之前做过 PHP,之后 Node.JS 也有练手的项目
感觉上个人的话还是 serverless 比较合适一点,阿里云、腾讯云,包括 uniCloud 也有阿里云和腾讯云的版本 有云数据库、云存储和云函数,基本上你网站的增删改查都足够了 语法上是 JavaScript 的语法,用起来和 Node.JS 差不多,云数据库的查询语句语法也跟 MongoDB 差不多,都是相同的 使用下来非常方便 |
55
bybyte 2021-10-18 22:42:04 +08:00
云开发,开发效率快地一 P
|
56
zxCoder 2021-10-18 22:59:00 +08:00
.net6
|
57
hdfg159 2021-10-18 23:09:20 +08:00 via Android
如果熟悉 spring boot 肯定选 spring boot 啥都有,拿来就开发一把梭,就是占用资源多,轻量级推荐 vertx,复杂起来肯定不如 spring 顺手
|
58
mywaiting 2021-10-19 00:25:55 +08:00
如果不单纯选择 Java,可以投奔 Python 用 Django,开发速度快,坑少,稳定,性能也过得去
|
59
dayeye2006199 2021-10-19 01:20:47 +08:00
firebase 把,没有比这更快的了。。都不用写后端,只用管前端就行了。
|
60
kinge 2021-10-19 02:45:14 +08:00
单人 solo 时最好的就是 php laravel 或者 ruby ror ,开发效率比 java 非常高,后端前端一把梭,两年独立开发建议
|
61
js8510 2021-10-19 03:40:04 +08:00
Python + flask/django. FastAPI 的问题是是暂时 community 不太成熟。比较有经验,有信心去 stackoverflow 自问自答的朋友可以尝试 fastAPI
|
62
huxiweng 2021-10-19 09:15:12 +08:00
ACTFramework
|
63
ArJun 2021-10-19 09:23:48 +08:00
如果为了省资源推荐 GO,开发效率也很快,1h1g 就能跑的很舒畅了
|
64
ixx 2021-10-19 09:33:07 +08:00
第三条『少折腾』那就得看你哪个用的熟了 一般来说用的越熟的越好
|
65
konakona 2021-10-19 09:56:19 +08:00
如果一定要在 java 里选的话,推荐 springboot 框架,很容易上手。
如果要选一个新的语言来扩展思维的话,我会推荐 go+go gin (开发框架)。 如果你非要很快的话,之前有个 js 基础,上 nodejs,或转投 php 怀抱用 laravel 或者 thinkphp 。 |
67
chenzheyu 2021-10-19 10:28:38 +08:00
单人开发最效率的应该是 laravel
|
68
ychost 2021-10-19 11:05:39 +08:00
建议用 node.js ,配合 serverless,然后负载均衡啥的都不用考虑了
|
69
pelloz 2021-10-19 11:09:29 +08:00
选你最熟悉的语言和框架就好,减少工作量和犯错的可能。个人 solo 开发的 app 一般很少会遇到性能瓶颈,大多数是对语言或框架理解不到位导致的 BUG 。
|
70
macha 2021-10-19 11:13:16 +08:00
nodejs 单机裸奔差不多了。连 NGINX 都不用装。
|
71
Kamiyu0087 2021-10-19 11:21:19 +08:00
我个人觉得 ktor 还蛮好用的
不过 Java 上 SpringBoot 肯定没错的 |
72
KamilZhang 2021-10-19 14:53:42 +08:00 via Android
@mht 满离😂😂😂
|
73
zzzmh 2021-10-19 15:00:48 +08:00
SpringBoot 不费劲
至于内存,首先不要的依赖就去去掉 然后用 docker 的 tomcat(限制最大内存和使用 swap) jdk8 openj9 tomcat8.5 打开 nio2 就美滋滋 |
74
superchijinpeng 2021-10-19 15:35:22 +08:00
Spring Boot
|
75
solos 2021-10-19 15:40:49 +08:00
一个人选 go 啊 选什么 java 、php
|
76
janda 2021-10-19 16:23:38 +08:00
我是做 java 开发的、但是我推荐 GO
|
77
wizzer 2021-10-19 16:33:54 +08:00
budwk-v7-mini 版本
https://gitee.com/budwk/budwk/tree/v7.x-mini/ |
78
unco020511 2021-10-19 16:52:24 +08:00
如果语言限定 java,应该 springboot 是成本最小的,资源丰富,生态良好
|
79
xuanbg 2021-10-19 16:57:49 +08:00
楼主要求除开 Java,而我用的就是 Java 。这……好吧,说正经的,用你最熟悉最成熟的技术栈才是正经。软件开发没有捷径,到头来你会发现最笨的办法才是最快的。
因为我有成熟的、完善的基础组件 /基础服务,所以我开发任何功能都只需要写几行前端和后端的业务代码就行。就这几行业务代码吧,我还都是从写过的项目里面复制过来稍微改吧改吧的,最大的工作量是把 UI 给调漂亮点。至于用什么语言,你觉得这会是一个问题吗? |
80
furlxy 2021-10-19 19:35:46 +08:00
php 或 nodejs 不更好吗
|
81
darkengine 2021-10-19 19:57:43 +08:00
@xuanbg 你理解错了,他首选就是 Java 。
|
83
ajaxfunction 2021-10-19 22:31:31 +08:00
喜欢 java 那就是 jfinal,毕竟以极速开发著称。
喜欢 php 就是 thinkPHP,外包公司的半边天 |
84
zachlhb 2021-10-20 09:06:38 +08:00 via iPhone
后端熟悉啥就用啥啊,有什么区别的
|