⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 http://www.iocoder.cn/Fight/worklog-sqlite-git-sync/ 「芋道源码」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注微信公众号:【芋道源码】有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言都将得到认真回复。甚至不知道如何读源码也可以请教噢。
  4. 新的源码解析文章实时收到通知。每周更新一篇左右。
  5. 认真的源码交流微信群。

Worklog 是一个刚开源不久的本地优先项目管理工具,桌面壳用 Tauri v2,界面是 SvelteKit,数据全搁本地一个 SQLite 文件里。

说直白点就是一块离线的看板,Backlog、Todo、In Progress、Done 四列,不依赖任何云服务,也不用注册账号。装完打开就能用,我在自己的两三个小项目上试了一周,确实清爽。

它到底是什么,以及为什么被人说思路野

官方看板截图

它的数据就是一个文件,工作区目录下面的 .worklog/worklog.db。整个团队的项目状态都在这个文件里,没有云端数据库,也没有账号体系。想换电脑,把这个目录拷走就行。

仓库页实时截图

项目是 MIT 协议,两百多 Star、二十几个 Fork,四百多次提交、四十多个 tag,还在活跃更新。

架构分三层,界面层是 SvelteKit 加 TypeScript,中间的 hooks 层处理异步逻辑,底下的 repository 层负责操作 SQLite。运行时用的是 Bun 而不是 Node.js,装依赖和构建都快一截。

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

功能这块,十个里有几个是真日常用

看板就是最朴素的那种。没有泳道,没有子任务嵌套,一张卡一个标题,拖到对应列就完事。点开一条 Ticket 是详情面板,描述区能写 Markdown,写完切预览看渲染效果,下面还能挂评论。右键菜单里有移动、删除、编辑,选中一条按 M 直接推到下一列。

官方表格视图截图

表格视图是我用得第二多的。有时候要一口气扫几十条 Ticket,谁在干什么、哪些快到期、哪些卡太久没动,看板来回翻太慢。切到表格就一行行排开,列头能点排序,筛选栏敲个名字就只看某个人的任务。周五写周报的时候切过来从上往下撸,十分钟搞定。

官方甘特图截图

甘特图能省掉 Excel。Ticket 设好开始和截止时间,切过去时间轴上就排好了,哪几个任务撞期一眼能看出来。以前排期我一直用 Excel 画色条,改一个时间全部重画,现在直接改日期,图自己跟着变。它比不上专业工具那种带依赖线的甘特图,但日常排期够用。

官方命令面板截图

命令面板是 Cmd+K,跟 VS Code 一个手感。新建 Ticket、切换看板、打开设置、手动触发一次同步,都能敲出来,不用在菜单里翻。快捷键也齐,新建 Ticket 是 Cmd+N,新建看板是 Cmd+B,手动同步是 Cmd+S,缩放加减和复位对应加号减号与 0。这些都能按自己的习惯改。

另外两个视图值得单独提。日历视图按截止日期把 Ticket 散到格子里,周一早上切过去看一眼,这周的节奏心里就有数,它和甘特图的分工是短长期各管一段。撤销重做则是给数据库加了一张 events 表,创建、修改、删除、移动、归档、恢复全部记录,工具栏多了 Undo 和 Redo。这张表还能当审计日志用,谁什么时候改了哪条 Ticket 的什么字段,翻表就能查。

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

同步交给 Git,这一招的账要算清楚

官方 Git 同步设置截图

它的同步思路很直白,既然数据就是一个文件,那就交给 Git。在设置里绑一个仓库地址和分支名,它就在后台定时把这个文件 commit 再 push,间隔可以调,策略是先拉再推。三五个人共用同一个仓库的话,谁的看板改了都能同步过去。

这笔账要算清楚。它换掉的是搭服务器和订阅的费用,代价是同步不是实时的,而且要处理冲突。把同步交给 Git,换来的是不用自己维护一套后端,代价是每一次同步都可能变成一次冲突处理。团队里几个人同时挪同一张卡,冲突就得人工收拾。人少、改动分散的时候没问题,人一多、手一快,这就会变成主要摩擦。

几个不起眼但每天都用到的小事

官方亮色看板截图

看图的时候切亮色,写代码的时候切回暗色,默认是暗色,亮色模式的对比度调得还行。全局缩放能从 50% 调到 200%,27 寸屏上缩到 80%,换到 13 寸笔记本开到 120%,很省事。

看板做完了不用删,归档就行,侧边栏不显示但数据还在,随时能恢复。它还集成了 Inlang 这个国际化框架,目前以英文界面为主,框架搭好了,愿意贡献翻译的话门槛不高。设置面板把同步配置、外观、快捷键、事件日志集中在一处,不散。

装它、配它、把同步打开

官方下载页截图

装法不难,官网和 GitHub 的 Releases 页面都有各平台的包。Linux 上 Debian 和 Ubuntu 用户可以直接配 APT 仓库,导入密钥之后就能用系统的更新流程升级。

sudo mkdir -p /usr/share/keyrings
curl -fsSL https://regisx001.github.io/worklog-apt/pubkey.asc \
| sudo gpg --dearmor -o /usr/share/keyrings/worklog-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/worklog-archive-keyring.gpg] https://regisx001.github.io/worklog-apt any main" \
| sudo tee /etc/apt/sources.list.d/worklog.list
sudo apt update && sudo apt install worklog

Arch 用户走 AUR 一条命令搞定。

yay -S worklog-bin

AppImage 有个坑要提前知道。在 Arch 这类滚动更新的发行版上,它可能一启动就报 EGL_BAD_PARAMETER 然后崩掉,原因是包里带的 Wayland 库和新版合成器打架,可以强制用系统的库绕过去。

LD_PRELOAD=/usr/lib/libwayland-client.so ./worklog_1.5.2_amd64.AppImage

官方其实更推荐 DEB、RPM 或者 AUR 这几个包,系统集成更好。体积上也要说一句,exe 是 8 MB,dmg 12 到 13 MB,deb 和 rpm 都是 11.7 MB,但 AppImage 有 88.7 MB,因为它把运行时一起打了进去。

Worklog 应用图标

建第一块看板,把同步接上

装完打开第一步是选一个本地目录当 Workspace,随便建个空文件夹指过去就行,它会在里面建数据目录。进去之后左侧边栏有 New board,起个名字就出一块空看板,往 Backlog 里扔几条 Ticket 试试手感。Ticket 的标题写好,点开详情可以补描述、设优先级、加标签、定截止日期。

团队要协作的话,进 Settings 找到 Git Sync 那一栏,填上仓库地址和分支名,间隔默认 5 分钟,按需要改。这里有个前提,先把 Git 仓库 init 好并且远程能通,不然同步会直接报错。日常操作基本靠键盘,Cmd+N 建 Ticket,Cmd+B 建看板,Cmd+K 搜任何操作,Esc 关详情面板。

它和 Jira 不是一类东西

它没有 Sprint,没有燃尽图,没有自动化规则,也连不了 Slack 和飞书。它就是一块本地的看板,轻、快、数据透明。

所以它适合的是一个人管几个项目,或者带三五个人的小团队。你要是需要跨部门排期、要报表、要跟 IM 打通,它不是干这个的,别拿它去顶 Jira。

开源地址是 https://github.com/regisx001/Worklog 。

图片待确认

TODO @芋艿:IMG-010 未使用——来源第 8 张是应用空工作区截图,官方仓库与文档站都没有同一屏的无水印素材(docs 目录无图片,站点截图目录的 8 张里没有空状态),按用户指示改用官方应用图标承接这个图位,原截图需要你确认是否在本地留档。

文章目录
  1. 1. 它到底是什么,以及为什么被人说思路野
  2. 2. 功能这块,十个里有几个是真日常用
  3. 3. 同步交给 Git,这一招的账要算清楚
  4. 4. 几个不起眼但每天都用到的小事
  5. 5. 装它、配它、把同步打开
  6. 6. 建第一块看板,把同步接上
  7. 7. 它和 Jira 不是一类东西
  8. 8. 图片待确认