V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Sponsored by
LinkedIn
2000 个不用坐班的远程好工作在召唤你 · 弹性上班不打卡,工作和生活都能拥有
2000 个不用坐班的全球远程工作,帮助 V2EX 的小伙伴开启全新的工作方式。
Promoted by LinkedIn
tanrunhao
V2EX  ›  Node.js

都 2021 年了, 还用 CoffeeScript 写新项目

  •  
  •   tanrunhao · 2021-07-12 14:51:12 +08:00 · 4186 次点击
    这是一个创建于 440 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有好几年没写 CoffeeScript, 对上一次估计是 15 年左右,整整过去了 6 年.

    今天重新拿 CoffeeScript 写小项目, 竟然发现如此丝滑.代码整齐好看, 因为是用缩进代替括号. 所以天然就有一种美感. 当然这里不是推荐大家用来起一个新项目, 毕竟埋下的坑让别人填是不道德(虽然用什么语言起的项目对于别人来说都是坑).

    https://github.com/tans/luckybot

    上面的微信抽奖机器人用 coffeescript 写的. 里面有编译后的 JavaScript 代码, 大家可以对比一下.

    Coffeescript 133 行 Javascript 158 行

    感觉整体好像没差多少行, 编译后的代码可能有一些优化. 一般个人感觉手写的 js 代码应该是 coffee 的 1.5 倍左右

    行数少, 改代码的心理压力自然就少一点. 可能以前用过 coffee 来写生产的项目, 所以这次重拾 coffee 还是很顺畅, 几乎没遇到什么坑. 虽然这门语言不怎么维护更新了, 但是写写个人项目还是很爽.

    yuuko
        1
    yuuko  
       2021-07-12 14:53:55 +08:00 via Android
    还是 ts 爽,爽就完了
    EPr2hh6LADQWqRVH
        2
    EPr2hh6LADQWqRVH  
       2021-07-12 14:58:14 +08:00
    怎么说呢,曾经我也写 coffee, 但从来不会函数调用不带括号。

    也许 coffee 最适合的场景是测试

    无论怎样,比现在的 Vue React 之流,可读性是高多了,尤其是 React, jsx, 毫无可读性可言
    tanrunhao
        3
    tanrunhao  
    OP
       2021-07-12 14:59:13 +08:00
    @yuuko ts 我实在不习惯, 年纪大学不动了. 不过现在的 js 开发体验确实友好很多, 在 vscode 上写代码有很多代码提示, 这些都是 ts 的功劳
    yuuko
        4
    yuuko  
       2021-07-12 15:04:45 +08:00 via Android
    @tanrunhao ts 其实不用学,我就没怎么学过,ts 重构引用查找之类的很爽,即使不太熟悉的项目修改心里负担也没那么大。现在 js 提示即使好了很多,但也还是残废。
    murmur
        5
    murmur  
       2021-07-12 15:13:01 +08:00
    ts 的问题是完全失去了 js 的自由,如果你写 anyscript 干嘛用 ts,喜欢强类型去做后端写 java 不更好,教科书一样的语法和配套 IDE
    tanrunhao
        6
    tanrunhao  
    OP
       2021-07-12 15:16:36 +08:00
    哈哈, 怎么都变讨论 ts 了. 我没有实操过 ts, 但是有时候确实很不喜欢类型, 甚至也不喜欢 orm 层. 比如用 mongo 的时候, 搞一个 orm, 还不如直接去用关系型数据库. 完全失去了灵活性.
    shpkng
        7
    shpkng  
       2021-07-12 16:29:13 +08:00   ❤️ 1
    歪个楼,Wechaty 这一套吃相是真的难看,文档稀烂,成天就是想让人花高价买 token
    Jirajine
        8
    Jirajine  
       2021-07-12 16:35:33 +08:00 via Android
    不喜欢静态类型是个人偏好,不喜欢类型那就完全无法理解了。
    guoliim
        9
    guoliim  
       2021-07-12 16:39:28 +08:00
    ES6 = instanceOf(CoffeeScript)
    hervey0424
        10
    hervey0424  
       2021-07-12 16:49:17 +08:00
    现在去学 CoffeeScript 算不算 49 年入国军?
    yuuko
        11
    yuuko  
       2021-07-12 16:50:14 +08:00
    @murmur 大佬,真的是无处不在,无处不杠,我喜欢
    tanrunhao
        12
    tanrunhao  
    OP
       2021-07-12 16:52:08 +08:00
    @shpkng 我不觉得,wechaty 的 token 收费是高一点,数量大应该可以找他们谈吧。 毕竟服务器硬件要成本,而且 token 可以是不同供应商啊。 当然用来做个人项目就不太合适, 我这个机器人的试用 token 过期,就找找免费 web 协议的那个能不能用。
    tanrunhao
        13
    tanrunhao  
    OP
       2021-07-12 16:53:18 +08:00
    @hervey424840 现在就不推荐学了, 我是把压箱底的玩具拿出来玩一下而已。
    shpkng
        14
    shpkng  
       2021-07-12 17:01:05 +08:00
    @tanrunhao 200 一个月叫“高一点“的话只能说有钱确实不一样。wechaty 这套开源只开源了一个调 webrtc 的库,实际上真正的微信 api 一个都没有。那套 web 的协议可以说是完全没法用,除了最简单的仅基于对话消息的功能,其他任何东西都是不能用或者不可靠的,连用户 id 都取不到
    shpkng
        15
    shpkng  
       2021-07-12 17:03:24 +08:00
    这种表面上说是开源框架,实际上开发者一定要付高额月费才能使用的,很难认同
    Immortal
        16
    Immortal  
       2021-07-12 17:07:50 +08:00
    @shpkng #15
    Wechaty 开源的是一个 Puppet 抽象层 统一了对外的 API 而已
    核心 Puppet 才是具体实现,除了微信还能对接其他 IM,但有统一的 API 接口,这才是他想开源的东西 你理解错了
    tanrunhao
        17
    tanrunhao  
    OP
       2021-07-12 17:08:38 +08:00
    @shpkng 你是不同意他们打着开源的旗号来卖 token 是这个意思吗?

    因为我观察微信的机器人市场, 要不自己硬件来模拟 ipad 和这 window 软件,这个不适合我这种新手。 要不都是花钱购买远端机器人托管服务,然后使用提供的 api 来开发。
    至于整体市场价格我不清楚,200 贵是相对其他供应商? 有没有便宜稳定的推荐一下。
    zxCoder
        18
    zxCoder  
       2021-07-12 17:10:03 +08:00
    @murmur 同意 就是瞎折腾
    IvanLi127
        19
    IvanLi127  
       2021-07-12 17:27:17 +08:00
    @murmur 失去自由就失去自由呗,你说这话是想限制别人的自由吗?
    jiyinyiyong
        20
    jiyinyiyong  
       2021-07-12 19:22:11 +08:00
    缩进好缩进好, 我来安利另一个基于缩进的 compile-to-js language 了 https://github.com/calcit-lang/calcit_runner.rs/blob/main/src/cirru/calcit-core.cirru
    impl
        21
    impl  
       2021-07-12 19:36:37 +08:00 via Android
    rails 还在用 coffee ?
    xemtof
        22
    xemtof  
       2021-07-12 22:12:10 +08:00
    @impl 现在也可以用 Webpacker 了,ES6 之后 cofee 没落了,可惜啊,很好用
    tanrunhao
        23
    tanrunhao  
    OP
       2021-07-12 22:50:13 +08:00 via Android
    coffee 的作者好几个项目都很不错 ,很有创意,只是后面发展都有更好的替代品。backbone.js underscore 的库也很好用 曾经都很火。
    msg7086
        24
    msg7086  
       2021-07-13 00:48:31 +08:00 via Android
    写惯了 Ruby 的人写 Coffee 是真的舒服,我现在都特别想用 Coffee,只是公司项目肯定要考虑别人的感受,不能用。
    atpking
        25
    atpking  
       2021-07-13 01:41:12 +08:00
    @impl rails 现在官方是推荐 es, 把 webpack 封装了下 搞了个免配置的 webpacker
    towry
        26
    towry  
       2021-07-13 08:43:36 +08:00
    看着好难受,感觉积木要塌的样子
    apeople
        27
    apeople  
       2021-07-13 10:26:13 +08:00
    不觉得这代码有什么可读性
    7075
        28
    7075  
       2021-07-13 10:59:41 +08:00
    ts 是大势所趋
    tanrunhao
        29
    tanrunhao  
    OP
       2021-07-20 20:19:15 +08:00 via Android
    又用 coffee 写了个机器人,也是 100 行左右。
    虽然是淘汰技术,不过感觉就是自己的小玩具,写这种小玩意起来得心应手
    https://v2ex.com/t/790651#reply4
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2487 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 152ms · UTC 11:20 · PVG 19:20 · LAX 04:20 · JFK 07:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.