1
cubecube 2019-07-04 18:29:26 +08:00 via Android 5
何必为难自己
|
2
Oktfolio 2019-07-04 18:55:57 +08:00
Koa2 MongoDB Express MySQL
|
3
ruyuejun 2019-07-04 18:56:01 +08:00 3
后端开发相较于前端来说,并不受语言本身的制约,顶多会因为该语言的生态而使开发变得困难抑或简单。
所以我个人认为更合理的提问应该是后端的技术栈包含什么,这个问题的答案处处皆是。 楼主也有可能问的是类似:TypeScript 在后端开发场景中有哪些常见框架与技术? 这就很难回答了,换做 Java,立刻能回答出:SSM,Springboot,Netty。 TS 目前在并不能作为一个独立意义的语言,最终仍然被编译为 JS,也即题目的最终结果变成了 NodeJS 在后端开发中,有哪些技术栈? 答案: express,koa,egg,nest,midway, 他们都可以使用 ts 进行开发并编译为 js,但是 nest 本身基于 TS,可以直接使用 TS 开发; 最后可以关注下 deno,内置了 ts 的运行时,未来如果诞生基于 deno 的一系列开发框架,才算是真正意义上的 TS 技术栈 |
4
Cbdy 2019-07-04 19:05:58 +08:00
Koa,Linux,Sequelize,MySQL,Docker,Nginx,Node.js
|
5
impl 2019-07-04 19:14:49 +08:00 via Android
deno 撸起
|
6
love 2019-07-04 19:41:13 +08:00 1
用 typescript 做后端比 python/ruby/php 这种没类型检查的舒服得多,和 java 比也更轻量简单,有些人不知道在酸什么
|
7
shawndev 2019-07-04 19:44:31 +08:00
一个 nodejs 版本。
一个后端框架。koa/express 一个 web 服务器。nginx 一个数据库。mongodb/mysql |
8
Torpedo 2019-07-04 20:40:47 +08:00 1
中间件不熟悉,那还是 express 开始。
熟悉即可以 express,还能 nestjs |
9
ntop 2019-07-04 21:34:01 +08:00
写后端用 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 2019-07-05 09:55:28 +08:00
ts 有 js 的灵活,又有大型应用该有的东西,为什么很多人 diss 呢
无非是工作量不饱和罢了 |
14
yuankui OP @Torpedo 刚刚大致看了下,跟 nestjs 有点 spring-mvc 的影子。。感觉设计的还很不错,可以深入研究学习下。
|
15
ciki 2019-07-05 10:52:18 +08:00
说到协程,kotlin 了解一下
|
16
silentt 2019-07-05 12:51:44 +08:00 via iPhone
恕我直言,nodejs 搞后端就是纯垃圾,完整的事务解决方案没有,分布式领域没任何建树,v8 虚拟机和 jvm 比就是个大玩具。
|
17
yuankui OP |
18
donlxn22 2019-07-05 15:10:35 +08:00
我在微软使用 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 2019-07-05 15:12:34 +08:00
|
20
kasora 2019-07-05 17:50:48 +08:00
目前生产环境用的 egg+ts,体验还行。
|
21
coloz 2019-07-05 18:19:58 +08:00
nestjs
|