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

中大型业务项目使用 ts 开发怎么样?是装逼吗?大家说说看法?

  •  
  •   rookie2luochao ·
    rookie-luochao · 6 天前 · 3270 次点击

    我刚来现在公司的时候,到处是 3000 行,4000 行的 vue + js 文件,基本上随便增减个小功能,直接吐血,各种解构语法操作, { ...obj, ...obj2, ...obj3 }, 其中 obj obj2 obj3 还有相同的 key 冲突,然后你安排一直在这里的前端老员工去改,他直接说改不动,不要安排他,what ???你是核心开发者,你改不动?喊新来的,更不愿意改,基本上大多数都是我去改。哪有这么好的事情?天天自己用 js 写新项目?要他写 ts 更不愿意写,使劲抱怨,就差拿屠龙刀砍我了

    后面开新项目,我慢慢带组成员用 ts 开发项目, 虽然初期抱怨不断,eslint 太严格了,tsc 过不了啪啦啪啦的, 反正就是使劲喷,但是经历 2 个月后 ts 开发慢慢习惯后,他们说真香,改别人写的代码好像也改的动了

    要后端把 apifox + apifox idea 用了起来,然后我维护了一个兼容 apifox 的解析 swagger/openapi 插件,它支持 axios, fetch, uni.request, taro.request 等等常见客户端

    如果你也用 apifox, 或者 swagger/openapi 规范文档,你可以试试这个插件 openapi-ts-request

    大家说说看法? 中大型业务项目用 ts 开发好,还是 js 开发好? 真的是我太装逼了吗?

    ps:昨天帖子发出去就被关小黑屋了😭

    55 条回复
    dcsuibian
        1
    dcsuibian  
       6 天前
    看看现在的风气就知道了,以前开源项目上 ts 是新闻,现在开源项目不用 ts 是新闻。
    CodeCodeStudy
        2
    CodeCodeStudy  
       6 天前   ❤️ 1
    肯定是 ts 好,小型项目都可以用,能加类型就加类型,对程序员和 IDE 都好,eslint 弄宽松点
    bzw875
        3
    bzw875  
       6 天前
    村通网了吗,2420 年还用 js 开发应该是老旧的国企,日企 JS 仙人。
    superhuai11
        4
    superhuai11  
       6 天前
    目前没有动力去使用 TS ,不知道是不是因为项目大小的问题。大概是觉得 “有水平的人写 JS 也能比较优雅”
    wusheng0
        5
    wusheng0  
       6 天前 via Android   ❤️ 33
    标题引战,正文夹带私货,差不多得了。

    要讨论就好好讨论,讲故事就讲故事,推广就放推广区
    rookie2luochao
        6
    rookie2luochao  
    OP
       6 天前
    @CodeCodeStudy 对,用 ts 很关键一环就是 eslint 的规则策略,这真是个学问,确实要适当,领导还要我在 lint-staged 加上 tsc, 加这个功能 tsc 还不支持,tsc 命令行编译支持的配置参数很少,对别名那些都解析不了
    rookie2luochao
        7
    rookie2luochao  
    OP
       6 天前
    @wusheng0 都是屌丝程序员,又不赚钱,纯免费,没必要这么大敌意,又不赚你一分一毫,看看大家说法有何不可,你要喷我可不惯着你
    chuck1in
        8
    chuck1in  
       6 天前
    我以前经常用 ts 但是后来不咋用了。我主要觉得看类型特别累人。
    rookie2luochao
        9
    rookie2luochao  
    OP
       6 天前
    @wusheng0 你要喷可以去我 github 主页加我邮箱,欢迎对喷,我就看不惯你们这些阴阳怪气的,你自己也可以发,你也可以不评论,我怎么样,关你什么,吃你家大米饭,喝你家粥了?
    rookie2luochao
        10
    rookie2luochao  
    OP
       6 天前
    @superhuai11 很多著名开源库都是 js ,代码很优雅,js 和用的人有很大关系,以过往经验看,js 项目确实维护难度很高
    zy0829
        11
    zy0829  
       6 天前   ❤️ 2
    vue+ts 真的有点怪怪的 不如 react 来的自然
    HTML001
        12
    HTML001  
       6 天前   ❤️ 1
    TS 与"田园式敏捷开发"很难兼容,而且做多了类型体操,换一个新人维护,会很难受
    chendy
        13
    chendy  
       6 天前
    技术都是按需用的,要看具体的业务复杂度和人员能力
    业务不复杂 JS 也能 hold 住,人员能力不行用 TS 最后也是飞 any

    顺便吐槽一下,全文没见别人说你装逼,就你自己觉得你装逼
    然后推广太硬了,真的太硬了
    Opportunity
        14
    Opportunity  
       6 天前   ❤️ 1
    现在 node 原生支持 ts 了,我连 3 行的脚本都用 ts 写
    rookie2luochao
        15
    rookie2luochao  
    OP
       6 天前
    @zy0829 我用起来也是如此感受,很别扭,那个 defineProps 定义时使用的 ts 类型也很奇怪,react 其实心智负担也大,奈何别人就是 ast 体验好很多,react 要是能做好优化不让用户担心性能就好了,最好 uniapp 也支持 react😭
    HTML001
        16
    HTML001  
       6 天前
    @superhuai11 认同,水平不够还写 TS 的话,写出来真的是一坨
    zhangeric
        17
    zhangeric  
       6 天前   ❤️ 1
    软文吧.还是引战的软文.
    JohnnyGO
        18
    JohnnyGO  
       6 天前
    是的,OP 太装逼了
    rookie2luochao
        19
    rookie2luochao  
    OP
       6 天前
    @Opportunity node 核心开发们越来越活跃,更新频率很高,很牛逼,3 行代码看得出你对 ts 也是真爱
    Ocyss
        20
    Ocyss  
       6 天前
    ts 的类型定义还是挺好用的, 能做到很多约束, 类型体操玩过一遍基本上就熟练了. 我写自己项目就喜欢用类型体操, 直接类型约束一个结构对象 https://github.com/Ocyss/boos-helper/blob/master/src/hooks/useModel/type.ts
    rookie2luochao
        21
    rookie2luochao  
    OP
       6 天前
    @zhangeric 我的错,我道歉,但是首页引战的讨论也不少?
    xu455255849
        22
    xu455255849  
       6 天前
    如果你是团队开发,建议上
    如果你是个人开发,随意
    rookie2luochao
        23
    rookie2luochao  
    OP
       6 天前
    @JohnnyGO 确实被这样喷了,所以,心里不得劲,找个途径排解下
    rookie2luochao
        24
    rookie2luochao  
    OP
       6 天前
    @JohnnyGO 顺便看看对于 ts 开发业务项目这个问题的想法,我留意 v 站很久也没有发现该问题讨论
    LandCruiser
        25
    LandCruiser  
       6 天前
    太年轻了,把公司项目维护好,代码写得好,对老员工有什么好处?不还是该下班就下班,该加班就加班,该拿多少钱拿多少钱吗?还是说用 TS 就能涨工资,或者跳槽涨薪?都不能呀,没有意义
    lisxour
        26
    lisxour  
       6 天前
    想把 js 玩好,那不也是成吨的 jsdoc 类型注解,没有 jsdoc 的 js 代码那不就等于是全程 any 的 ts 代码,调试全靠 console.log ,ts 主要问题是在编译上,不是类型上
    horizon
        27
    horizon  
       6 天前
    现在不用 ts 我不会写代码
    liaohongxing
        28
    liaohongxing  
       6 天前
    项目全 ts 类型标注。
    rookie2luochao
        29
    rookie2luochao  
    OP
       6 天前
    @dcsuibian 对,如果说引战的喷子,不妨看看为啥那些框架开发者要发不再使用 ts 的新闻,写个 changelog 不行吗?我觉得喷子大可以去喷这些巨佬
    hucw21750
        30
    hucw21750  
       6 天前
    我只用在对接后端 API ,以及通用的组件中。我们后端也是用 Java Swagger 标注 API ,我写了个 python 脚本,要开发或维护时通过 Api Tag 抓取 Api 文档数据,然后反向转换为前端 TS 的 Api 及 Model 文件,Api 文件里面的方法明确标注返回或请求提交的 Model ,请求时候默认转换 Model 实例。这样做好处很多:Api 统一管理、基本避免后端返回 NUll 导致空白页、字段提示、类型校验、在 Model 中抽象业务处理等等。其它地方开发不强求 ts 。
    yangth
        31
    yangth  
       6 天前
    暂时不打算上 ts
    cssTheGreatest
        32
    cssTheGreatest  
       6 天前
    “然后你安排一直在这里的前端老员工去改,他直接说改不动,不要安排他”

    我比较好奇这个。。是我呆的公司少了吗?很少见这种工作风格哈哈
    kneo
        33
    kneo  
       6 天前 via Android
    有没有一种可能,只有你自己觉得自己装了个逼?
    sighforever
        34
    sighforever  
       6 天前
    @HTML001 写业务代码可以完全不体操的,可以把类型完全当成类型描述用,不整哪些花里胡哨的泛型啥的。那么多有类型的后端语言也没啥幺蛾子啊
    Nielsen
        35
    Nielsen  
       6 天前
    观点:
    多写点 interface 描述下 API 接口,没坏处吧。
    实在处理不好的 any 一下也没多麻烦吧。
    Orangeee
        36
    Orangeee  
       6 天前
    TS 是 JS 的超集 =》 JS 是 TS 的子集 =》 写不好 JS =》 写不好 TS
    freezebreze
        37
    freezebreze  
       6 天前
    要不怎么说留着那些老顽固有什么用,直接开了,招会 ts 的 便宜又好用
    thosai
        38
    thosai  
       6 天前
    别人我不知道,但是 OP 是装逼
    CatchXS
        39
    CatchXS  
       6 天前
    本质是还是开发规范,如果 js 开发的时候,注释、编码规范能很好的执行下去,可以不用 ts 的,ts 个人现在感觉是,强制大家遵守某一个规范,编码下限会比 js 高一些。
    cookygg
        40
    cookygg  
       6 天前
    写完 ts 再去写鸿蒙 next 就简单了
    nicholasxuu
        41
    nicholasxuu  
       6 天前
    TS 配上 copilot/cursor 就如虎添翼了,繁杂的定义 interface 交给 AI 就很快解决了。
    甚至可以考虑把 js 代码直接转成 ts 代码的。
    PaulSamuelson
        42
    PaulSamuelson  
       6 天前   ❤️ 1
    apifox 不登录不让用,卡的批爆,非常垃圾,不如 apipost
    guanzhangzhang
        43
    guanzhangzhang  
       6 天前
    python 的弱类型,项目大了多人合作并且有屎山代码下受不了,要是有个 typepython 就好了😫
    d119
        44
    d119  
       6 天前
    最近把一个后端项目用 ts 重构了,写惯了 js 说实话是很快,ts 写起来慢,确实是为了规范,为了长期好维护,但发到线上区,对比之前的运行速度,发现也比纯 js 的慢
    liubaicai
        45
    liubaicai  
       6 天前
    declare type TAny = any;
    BeforeTooLate
        46
    BeforeTooLate  
       6 天前
    你这写的到底是不是软文啊,我陷入一阵思考
    Hilalum
        47
    Hilalum  
       6 天前
    还有更装逼的,fpts
    c3de3f21
        48
    c3de3f21  
       6 天前
    以下情况满足一点无需使用
    - 1.团队有规范流程
    - 2.每个函数有入参返回注释最好是 jsdoc
    - 3.有各个函数的文档

    以下情况满足一点需要使用

    - 1.短平快后期需要修改(非重构)
    - 2.团队不愿意写文档或者团队规模较小
    - 3.无法约束团队成员随便起名字语不达意什么的
    luyinge
        49
    luyinge  
       6 天前   ❤️ 1
    下意识的看了下发贴日期。。。这都 2024 年了,这种问题有哪怕是一丁点讨论的价值么?
    a132811
        50
    a132811  
       6 天前
    @guanzhangzhang
    python3.5 以后就支持类型注解了,习惯了类型、单测后,没有它们我都不敢发代码了。

    比 ts 好一点是内置支持,不需要像 ts 一样编译成 js 。
    比 ts 差的一点是类型系统不强大,没有类型体操(某种意义上这其实算优点)
    gechang
        51
    gechang  
       6 天前
    让我改?我把 ts 全部转 js
    shui14
        52
    shui14  
       6 天前
    别搞这种贴,有价值的会直接拉黑你
    退一步讲,十年前的贴吧,人家用 backbone 妨碍到谁了,那种业务级别,那个用户量给出的迭代压力,现在有谁敢说能打,连腾讯几次挑战全部失败。软件工程系统设计很重要。第一门课,程序设计( c 语言版),你学的是程序设计不是学 c 语言。为什么别人用古老 js 写出的项目稳得不行,今天的网红们写十行 nextjs 输出十五行呢,那些地图 sdk 都这么多年没更新,稳得一批,用 sdk 写业务的反而三天两头的增笑
    TS 跟 JS 有什么关系,它就是一个约束工具,跟怎么组织怎么规划结构有毛关系,有多少人搞成了 anyscript ,稍微复杂一点的类型最后还不是单独拎出来
    JS 做大型项目不可靠是针对整个系统而言,这个问题和 php 一样,不是它的能力不行,是这门语言的设计哲学。要拿捏它需要很高能力的人,那为什么不选个工业级语言,这么多工具,那个螺丝刀顺手提那个不好吗
    dadaji
        53
    dadaji  
       5 天前 via iPhone
    团队的项目全上了,强制 eslint tsc ,禁止 any ,
    dadaji
        54
    dadaji  
       5 天前 via iPhone
    不想写 ts ?找个机会换人就好了,外面多的是人,不写 ts 就是影响我下班
    swim2sun
        55
    swim2sun  
       5 天前
    自从出了易建联的新闻后就无法正视 ts 这个缩写了 - -
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5226 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 08:30 · PVG 16:30 · LAX 00:30 · JFK 03:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.