不知道各位全栈老哥开发 app 时,后端接口用的什么语言什么框架?
不考虑微服务什么的特性,只本着这几个目标去:
目前看了一些框架,比如 SpringBoot 、Vertx 、Quarkus 、Javalin 、Jfinal 等,也简单调研了 GraphQL 、Apijson,除开 Java,对 Python 的 FastAPI 也做了尝试,始终没有找到完美答案。
老哥们都是怎么搞的?
![]() | 1 mht 2021-10-18 11:13:01 +08:00 ![]() 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 rb6221 2021-10-18 11:23:14 +08:00 如果是安卓 app 千万别用 php 很大概率会被打的 springboot 一把梭其实挺好 |
![]() | 6 slowgen 2021-10-18 11:23:52 +08:00 ![]() 我必推荐 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 ![]() 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 PRO ![]() 用 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 ![]() 技术选型是根据需求来的,没有一种架构方案适用于所有需求。 要想开发效率高,首选自己熟悉的技术栈,能接受学习成本的话再考虑自己不熟悉的技术栈。另外技术栈轮子多少也是要考虑的。 要想资源占用少,看具体要少到哪种程度,能撑到当前的主流技术,都有一些解决方案可以在一定程度上满足资源占用方面的要求,但追求极致只能去考虑一些 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 slowgen 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 PixelCode 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 后端熟悉啥就用啥啊,有什么区别的 |