MatrixChannel:工作上下文记录的新提案 - 灵感士多

文章推薦指數: 80 %
投票人數:10人

简而言之,【MatrixChannel】是一个定时同步Tapd(来自腾讯的敏捷研发协作平台)到Notion 的开源工具。

本篇文章主要根据一个软件开发从业人员的个人经历 ... 0% TL;DR简而言之,【MatrixChannel】是一个定时同步Tapd(来自腾讯的敏捷研发协作平台)到Notion的开源工具。

本篇文章主要根据一个软件开发从业人员的个人经历,介绍了工作任务纪录的痛点,并提出、开发、开源了自己的解决方案,也就是本文章分享介绍的工具。

最后,通过这个解决方案,除了能够更统一更高效的管理个人日常事务,同时,还能以更个人、更自由的方式管理自己的Tapd需求、任务的数据展示与数据记录,并记录个人关于需求的临时数据与需求分析,提高生产力。

工具Github地址:https://github.com/copriwolf/MatrixChannel 效果演示如下: MatrixChannel自动同步数据·效果演示 1前言开篇先来一个烂梗。

自从众多互联网公司落实了985规定后,生产力他妈妈更早下班了,今天刚回来,就听到有人敲门,打开门一看,嚯,原来是生产力到家了。

当然了,这是一个来自互联网码农的自嘲,不过确实越来越有趋势,需要在非办公时间段处理公司业务的需求。

(就如同微信也拥有了QQ的状态栏功能一样)。

而为了应对在家里更快的了解自己的任务进度、需求变更,我个人更迫切的需要一个工具去整合我的工作数据,而这个工具也就应运而生了。

2为什么要开发这个插件?2.1直接用公司的项目管理工具不香嘛?从本人的工作经历中,使用过的公司指定项目管理工具包括Redmine/JIRA/Tapd等,都存在一些让使用者非常不爽的地方。

Redmine Web1.0界面非常简陋,且操作流程的按钮、提示,都是机翻中文非常变扭。

支持的插件扩展有限(如Markdown、流程图),需要额外开发。

私有化部署,离开办公网络需要VPN/IOA才能浏览。

共性 筛选与排序功能欠佳,针对个人的自定义程度不高 无法,也不应该记录个人对于需求的上下文数据 而针对每一个需求任务的上下文相关数据,亟需一个统一的位置进行维护,且在需要时能够快速根据关键信息(标题、需求目的)检索处理,并有详实的时间线历程与状态扭转记录。

2.2过往的需求任务相关数据在哪?在过去的时间段,跨越了我的几段工作经历,为了记录我的工作任务的上下文。

我尝试了【Wiz】【印象笔记】【Angenda.】等知识管理类软件服务、【Trello】等看板类工具以及【Typora+github/dropbox】的Geek模式等等等的模式。

Evernote国内版·记录公司的需求任务·截图 Agenda.记录公司的需求任务·截图 我始终觉得,有几个痛点横跨在我的知识管理软件之上,无法解决: 组织方式不明朗:到底以什么为关键词组织我的任务与需求(任务名称?需求迭代日期?需求类型?),在需要的时候,如果快速检索到我需要的上下文对应数据? 灵活度不足:需多维度纪录需求时,无法满足(标识目前进度状态扭转等) 数据储存可靠性:本地Git/Dropbox不可靠,在线工具的稳定性(印象笔记的氪金体系)。

模版易用性:通过模版新建一个任务不够便捷,往往需要复制粘贴一个项目条来完成。

手工维护成本:每次有新的需求,或者任务内容有所变更,需要手动录入到自己的管理工具上,并维护扭转的状态。

2.3为什么要用Notion?在一路的尝试历程,发现Notion是比较符合选型要求的。

其提出横空出世的All-In-OneWorkspace模式,开创了一个崭新的在线文档记录模式。

它在几个方面的特性,能够尝试解决以上提到的痛点: 高灵活度:其文档本质是一个数据库,可以内嵌多条数据。

而每条数据,允许增加无限、不同维度的属性。

故,可以对一条数据,增加【需求名称】【需求迭代】【当前状态】等等维度进行细分维护,同时,还能对文档进行有时间戳的评论,用于跟进数据。

组织方式自由:其文档可以按照列表、看板、时间线、日历等模式进行视图展示,同时允许附加筛选、排序条件,能够按照【当前指向我且状态未完成的状态】【目前迭代处于测试中状态】等等自己需要的条件进行任务筛选与展示。

模版定义:模版定义简单,新建文档,只需要选中对应模版,即可预生成对应模版已有的属性与展示。

数据储存:这个目前Notion都是处于AWS,日常使用来说是稳定且图片上下传速度没有明显卡顿感。

上下文记录格式丰富:文档中允许多种记录格式,如表格、Markdown、语法高亮的代码块、音视频、图片直接拖动上传,在线播放等。

NotionDatabase视图 Notion具体Page视图 如上图所示,通过细分数据的维度,能够非常容易管理任务的进度,同时,附带一些个人用到的需求上下文数据。

2.4如何让工作任务数据与Notion自动联动?当然了,解决了需求的上下文关联,数据的状态扭转后。

就还有一个比较棘手的问题需要解决:「每次Tapd新来了需求都需要手工录入,能不能自动联动起来?」 仍然需要,手工更新、录入数据,这是一个繁琐而且容易疲倦的操作,也会因为落后于Tapd的更新速度,最后废弃了Notion上下文的维护。

而解决这个自动更新的契机,则是部门的其他同事、领导也同样拥有对新事物探索的热情与无尽的宽容,容许成为我开发自动更新插件的首批试用玩家。

也就有了,今天隆重介绍的「MatrixChannel」——一个自动定时同步Tapd到Notion的工具。

3这么做有什么好处解决了个人以及领导的需求:在Notion以更自由更个性化的方式,并准实时的情况,管理自己的Tapd需求与任务。

4工作原理 MatrixChannel工作原理 MatrixChannel作为一个Notion与Tapd的中介, 会定时从NotionApi拉取现有数据,并以Tapd任务/需求ID进行分组后; 向TapdApi拉取配置的员工的最新数据,同时以Tapd任务/需求ID进行分组; 比对Notion的分组数据与Tapd的分组数据,筛选出需要进行修改/新增的数据; 通过NotionApi对现有数据进行修复/新增。

由于MatrixChannel并不会落地任何用户数据,故每次触发时,都会重新获取Notion/Tapd的数据。

5快速上手首先,我们需要创建一个Notion机器人用于后续把Tapd数据保存到Notion中。

同时,我们通过拷贝一个TapdNotion模版(预设了Tapd数据相关的字段),用来创建一个用来记载Tapd数据的页面。

最后,把Notion机器人配置到这个插件上,跑起来,即可自动同步数据。

5.1前期工作 贵公司正在使用TAPD 你获取了TAPD的Api账号密码 向贵公司的管理员表示你需要提高生产力为由,索取ApiToken 官方论坛-申请指南 5.2创建一个Notion机器人 在官方的开发者页面,点击右上角的Myintegrations按钮. 登陆后,点击Newintegration新建一个机器人。

填写机器人的名字,即可进行提交。

机器人创建成功后,保存机器人的**Secrets(密钥)**,这是操作这个机器人的唯一凭证或者说是钥匙。

机器人类型选择InternalIntegration(自用类型),然后保存即可。

后续需要制作给多个用户同步tapd时,可用到PublicIntegration。

5.3复制Tapd需求、任务的Notion模版我为你准备了一份预设的TapdNotion模版,其中包含了【Story需求表】以及【Task任务表】。

每个表都预设了Tapd数据需要落地的字段(如Task表中的关键数据:「标题」「迭代」「任务状态」「需求Url」「TaskUrl」等等) 操作方式如下: 点击右方链接,拷贝模版到你自己的Notion中。

[📍 Tapd模版] 授权你的机器人访问与修改该页面数据。

(选中刚刚你在上一步创建的机器人名称。

) 获取页面的PageID 由于NotionApi处于Beta版本,未开放处理Database级别权限,所以需要你手动复制DataBase的ID。

分别进去【TapdStory需求表】与【TapdTask任务表】页面中,在右上角的【Share】-【CopyLink】,在第两个/与?v=之间的即为DataBaseID。

12https://www.notion.so/copriwolf/84999c421caf4eeeab8bc66bc044408a?v=9... 5.4配置一份同步配置 复制项目中的 config/demo.conf.yaml 为 conf.yaml,并在其中填充自定义的数据。

你也可以复制下面的配置数据保存为conf.yaml即可。

123456789101112131415161718192021222324252627Service:#数据同步间隔refreshInterval:10m0s#请求失败的睡眠时间httpRequestFailSleepTime:5s#最大请求失败重试次数httpRequestAttempts:5#TapdApi用户名tapdApiUser:vvvvvv#TapdApi密码tapdApiPassword:B8888888-8888-9999-0000#Tapd公司IDtapdCompanyID:"0000700"User:#用户A的昵称/电邮(任意..)copriwolf:enable:-task-story#该用户在Tapd中的用户名tapdOwner:copriwolf#Notion访问密钥(私有机器人使用BotSecret)notionBotSecret:secret_xxxxxxxxxxxxxxxxx#NotionDatabase任务页面的IDnotionDbTaskID:84999c421caf4eeeab8bc66bc#NotionDatabase需求页面的IDnotionDbStoryID:7777777777777777777777777 5.5跑起来具体的插件在GithubRelease页面可以下载,但是我更推荐你使用Docker运行。

原因是,你不需要沾污你的系统,把插件轻量化的跑在一个虚拟容器中,更方便省心。

安装Docker,官方下载页面 执行命令,以docker形式运行 123$dockerrun-it\-v"$PWD/conf.yaml:/app/config/conf.yaml"ghcr.io/copriwolf/matrixchannel:master 工具运行展示 6高阶用法如果你觉得独乐乐不如众乐乐,希望帮助同事也同步他们最新的Tapd数据到他们各自的Notion中,不要着急,MatrixChannel也同样支持,去看看源码吧~后期作者完善后会同样分享教程。

同时MatrixChannel还为你实现了,官方对于公共机器人的强制要求OAuth鉴权与回调功能模块,你只需要稍微配置数据,即可完成公共机器人配置,实现多用户Tapd同步能力。

7后记📍简述了我对工作记录的思考,以及对其中的优化方案。

这也正是我目前运用到实际工作的解决方案。

🕹如果你对工具有任何不满意或者改进的地方,欢迎评论或者直接在Github中提交Issues。

👏如果本文章对你的工作上下文记载有新的思考与启发,那就太好了。

如果你觉得有不同的思路,更好的解决方案或者是批评,请留言告诉我,谢谢你。

文章目录 站点概览 1.TL;DR2.1前言3.2为什么要开发这个插件?3.1.2.1直接用公司的项目管理工具不香嘛?3.2.2.2过往的需求任务相关数据在哪?3.3.2.3为什么要用Notion?3.4.2.4如何让工作任务数据与Notion自动联动?4.3这么做有什么好处5.4工作原理6.5快速上手6.1.5.1前期工作6.2.5.2创建一个Notion机器人6.3.5.3复制Tapd需求、任务的Notion模版6.4.5.4配置一份同步配置6.5.5.5跑起来7.6高阶用法8.7后记 Copriwolf Or2,blog 83 日志 16 分类 252 标签 GitHub Weibo Instagram Links LittleHi



請為這篇文章評分?