首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Coding
V2EX  ›  程序员

用 TypeScript 作为一个后端开发,需要哪些技术栈?

  •  
  •   yuankui · 161 天前 · 2730 次点击
    这是一个创建于 161 天前的主题,其中的信息可能已经有所发展或是发生改变。
    23 回复  |  直到 2019-07-05 22:14:21 +08:00
        1
    cubecube   161 天前 via Android   ♥ 5
    何必为难自己
        2
    Oktfolio   161 天前
    Koa2 MongoDB Express MySQL
        3
    ruyuejun   161 天前   ♥ 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   161 天前
    Koa,Linux,Sequelize,MySQL,Docker,Nginx,Node.js
        5
    impl   161 天前 via Android
    deno 撸起
        6
    love   161 天前   ♥ 1
    用 typescript 做后端比 python/ruby/php 这种没类型检查的舒服得多,和 java 比也更轻量简单,有些人不知道在酸什么
        7
    shawndev   161 天前
    一个 nodejs 版本。
    一个后端框架。koa/express
    一个 web 服务器。nginx
    一个数据库。mongodb/mysql
        8
    Torpedo   161 天前   ♥ 1
    中间件不熟悉,那还是 express 开始。
    熟悉即可以 express,还能 nestjs
        9
    ntop   161 天前
    写后端用 ts 太为难了,有大把好用的语言可以选,java/go/pyhton... 都不错. 用 ts 有点非主流的感觉.
        10
    yuankui   160 天前
    @ruyuejun 不要在意这些细节,你懂我就行😆
        11
    yuankui   160 天前
    @cubecube 你不懂用 Java 写个高并发,多么为难自己吗?
    协程多爽,不知道?
        12
    yuankui   160 天前
    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   160 天前
    ts 有 js 的灵活,又有大型应用该有的东西,为什么很多人 diss 呢

    无非是工作量不饱和罢了
        14
    yuankui   160 天前
    @Torpedo 刚刚大致看了下,跟 nestjs 有点 spring-mvc 的影子。。感觉设计的还很不错,可以深入研究学习下。
        15
    ciki   160 天前
    说到协程,kotlin 了解一下
        16
    silentt   160 天前 via iPhone
    恕我直言,nodejs 搞后端就是纯垃圾,完整的事务解决方案没有,分布式领域没任何建树,v8 虚拟机和 jvm 比就是个大玩具。
        18
    donlxn22   160 天前
    我在微软使用 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   160 天前
    修正:

    https://github.com/azure/azurite
    基本上这三种都有成熟的第三方库 -> 基本上前两种都有成熟的第三方库
        20
    kasora   160 天前
    目前生产环境用的 egg+ts,体验还行。
        21
    coloz   160 天前
    nestjs
        22
    silentt   160 天前 via iPhone
    @yuankui 你管这叫解决方案么
        23
    yuankui   160 天前
    @silentt 兄弟你是杠精吗?
    底层的能力都给你了,你自己不会撸吗?
    还要别人给你撸好吗?
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   973 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 28ms · UTC 21:12 · PVG 05:12 · LAX 13:12 · JFK 16:12
    ♥ Do have faith in what you're doing.