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

想开发一个 windows 平台对标 Dash 的应用,用什么技术栈效率高

  •  3
     
  •   zhangbiao · 2022-08-13 09:24:34 +08:00 · 3366 次点击
    这是一个创建于 612 天前的主题,其中的信息可能已经有所发展或是发生改变。
    本人是 PC 用户,没有接触过 mac ,听说 mac 上的 dash 很好用,能查 API ,还能保存代码片段,然后搜了搜 windows 端的类似软件,发现都是只能专注一个方面,要么只能查 API ,要么只能保存代码片段。

    windows 端查 API 的工具有 adobe zeal 或者 devdocs ,代码片段保存工具有 masscode ,gisto ,lopton ,snipaway ,

    查 API 的工具两个都有在用,但会时不时卡死,
    保存代码片段的上述工具里面,前一个是本地存储文件,后面几个是利用的 github 的 glist ,这几个都体验了一番,最后选择了 masscode ,但是在代码片段数量多了以后,发现查询速度有点慢,还有一些其他的小 bug ,而且所有的代码片段都是放在一个 json 文件中的,安全性存疑,

    现在想自己尝试开发一个在 windows 平台对标 dash 的软件,功能上更像是整合了 devdocs(或者 zeal)+MassCode ,用什么技术栈比较好,暂时先不考虑跨平台

    当然如果大家谁有更好的替代方案,也可以分享一下
    30 条回复    2022-09-19 17:11:27 +08:00
    cmdOptionKana
        1
    cmdOptionKana  
       2022-08-13 09:38:50 +08:00   ❤️ 1
    如果想多点用户,同时节省开发时间,那必然是被 V 友们唾弃的 Electron ,其他技术栈一个能打的都没有。
    cmdOptionKana
        2
    cmdOptionKana  
       2022-08-13 09:42:38 +08:00
    如果想节省开发时间,介意内存占用,不介意用户少,可以用 Python/Go/PHP 等任何一种自己最熟悉的后端技术做网站,通过浏览器使用。
    zhangbiao
        3
    zhangbiao  
    OP
       2022-08-13 09:50:17 +08:00
    @cmdOptionKana 说实话,个人是比较抵触使用浏览器访问的,浏览器本身就是一个内存占用大户;更想要通过原生的方式构建本地客户端(能够离线使用,云盘备份)
    cmdOptionKana
        4
    cmdOptionKana  
       2022-08-13 09:58:56 +08:00   ❤️ 1
    @zhangbiao 这个涉及代码高亮,就算用所谓的原生,通常也要用 webview, 其实与用 Electron 或浏览器的差别不大。而且,只要打开电脑基本上就要打开浏览器,增加一个 tab 页而已。
    lanlanye
        5
    lanlanye  
       2022-08-13 10:56:26 +08:00   ❤️ 1
    我觉得 Dash 关键是可以配合 Alfred 使用,做成网站就没意思了
    goddoogasidivil
        6
    goddoogasidivil  
       2022-08-13 11:13:47 +08:00
    低能儿脚本怪会鼓吹你用 Electron
    Bazingal
        7
    Bazingal  
       2022-08-13 11:16:33 +08:00 via Android
    都限定 Windows 了那就 wpf 吧
    alanhe421
        8
    alanhe421  
       2022-08-13 11:27:13 +08:00 via iPhone
    @lanlanye 对,入口往往是走 Alfred keyword 。
    HappyFox
        9
    HappyFox  
       2022-08-13 11:39:17 +08:00   ❤️ 7
    @goddoogasidivil #6 @Livid 违反社区规范
    huohei
        10
    huohei  
       2022-08-13 11:47:44 +08:00 via iPhone
    不想用 electron 的话,如果限定 windows 就 wpf ,想跨平台就 flutter
    goddoogasidivil
        11
    goddoogasidivil  
       2022-08-13 11:51:57 +08:00
    @HappyFox 🐶管理召唤师出现了
    zhangbiao
        12
    zhangbiao  
    OP
       2022-08-13 11:59:26 +08:00
    刚才在闲着翻 GitHub ,发现了一个用 rust 实现的代码编辑器——lapce( https://lapce.dev),觉得可以借鉴一下设计思路,刚好自己也准备去学习一下 rust
    bigtear
        13
    bigtear  
       2022-08-13 12:00:40 +08:00
    类似的已经有了,utools (商业)/rubick (开源)的文档插件,我现在偶尔查个 API 用的就是他们商店里的 API 文档插件。
    但是开发的时候用的多的还是 Jetbrains IDE 的文档提示。
    iamzuoxinyu
        14
    iamzuoxinyu  
       2022-08-13 12:01:37 +08:00
    Zeal 我记得是开源的,但是基于 Qt + QtWebView 这个比较古早的技术架构,你不妨用 QtWebEngine 替换下。

    我个人觉得 zeal 或者 devdocs 就足够用了,甚至现在随着 lsp 的发展,vim 里一个 ctrl-k 就能解决的事情,zeal 我都不打开了;代码片段应该交给 IDE 或编辑器。
    lixinrui000
        15
    lixinrui000  
       2022-08-13 12:32:52 +08:00 via Android
    我打开 Dash 的方式一般是用集成在 alfred 中的搜索框。zeal 不支持这种搜索框,就导致我用的很少。在 Windows 上实现这种自定义的搜索窗体的话,.net 技术栈应该比较好。
    RockShake
        16
    RockShake  
       2022-08-13 13:33:40 +08:00
    主要是 Win 缺少一个类似 Alfred 的入口。uTools 里面有一个类似的插件已经能实现这个功能。
    610915518
        17
    610915518  
       2022-08-13 13:58:35 +08:00
    PySide6+QtWebEngine ,性能不错,内存占用低,还可以跨平台
    Livid
        18
    Livid  
    MOD
       2022-08-13 14:12:09 +08:00 via iPhone   ❤️ 5
    @HappyFox 谢谢。那个账号已经被彻底 ban 。
    hez2010
        19
    hez2010  
       2022-08-13 14:23:31 +08:00 via iPad
    可以试试 Avalonia 或者直接用 WinUI 3 ,前者跨平台后者仅 Windows ,都有支持代码高亮的原生 Markdown 组件(第三方库里),可以做到无需 web 的纯原生体验。
    wdhwg001
        20
    wdhwg001  
       2022-08-13 14:29:11 +08:00   ❤️ 2
    这个目标下,你能选择的只有 Webview 。

    因为别的不说,代码文档本身都是输出成网页的,除非你专门对每个文档做跟进解析,而这意味着补天级别的工作量。

    并且,你的优势是:你是本地文档。

    在这一点,你就赚尽了打开速度的网络优势,只要再干掉那些弱智的纯 JavaScript 索引的首次加载速度问题,用户就不会再在乎你是不是 Webview 了。
    tianyu94
        21
    tianyu94  
       2022-08-13 14:30:49 +08:00
    tauri
    Kawnnor
        22
    Kawnnor  
       2022-08-13 14:42:18 +08:00
    如果不考虑跨平台,并使用 Windows 较新的技术。推荐参考:DevToys 使用的技术栈,https://github.com/veler/DevToys
    missdeer
        23
    missdeer  
       2022-08-13 14:58:43 +08:00 via Android
    @iamzuoxinyu zeal 是用 webengine 的,而且我觉得 webengine 体验并不好。
    如果 op 限定 Windows 的话直接用 webview2 吧,就是 edge 那套
    lixinrui000
        24
    lixinrui000  
       2022-08-13 22:37:38 +08:00 via Android
    @wdhwg001 大部分框架都可以嵌入 webview 呀,我觉得关键在于与系统的交互和集成,这方面原生于 Windows 的技术栈应该更好。
    fw1314
        25
    fw1314  
       2022-08-14 01:20:17 +08:00 via iPhone
    那必定是 tauri
    secondwtq
        26
    secondwtq  
       2022-08-14 02:56:12 +08:00
    替代方案:给你所提到的那些软件提 PR 把你遇到的问题修好 ...
    我用 Linux 就时不时这么干,虽然一般不会提 PR ,因为要么就是启用一些 experimental 的功能,要么基本都是些很 dirty 的 hack

    说正经的,snippet 工具我一般不用,但是就文档这个功能来说肯定还是嵌入某种实现的 WebView 更方便,但是不一定非要全上 Electron ,因为只有文档显示需要 WebView ,软件的其他部分理论上可以完全 Web-free ( snippet 的高亮应该也可以用 native 方案解决)。
    而且在文档方面的话,我觉得文档内容和用来显示文档的壳同等重要。比如我也用 DevDocs ,但是有些东西的文档似乎是由于 license 之类的原因官方不提供,现成的文档有些也不是很方便。所以如果是想做新东西的话也可以在这方面下点功夫。
    kennir
        27
    kennir  
       2022-08-14 12:41:08 +08:00
    Flutter 3.0 支持 windows 桌面应用了,也许可以试试
    44670
        28
    44670  
       2022-08-14 17:12:28 +08:00
    文档是 HTML 形式的,所以无论如何都得嵌入浏览器。
    如果要嵌入浏览器的话,建议用 electron 之类的有人维护安全补丁的。
    zxCoder
        29
    zxCoder  
       2022-08-14 20:58:14 +08:00
    tauri
    Asimov01
        30
    Asimov01  
       2022-09-19 17:11:27 +08:00
    Windows 平台当然是 .NET 啊!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   959 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 21:14 · PVG 05:14 · LAX 14:14 · JFK 17:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.