
WeKan 设计演进史与 Trello、Jira 的功能借鉴对比与技术溯源【免费下载链接】wekanThe Open Source kanban, built with Meteor. GitHub issues/PRs are only for FLOSS Developers, not for support, support is at https://wekan.fi/commercial-support/ . PR source translation to imports/i18n/data/en.i18n.json, other translations at https://app.transifex.com/wekan/wekan项目地址: https://gitcode.com/GitHub_Trending/we/wekan导读本文以仓库 docs/Design/Design-WeKan-Trello-Jira.md 为主线梳理 WeKan 看板软件的 UI 设计演进脉络从最初借鉴 Trello、到 2015 年 DMCA 事件后独立重设计再到其原创功能如 Maximize Card、Linked Cards被 Trello 反向借鉴的完整时间线。同时结合仓库源码卡片链接、最大化卡片、IFTTT 规则等实现验证文档中的功能主张并盘点 Trello 有而 WeKan 尚未实现的功能清单。读完本文你将理解 WeKan 的设计哲学、核心原创功能在源码中的落点以及它与主流商业看板工具的真实差异。看板方法起源于丰田的纸质卡片看板Kanban并非软件发明它源自日本丰田生产系统中的看板卡片看板信号卡实践。几乎所有看板软件都实现了类似的功能这些功能或是原创或是受其他看板软件启发。理解这一点就能理解 WeKan、Trello、Jira 之间功能互相借鉴的现象其实是看板软件生态中的常态。WeKan 与 Trello 的设计渊源借鉴、DMCA 与独立重设计早期借鉴与 2015 年的转折点按文档记载WeKan 最初借鉴了 Trello 的设计随后 WeKan 进行了重新设计再往后 Trello 反而开始借鉴 WeKan 的原创设计。其中的关键转折点是2015-01-20 的 DMCA 通知事件详见 FAQ 中Werent you called LibreBoard before一节此事直接促使了 WeKan 的 UI 重新设计。这次重新设计由两位关键人物完成mquandalleWeKan 的原作者主导了最初的重新设计详见 FAQ 相关章节xet7WeKan 的现任维护者在此基础之上持续改进相关设计原则可参考 Design-Principles.md 与 Monkey-Proof-Software.md。开源代码的独立性一个容易被忽略但很重要的事实是WeKan 全部为 MIT 协议许可的开源代码与 Trello 的专有proprietary代码在实现上完全不同。即便两者在交互设计上有相似之处WeKan 的实现细节、数据模型和整体架构都是独立开发的原创代码这一点可以直接在仓库源码中得到印证——例如卡片模型中的isLinkedCard()、getRealId()、getRealCard()等方法见 models/cards.js都是 WeKan 自有的实现而非对任何商业产品的代码移植。Trello 反向借鉴 WeKan 的功能附源码佐证文档记载了多个Trello 借鉴 WeKan 原创功能的具体案例其中部分功能已在 WeKan 源码中落地可以逐一验证。2025-04卡片评论显示在右侧Maximize Card 溯源文档记载2025 年 4 月 Trello 将已打开的卡片评论移动到右侧侧边栏展示该交互源于 WeKan 的原创功能Maximize Card最大化卡片该功能早在 2021-06-14 的 WeKan v5.35 版本中就已发布见 CHANGELOG.md#v535-2021-06-14-wekan-release。Trello 目前没有对应的 Minimize Card最小化卡片功能。该功能在 WeKan 源码中的落点非常清晰前端模板事件click .js-maximize-card-details处理卡片的最大化/还原操作见 client/components/cards/cardDetails.jscardMaximized()助手函数判断当前用户是否开启了最大化模式已登录用户读取其profile.cardMaximized字段未登录用户则读取window.localStorage中的cardMaximized标记见 cardDetails.js用户的该偏好被持久化在profile.cardMaximized上并提供hasCardMaximized()读取方法与对应的更新方法见 models/users.js。从源码结构可以推断WeKan 将最大化卡片设计为一种用户级偏好设置一旦开启卡片详情会脱离弹窗popup形态以最大化窗口展示把评论等内容排列在卡片主体的右侧这正是文档所述交互模式的实现基础。2025-02Mirror Card镜像卡片与 Linked Cards 溯源文档记载2025 年 2 月 Trello 推出的 Mirror Card 功能其原型是 WeKan 早在 2018-04-18 就实现的Linked Cards链接卡片功能。在 WeKan 源码中链接卡片是一等公民的数据模型。卡片对象的link(boardId, swimlaneId, listId)方法会以当前卡片为深拷贝来源在目标位置创建一张类型为cardType-linkedCard的新卡片并通过linkedId字段指向原始卡片见 models/cards.js。与之配套的核心机制包括getRealId()返回链接卡片背后真实卡片的_id见 models/cards.jsgetRealCard()链接卡片只拥有自己的位置信息看板、泳道、列表展示的内容始终来自源卡片从而保证链接是活的镜像而非过期的快照见 models/cards.js。此外models/lib/linkedCardTitle.js 记录了链接卡片在重命名时的一个重要修复对应 issue #4249此前重命名链接卡片只更新链接目标getRealId()/linkedId的标题导致链接卡片自身的title字段过期进而使按标题过滤卡片功能失效。修复后的computeTitleUpdateTargets()会同时更新链接卡片自身文档保证可被标题过滤检索以及链接目标文档保留原有镜像行为。2021-02新建看板按钮位置文档记载2021 年 2 月 Trello 将新建看板按钮移动到顶部该布局源于 WeKan 在 2018-09-28 的 v15.11 Edge 版本中就已实现的原创功能见 CHANGELOG.md#v1511-2018-09-28-wekan-edge-release。这是一个典型的交互布局被同行借鉴的案例——虽然按钮位置本身看似微不足道但它反映了 WeKan 在 UI 细节上的原创投入。WeKan 已提出但尚未实现的想法文档还记录了 WeKan 社区已经提出、但当前尚未在 WeKan 中落地的两个设计想法它们同样被 Trello 率先实现2025-01-28Sync Jira Lists to Trello同步 Jira 列表到 Trello——源于 WeKan 在 2022-07-14 提出的WeKan Multiverse多元宇宙构想即跨看板、跨实例同步列表的能力2021-02Map Card地图卡片——源于 WeKan 在 2017-01-06 提出的功能请求issue #755。这两个案例说明WeKan 的功能路线图有时会先以社区提案的形式存在而同类商业产品会更快将其落地WeKan 自身的落地则需要社区贡献者持续推进。Trello 有而 WeKan 尚未实现的功能清单文档同样客观记录了 Trello 具备、但 WeKan 截至写作时尚未实现的功能时间功能说明2025-05-21Email InboxTrello 的邮件收件箱能力WeKan 尚未实现2025-02Complete Card Checkbox完成卡片复选框对应 issue #5818 的功能请求2021-05Workspaces工作区Trello 的工作区组织能力WeKan 尚未实现2018Butler 定时/重复任务WeKan 已实现 IFTTT 规则但尚不支持定时或重复执行规则2016-12Card Repeater PowerUp卡片重复器按日/周/月/年复制卡片的能力重点展开Butler 定时任务 vs WeKan 的 IFTTT 规则在上述清单中与 WeKan 源码关联最直接的是IFTTT 规则。WeKan 早在 2018-09-16 的 v1.4.7 版本就加入了 IFTTT 规则机制见 CHANGELOG.md#v147-2018-09-16-wekan-release但它目前只支持触发后立即执行动作尚未支持 Trello Butler 式的**定时Scheduled或重复Repeating**执行。从源码看WeKan 的规则模型以触发器 动作为核心Rules集合持有triggerId与actionId字段分别关联Triggers和Actions集合并提供getTrigger()、getAction()等解析方法见 models/rules.js 与 models/rules.js。这一触发器-动作架构天然具备扩展为定时触发器如 cron 表达式的空间但文档明确记载该能力尚未实现。相关需求在 server/scheduledRules.js 等文件中已有规划痕迹说明项目维护者关注这一方向具体进展需以仓库最新代码为准。Jira 的设计来源ClickUp 的左侧边栏文档最后一条记载涉及 Jira2025-06-29Jira 采用了源自 ClickUp 的 UI 设计——左侧边栏菜单。这条信息与本仓库无直接代码关联但它补充了看板/项目管理软件生态中设计互相借鉴的整体图景不仅是 WeKan 与 Trello 之间存在借鉴关系整个行业包括 Jira、ClickUp都在互相影响。总结从设计史看 WeKan 的定位纵观整份设计文档可以得出几条对使用者有实际参考价值的结论WeKan 是独立的开源实现与 Trello 的专有代码不同WeKan 全部功能都是 MIT 协议下的原创代码任何 UI 相似性都不影响其代码的完全独立性WeKan 贡献了若干被行业采纳的原创交互Maximize Card卡片最大化/评论右栏、Linked Cards链接/镜像卡片、顶部新建看板按钮等均已通过社区验证并被商业产品借鉴WeKan 与商业产品存在明确的功能差距清单邮件收件箱、工作区、卡片完成复选框、定时/重复规则、卡片周期复制等仍待社区实现其中IFTTT 规则扩展为定时/重复执行最值得关注因为它有明确的源码基础触发器-动作模型设计借鉴是看板软件生态的常态从丰田纸质看板到 ClickUp、Trello、Jira、WeKan功能互相启发贯穿了整个行业历史。对于希望深入代码的读者建议从三个文件入手卡片链接机制见 models/cards.js 与 models/lib/linkedCardTitle.js最大化卡片偏好见 models/users.js规则系统见 models/rules.js。设计原则的完整阐述可继续阅读 Design-Principles.md 与 Monkey-Proof-Software.md。【免费下载链接】wekanThe Open Source kanban, built with Meteor. GitHub issues/PRs are only for FLOSS Developers, not for support, support is at https://wekan.fi/commercial-support/ . PR source translation to imports/i18n/data/en.i18n.json, other translations at https://app.transifex.com/wekan/wekan项目地址: https://gitcode.com/GitHub_Trending/we/wekan创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考