想开发一个 windows 平台对标 Dash 的应用,用什么技术栈效率高 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
zhangbiao
V2EX    程序员

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

  zhangbiao 2022-08-13 09:24:34 +08:00 4237 次点击
这是一个创建于 1161 天前的主题,其中的信息可能已经有所发展或是发生改变。
本人是 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
PRO
   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 的技术栈应该更好。
a6MShNOj4en2EU97
    25
a6MShNOj4en2EU97  
   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     Solana     2406 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 27ms UTC 15:33 PVG 23:33 LAX 08:33 JFK 11:33
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86