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

新项目采用纯 JS 技术栈还是 Go+JS?

  •  
  •   newshbb · 2023-09-27 18:39:45 +08:00 · 2744 次点击
    这是一个创建于 424 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近要开展一个新项目,犹豫选型,大家从招聘,开发效率/成本上帮忙分析一下?本项目是私有化部署类型项目,所以性能上比较不那么重要,但是可以比较一下哪个更容易部署,而且需要支持服务端 windows/linux/mac/bsd 部署。

    33 条回复    2023-09-29 15:34:51 +08:00
    Nazz
        1
    Nazz  
       2023-09-27 18:58:13 +08:00   ❤️ 2
    部署肯定是 go 更容易, 无任何依赖
    frankies
        2
    frankies  
       2023-09-27 19:12:31 +08:00
    纯 js ,好招人,还便宜 doge.
    z1645444
        3
    z1645444  
       2023-09-27 19:25:54 +08:00
    要不再描述多点?大概是做什么的项目?在哪个城市(如果预期包括远程就无所谓)?

    什么也不知道,只能说招 JS 开发者更万能,JS 全栈我在找工作的时候划到不少仅仅需要当地对应等级前端 1.5 倍工资的机会,甚至更低...不过对 web 后端模型、桌面后端(其实还是在玩浏览器,不过在优化上着重点又不太相同,难度也不小)的掌握程度和适合你们使用场景的最佳实践的掌握程度,可能会稍微失落一些。不过呢,产品的 idea 方向对了,体验棒了,甚至已经有不少客户了,那其实是运营更重要👉
    kkk9
        4
    kkk9  
       2023-09-27 19:26:07 +08:00
    私有化部署类型 - go 编译好完事了,有钱再加个商业 vm 壳 / node 还要混淆加密
    容易部署 -> go 不用装环境,编译好直接开跑 / node 安装环境
    支持服务端 windows/linux/mac/bsd 部署 - go 直接开跑/node 在部分奇怪的系统上可能存在问题


    go+js UI 直接 JS 随便,核心放在 go 里面编译好加好授权
    monster1priest
        5
    monster1priest  
       2023-09-27 19:26:53 +08:00
    项目大不大?后期维护、迭代复不复杂?

    一般来讲,python ,js 这类语言出活更快,但是考虑后期维护成本,就不一定了。
    BugCry
        6
    BugCry  
       2023-09-27 19:27:31 +08:00 via Android
    强类型写业务写到崩溃,还是 JS 一把梭吧
    newshbb
        7
    newshbb  
    OP
       2023-09-27 19:28:21 +08:00
    @kkk9 是的,我也倾向于 go+js ,部署很重要,对我们项目,毕竟要面向千奇百怪的自部署客户
    newshbb
        8
    newshbb  
    OP
       2023-09-27 19:29:02 +08:00
    @monster1priest 开源项目,持续迭代
    newshbb
        9
    newshbb  
    OP
       2023-09-27 19:29:28 +08:00
    @BugCry 算不上业务型项目
    newshbb
        10
    newshbb  
    OP
       2023-09-27 19:30:27 +08:00
    @z1645444 的确是远程,堡垒机那种类型的项目
    rccoder
        11
    rccoder  
       2023-09-27 19:31:10 +08:00
    没啥区别,主要还是看你招的到是咋样的人
    monster1priest
        12
    monster1priest  
       2023-09-27 19:34:56 +08:00
    感觉 go+js 好一些,部署考虑 docker 吗?
    kkk9
        13
    kkk9  
       2023-09-27 19:36:21 +08:00
    @BugCry #6 不会吧,规范的原型图,规范的代码,不应崩溃 😂 基本的 struct 那些都可以自动生成了
    pengtdyd
        14
    pengtdyd  
       2023-09-27 19:42:25 +08:00
    纯 js +1
    zhuangzhuang1988
        15
    zhuangzhuang1988  
       2023-09-27 19:51:36 +08:00
    熟悉哪个用哪个。
    jones2000
        16
    jones2000  
       2023-09-28 00:54:40 +08:00
    后台 java 前端 js
    bianhui
        17
    bianhui  
       2023-09-28 08:05:41 +08:00
    @monster1priest 维护也是 js 更快。至于规范不规范,啥语言都能写出不规范代码
    bianhui
        18
    bianhui  
       2023-09-28 08:08:46 +08:00
    肯定是 js 一把搜哈。那些说装环境的。装环境能花都少时间,一个脚本一小时能安装 100 台。go 一小时可能连 sturt 都定义不完
    hamsterbase
        19
    hamsterbase  
       2023-09-28 08:34:00 +08:00   ❤️ 1
    纯 js , 我说一下好处

    拿我的项目举例子 https://hamsterbase.com/

    1. 利用 react native nodejs mobile , 你甚至可以把 nodejs 项目部署到 iOS 和 安卓上。

    https://github.com/nodejs-mobile/nodejs-mobile-react-native


    2. 利用 trpc , 你可以在前后端共享同一套类型。 无需编写 API , 直接利用 rpc 通信。

    https://trpc.io/docs/server/routers
    Gota
        20
    Gota  
       2023-09-28 08:47:32 +08:00 via iPhone
    给的信息太少了。如果整个项目就一个进程,没有任何外部依赖,那用 go 确实可以只输出一个包含前端资源的可执行文件,方便部署。但如果有数据库之类的外部依赖,那就简化不了多少了。

    从开发效率上讲还是推荐起步用 Node ,从 https://create.t3.gg 生成一套模版就能开始写业务了。
    YassoWithSpeaker
        21
    YassoWithSpeaker  
       2023-09-28 09:06:36 +08:00
    必须 java+js 啊,
    version
        22
    version  
       2023-09-28 09:30:30 +08:00
    混合就够了..K8S 分发直接 go sdk 对接..或者一些云服务..docker 对接 go 也蛮多的.
    其它 nodejs 或者 deno 一样无缝切换..
    再不济可以用上 wasm
    xingjue
        23
    xingjue  
       2023-09-28 09:35:58 +08:00
    部署肯定是 go 更容易, 无任何依赖
    guochao
        24
    guochao  
       2023-09-28 10:12:00 +08:00
    部署:
    > 需要支持服务端 windows/linux/mac/bsd 部署
    如果你能搞定不同端 go 的 CI (构建、测试),go 的评分会略微高一些,否则脚本类会好一些。

    其他因素:
    评分的构成还有你具体的业务,以及你所在的地区不同语言找到能用的人的难易度
    mmdsun
        25
    mmdsun  
       2023-09-28 12:29:20 +08:00 via iPhone
    纯 js 。
    或者选 Java+JS

    不需要 docker 。
    java -jar 运行一切,数据库都打包 jar 进去,选 Mysql Embedded 这种数据库。
    静态资源直接放 spring boot resource 目录,nginx 都省了。
    整个项目前端后端数据库只有一个 jar 文件。
    newshbb
        26
    newshbb  
    OP
       2023-09-28 13:09:06 +08:00
    @Gota 这个 t3 诱惑满满
    newshbb
        27
    newshbb  
    OP
       2023-09-28 13:38:22 +08:00
    @Gota 与 nuxt 比呢?
    Gota
        28
    Gota  
       2023-09-28 13:48:07 +08:00
    @newshbb Nuxt 算是 Vue 生态下的 Next.js 平替? 前端我只用过 React, 对 Vue 生态不太熟悉, 如果和 Next.js 功能一样自然没啥问题, 就是不清楚有没有 T3 这样的模板帮忙做整合.

    看了下你新帖的说明, 总控端用 T3 那套足够了, Agent 推荐用 Go, 自带交叉编译能省不少事.
    newshbb
        29
    newshbb  
    OP
       2023-09-28 13:55:04 +08:00
    @Gota 对,agent 是 go 无异议了
    ccc1924
        30
    ccc1924  
       2023-09-28 16:57:28 +08:00
    agent 已经选 go 了,服务端以 go 为主感觉会更合适

    另外部署一般不会很复杂吧,go ,js 都有很成熟的打包方案
    newshbb
        31
    newshbb  
    OP
       2023-09-29 14:38:37 +08:00
    @Gota 接活不?
    Gota
        32
    Gota  
       2023-09-29 14:55:09 +08:00 via iPhone
    @newshbb 现在在外面,微信发我,晚上聊聊看。
    newshbb
        33
    newshbb  
    OP
       2023-09-29 15:34:51 +08:00
    @Gota 那个帖子留了邮箱
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   974 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 107ms · UTC 19:18 · PVG 03:18 · LAX 11:18 · JFK 14:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.