fanchenio / DawnLauncher

Windows快捷启动工具,帮助您整理杂乱无章的桌面,分门别类管理您的桌面快捷方式,让您的桌面保持干净整洁。
https://dawnlauncher.com/
MIT License
572 stars 42 forks source link

作者接受重构型的pr吗 #23

Closed darkskygit closed 1 month ago

darkskygit commented 10 months ago

很高兴看到这个app开源,这是我很久以来一直想写但懒得去写的一类软件 此前我一直在使用相当老版本的一个rolan,昨天忽然发现只要它开着,我的核显就会有持续性的memory copy性能,让我的笔记本耗电增加了不少,实在不能忍了,于是花了半天翻找类似的软件,最后发现了该仓库

我编译并试用了软件,感觉使用体验上挺不错,不过我认为有一些可以改进的点,例如:

  1. rust包虽然使用了napi,但是采用手动require的方式使用,import进来是没有类型的
  2. 虽然使用了rust,但数据层仍然以过程式编程的方式写在js端,需要增加额外的依赖处理
  3. 大量的ipc调用类型都是手写的
  4. 缺少自动化测试

目前我在我的分支里已经做了初步的调整,主要是将仓库调整为monorepo,并将读取数据源逻辑先迁移到rust端,之后会把所有数据逻辑都弄到rust里:https://github.com/darkskygit/DawnLauncher

如果作者愿意接受重构型pr,我会将改动拆分为几个中型pr分批发过来

fanchenio commented 10 months ago

首先非常感谢,Rust我这面只做一些native的操作,调用Windows API,关于其余的逻辑我还是倾向于JS写,关于类型这块,因为我是第一次接触TS,可能有些地方还是没搞懂吧,我本身是Java开发,对前端的一些技术栈都是比较浅的理解,如果在不改变大的架构的情况下进行PR我是很乐意的,有时间我就会进行合并,因为最近比较忙,项目也就很久没更新了。

darkskygit commented 10 months ago

迁移monorepo的pr已经发了:#24 改为monorepo是使typescript能自动加载addon类型的最简单的方法,因为napi生成的类型定义和配置是为发布成包而设计的 将仓库改为monorepo之后就可以直接配置为自动加载了,打包时也不需要自己处理插件的打包