1
cubecube Jul 4, 2019 via Android 何必为难自己
|
2
Oktfolio Jul 4, 2019
Koa2 MongoDB Express MySQL
|
3
ruyuejun Jul 4, 2019 后端开发相较于前端来说,并不受语言本身的制约,顶多会因为该语言的生态而使开发变得困难抑或简单。
所以我个人认为更合理的提问应该是后端的技术栈包含什么,这个问题的答案处处皆是。 楼主也有可能问的是类似:TypeScript 在后端开发场景中有哪些常见框架与技术? 这就很难回答了,换做 Java,立刻能回答出:SSM,Springboot,Netty。 TS 目前在并不能作为一个独立意义的语言,最终仍然被编译为 JS,也即题目的最终结果变成了 NodeJS 在后端开发中,有哪些技术栈? 答案: express,koa,egg,nest,midway, 他们都可以使用 ts 进行开发并编译为 js,但是 nest 本身基于 TS,可以直接使用 TS 开发; 最后可以关注下 deno,内置了 ts 的运行时,未来如果诞生基于 deno 的一系列开发框架,才算是真正意义上的 TS 技术栈 |
4
Cbdy Jul 4, 2019
Koa,Linux,Sequelize,MySQL,Docker,Nginx,Node.js
|
5
impl Jul 4, 2019 via Android
deno 撸起
|
6
love Jul 4, 2019 用 typescript 做后端比 python/ruby/php 这种没类型检查的舒服得多,和 java 比也更轻量简单,有些人不知道在酸什么
|
7
shawndev Jul 4, 2019
一个 nodejs 版本。
一个后端框架。koa/express 一个 web 服务器。nginx 一个数据库。mongodb/mysql |
8
Torpedo Jul 4, 2019 中间件不熟悉,那还是 express 开始。
熟悉即可以 express,还能 nestjs |
9
ntop Jul 4, 2019
写后端用 ts 太为难了,有大把好用的语言可以选,java/go/pyhton... 都不错. 用 ts 有点非主流的感觉.
|
12
yuankui OP Java:netty 虽然能写出高并发的网络程序,但是始终不如协程这种顺序编码范式可读性好。
Go:他的语法,错误处理,类型系统设计的不是很符合我个人的审美标准,用着难受。。虽然协程写起来很爽 python:好几次放弃是因为集合处理不太符合我的审美,依我看,scala 那种的集合框架设计得是最优雅的。比如要把一个 list<object>转成 map<id, object>,java-stream 就能很好,顺畅,不打嗝的完成,scala 更不用说。 dart:我觉得还是有一线希望的。毕竟他就是 Java+协程的结合体。如果自省能整好一点,写个跟 spring-boot 类似的框架,不会太难。 js/ts:协程整的很爽啊,事件循环机制,ts 包装下的 js,更加符合 java 的审美,又有类型系统,代码提示,编译时错误检测也更加智能。而且,在能保证安全的前提下,可以放弃类型检测。( dart 应该是从这里学来的?还是 obj-c ?) php ??是最好的语言,不想解释,反正我不用。 欢迎指正。 |
13
ericgui Jul 5, 2019
ts 有 js 的灵活,又有大型应用该有的东西,为什么很多人 diss 呢
无非是工作量不饱和罢了 |
15
ciki Jul 5, 2019
说到协程,kotlin 了解一下
|
16
silentt Jul 5, 2019 via iPhone
恕我直言,nodejs 搞后端就是纯垃圾,完整的事务解决方案没有,分布式领域没任何建树,v8 虚拟机和 jvm 比就是个大玩具。
|
17
yuankui OP |
18
donlxn22 Jul 5, 2019
我在微软使用 TypeScript 开发了 Azure Storage JS SDK,SDK 可以在前端浏览器环境中使用,或者后端 Node.js 使用。
说实话,一旦开始使用 TS,就很难再回到 JS。尤其是需要多人协作的大型项目。无论 JS 前端还是 Node.js 后端,TS 可以避开很多 JS 的坑。比如 TS 编译可以选择输出的 ECMA 版本,以及输出的 JS 模块规范。结合 Visual Studio Code 对 TS 完美支持,开发过程还是很不错的。 我现在正在做一个基于 Node.js 的轻量化开源的 Azure Storage 实现[Azurite]( https://github.com/azure/azurite),使用 TypeScript。线上的 Azure Storage 对象存储服务是一个典型的分布式系统,而 Azurite 第一个 preview 版本则是 Node.js 典型单进程架构,但得益于 Node.js 高效的 IO 性能,测试中数据上传下载最高可以到达 250MB/s,此时单核 CPU 已经被吃满。 由于整个系统的瓶颈在于 CPU,现在正在做分布式化的探索,但可能会遇到不同节点的竞争问题,比如同时访问并修改同一个 blob 的属性。现在初步预计的方向有三种,1) 分布式锁 2) 数据库事务 3) 通过优化数据结构避免竞争。基本上这三种都有成熟的第三方库。有兴趣的同学可以一起讨论或贡献代码。 |
19
donlxn22 Jul 5, 2019
|
20
kasora Jul 5, 2019
目前生产环境用的 egg+ts,体验还行。
|
21
coloz Jul 5, 2019
nestjs
|