最新感悟,全栈开发不如共栈开发,省时省力效率高

2021-08-26 12:13:12 +08:00
 niubee1
最近搞了几个 App,因为要跨平台就用了 Flutter,但是服务端语言还是用 Java 啊,PHP 啊,Python 啊,NodeJS 啊这些开发的话,每次切换的时候大脑都会宕机一段时间,所以一咬牙干脆用 Dart 直接写服务端,结果感觉还不错,AOT 编译后执行效率大约等于 Golang,开发的时候写起来和 Python 一样快,部署也跟 Go 一样方便,编译完了直接丢服务器上就能跑,并且由于和 Flutter 共用了语言,输入输出的模型类,大部分的 utilities 公共代码都可以共用。加起来减少了 1/3 的工作量。
9130 次点击
所在节点    程序员
70 条回复
cjh1095358798
2021-08-28 11:35:50 +08:00
所以为啥用 flutter, 用 js 不好吗
enlight
2021-08-29 09:35:37 +08:00
@cjh1095358798 赞同,App 直接用 React Native,网站 React,后端 Nest.js ,桌面 Electron,爽歪歪。Dart 缺的库太多了
fakeshadow
2021-08-29 14:27:53 +08:00
你这么干感觉是 js 全栈的低配版
Dganzh
2021-08-29 14:50:59 +08:00
想问问 dart 有啥后端框架
neoblackcap
2021-08-29 15:15:14 +08:00
@missdeer C++写跨平台问题不大,很多大公司都是这样干的,共用的逻辑用平台无关的 C++写。UI 用对应的平台 API 重新实现一个
mxT52CRuqR6o5
2021-11-23 18:25:07 +08:00
@loolac
如果是 dart 的话,dart 官方是这么说的
https://dart.dev/faq#q-which-is-faster--aot--or-jit-compiled-code
JIT-compiled code is slower at startup, but it can have better peak performance after it runs long enough for runtime optimizations to be applied.
https://github.com/dart-lang/sdk/issues/39367
github issue 拿泛型举例说明 AOT 慢的 case (难道这就是 golang 之前不愿意做泛型的原因?)
loolac
2021-11-24 00:23:33 +08:00
@mxT52CRuqR6o5 这样看上去,Dart 的 aot 都不如 java 。泛型应该不是问题,没做过泛型相关的。但是泛型应该在编译时都处理为具体的类型了。对性能影响应该不会很大。
niubee1
2021-11-24 09:28:43 +08:00
@loolac 但是实测 AOT 并不比 Java 慢,也许是我的用例太窄,没有覆盖到恰好性能瓶颈的地方
mxT52CRuqR6o5
2022-03-01 19:09:54 +08:00
@niubee1
@loolac
我想到一个极端的例子,比如 JS ,强行去做 AOT 性能一定是没有 JIT 好的,动态性越强的语言越需要 JIT ,像.net 的 AOT 也是很难产
dart 自述说 JIT 更快我猜是可能是和 dartvm 设计有关,dart 是可以编译成的高效 js 的(编译结果不会有太多抽象层),dartvm 为了实现这个目的设计应该是很贴合 js
mxT52CRuqR6o5
2022-03-01 20:35:05 +08:00
@niubee1
我这边发现字节开源的 modern.js 框架可以比共栈开发更进一步,直接在前端代码中 import 后端的函数,调用时能自动转换成 HTTP 请求
https://modernjs.dev/docs/guides/features/server-side/bff/function

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/798115

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX