Marstin

NodeJS&&Electron 真的太好用了,推荐~!

  •  
  •   Marstin · Sep 20, 2019 · 7414 views
    This topic created in 2427 days ago, the information mentioned may be changed or developed.

    需求是一个跨平台的桌面应用程序
    技术栈 java,原计划用 swing 实现,但是实际开发起来才发现难度不是一般大,很难实现一些动态灵活的页面效 果,还需要细致地调整页面组件布局。90%的时间都浪费在写 view。这样的工作量安排大概是 60 工作日 后来经同学推荐,尝试使用 Electron,真的太舒服了,完全以前端形式来写 GUI 工具,两周 不到就做完了。
    总结一下,对于后端技术选型采用 Electron 有以下优缺点:

    优点

    1、GUI 相关模块已经封装好,可以专心写业务
    2、运行于 V8 引擎,可跨平台使用
    3、页面展示可完全使用现有的前端开发模式,有丰富的社区和资源供使用
    4、自动更新
    5、最大优点,大大减少开发周期

    缺点

    1、需要有一定的 Node 和前端知识储备
    2、由于集成的核心功能,打包后的应用很大,空项目也有 90MB 左右
    3、性能相对于 MFC 和 swing 有差距
    4、业务模块中无法直接操作 GUI (基于资源泄露问题设计)
    5、搭建开发环境过程相当复杂,从安装到开发、测试、部署,基本全靠命令行,尤其是打包工具的部分依赖包极难下载
    6、对于部署程序的系统版本有一定要求,可能会缺失相应的库,需要手动加入

    综上所述,大力推荐就完了

    36 replies    2019-10-09 13:22:49 +08:00
    Marstin
        1
    Marstin  
    OP
       Sep 20, 2019
    github 自家的 Atom 就是基于 Electron
    cmdOptionKana
        2
    cmdOptionKana  
       Sep 20, 2019
    优势确实很大,因此早已有很多厂家采用这套方案了。虽然 v2 这里很多程序员嫌“重”,但其实大部分普通用户不懂重不重。
    Marstin
        3
    Marstin  
    OP
       Sep 20, 2019
    @cmdOptionKana 客户端仙子几乎处于性能过剩时代,桌面程序“重”瑕不掩瑜
    Marstin
        4
    Marstin  
    OP
       Sep 20, 2019
    #3 现在
    misaka19000
        5
    misaka19000  
       Sep 20, 2019   ❤️ 1
    。。。仿佛来到了三年前
    Marstin
        6
    Marstin  
    OP
       Sep 20, 2019
    @misaka19000 文艺复兴
    quqiuzhu
        7
    quqiuzhu  
       Sep 20, 2019 via Android   ❤️ 4
    Windows XP 太好用了,推荐~
    memedahui
        8
    memedahui  
       Sep 20, 2019   ❤️ 2
    大清亡了.jpg
    qiutianaimeili
        9
    qiutianaimeili  
       Sep 20, 2019
    iphone4 太好用了,推荐~
    Marstin
        10
    Marstin  
    OP
       Sep 20, 2019
    呜呜呜,V2er 太严格了叭
    shuichengjian
        11
    shuichengjian  
       Sep 20, 2019
    前端路过。。。。
    反正 notion 也是用 Electron。。。
    反正大家都说 Node.JS 可以过时了。。。
    pC0oc4EbCSsJUy4W
        12
    pC0oc4EbCSsJUy4W  
       Sep 20, 2019
    缺点就是相对原生的有点卡,不过优化好的话,体验比接近原生,比 java 好很多。
    xmind 就是例子,java 的 xmind 卡得哼,Electron 的 xmind zen 非常流畅,虽然比不上原生,但是体验好了很多。
    其实不太在意安装包大小,只要不是特别夸张
    hoyixi
        13
    hoyixi  
       Sep 20, 2019   ❤️ 2
    时代变了

    当年写程序都是各种优化和节俭,生怕多耗费用户一点内存

    现在都默认用户为了用我的程序,会一拍桌子买内存
    yautou
        14
    yautou  
       Sep 20, 2019
    我们司正要放弃 Electron 重头再来。。。
    nVoxel
        15
    nVoxel  
       Sep 20, 2019 via Android
    Barcode 是不是也是基于这个结构的?
    nVoxel
        16
    nVoxel  
       Sep 20, 2019 via Android
    纠错 vscode
    damngood
        17
    damngood  
       Sep 20, 2019
    个人非常不喜欢. 对资源不友好, 不过只要目标用户能接受就好
    artandlol
        18
    artandlol  
       Sep 20, 2019 via Android
    村网通 electron-forge init 打包什么都给你做好了
    int64ago
        19
    int64ago  
       Sep 20, 2019
    这么巧,你也上网冲浪……
    Shy07
        20
    Shy07  
       Sep 20, 2019
    追求原生性能和体积的等一个 nodegui 1.0 吧
    Marstin
        21
    Marstin  
    OP
       Sep 20, 2019
    @artandlol electron-forge init 是脚手架,跨平台打包是用 electron-builder
    Marstin
        22
    Marstin  
    OP
       Sep 20, 2019
    @hoyixi 还有一个很现实的问题是现在多数用户都不太能接受桌面应用,近几年入行的,很多人可能都没做过桌面应用,都已经适应了 B/S 架构。话说你说的这个现象,最典型的是游戏吧
    @yautou 请问是基于什么原因考虑的呢?新的技术选型是?借鉴一下= =
    guokeke
        23
    guokeke  
       Sep 20, 2019
    你们不要总是打击新人的积极性,16 年的时候你们不也很激动吗?
    Marstin
        24
    Marstin  
    OP
       Sep 20, 2019
    @nVoxel 按照官方的描述,是的
    `VS Code is using the Electron framework to run on multiple platforms`
    Counter
        25
    Counter  
       Sep 20, 2019
    @misaka19000
    @quqiuzhu
    @memedahui
    @qiutianaimeili
    你们是说楼主的方案落后吗?
    顺便问下现在跨平台的桌面应用程序应该用什么方案
    memedahui
        26
    memedahui  
       Sep 20, 2019
    @Counter JAVA GUI (逃
    jon
        27
    jon  
       Sep 20, 2019
    感谢大侠的推荐
    wm5d8b
        28
    wm5d8b  
       Sep 20, 2019
    我也很好奇你们说 electron 落后的,都是用什么方案。难道人均 flutter 吗?
    ezreal
        29
    ezreal  
       Sep 20, 2019
    刚写了个聊天工具
    ShareManT
        30
    ShareManT  
       Sep 21, 2019
    @fatelight Xmind Zen 无法开结点比较多的思维导图,java 版的这点上还是要好很多。
    pC0oc4EbCSsJUy4W
        31
    pC0oc4EbCSsJUy4W  
       Sep 21, 2019
    @ShareManT 估计我轻度使用吧
    SilentDepth
        32
    SilentDepth  
       Sep 21, 2019
    「成也 Node,败也 Node 」
    run2
        33
    run2  
       Sep 21, 2019
    真的不喜欢 Electron,一堆硬件公司是缺人的么居然也用 Electron: SteelSeries, 还有 ea 的 origin (当然这个不是硬件公司—-) 真的慢、卡、低效
    g0thic
        34
    g0thic  
       Sep 21, 2019
    哇 谢谢 楼主推荐 我还在用 NW.js🐶
    2kCS5c0b0ITXE5k2
        35
    2kCS5c0b0ITXE5k2  
       Sep 22, 2019
    天翼 3g 太快拉 推荐
    v2dev
        36
    v2dev  
       Oct 9, 2019 via iPhone
    请问自动更新是全量更新还是差异更新
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3549 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 84ms · UTC 10:41 · PVG 18:41 · LAX 03:41 · JFK 06:41
    ♥ Do have faith in what you're doing.