徐昊 · TDD 项目实战 70 讲
徐昊
Thoughtworks 中国区 CTO
18159 人已学习
新⼈⾸单¥98
登录后,你可以任选4讲全文学习
课程目录
已完结/共 88 讲
实战项目二|RESTful开发框架:依赖注入容器 (24讲)
实战项目三|RESTful Web Services (44讲)
徐昊 · TDD 项目实战 70 讲
15
15
1.0x
00:00/00:00
登录|注册

79|线段编辑器:架构思路与任务拆分

你好,我是徐昊。从今天开始,我们就来使用 TDD 的方式实现一个线段编辑器(Line Editor)。
在之前的三个项目中,我们展示了如何使用 TDD 的方式来实现功能以及框架。接下来,我们要通过一个非常简单的项目,展示如何使用 TDD 的方式,实现以交互为主的功能。

线段编辑器的功能说明

00:00 / 00:00
    1.0x
    • 2.0x
    • 1.5x
    • 1.25x
    • 1.0x
    • 0.75x
    • 0.5x
    网页全屏
    全屏
    00:00
    通过上面对于功能的说明,对于线段编辑器,它的功能大致有这么几点:
    在线段上设置锚点(Anchor),当拖动锚点时,锚点的位置改变;
    在锚点与锚点之间,存在控制点(Control Point),当拖动控制点时,会在将控制点变成锚点;
    当双击锚点时,会删除这个锚点。
    我们选择的技术栈是 TypeScript + React + Konva(React-Konva),测试框架使用 Vitest。package.json 如下所示:
    {
    "name": "line-editor",
    "private": true,
    "version": "0.0.0",
    "type": "module",
    "scripts": {
    "dev": "vite",
    "build": "tsc && vite build",
    "preview": "vite preview"
    },
    "dependencies": {
    "konva": "^8.3.12",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "react-konva": "^18.2.1"
    },
    "devDependencies": {
    "@types/react": "^18.0.17",
    "@types/react-dom": "^18.0.6",
    "@vitejs/plugin-react": "^2.0.1",
    "typescript": "^4.6.4",
    "vite": "^3.0.7",
    "vitest": "^0.22.1",
    "canvas": "^2.9.3"
    }
    }
    确认放弃笔记?
    放弃后所记笔记将不保留。
    新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
    批量公开的笔记不会为你同步至部落
    公开
    同步至部落
    取消
    完成
    0/2000
    荧光笔
    直线
    曲线
    笔记
    复制
    AI
    • 深入了解
    • 翻译
      • 英语
      • 中文简体
      • 中文繁体
      • 法语
      • 德语
      • 日语
      • 韩语
      • 俄语
      • 西班牙语
      • 阿拉伯语
    • 解释
    • 总结

    本文介绍了徐昊使用TDD的方式实现线段编辑器的架构思路与任务拆分。文章首先介绍了线段编辑器的功能,包括设置锚点、控制点的拖动和删除锚点等。接着,作者展示了使用TypeScript + React + Konva(React-Konva)和Vitest作为测试框架的技术栈,并给出了package.json的配置。在架构思路与任务拆分部分,作者详细列出了实现线段编辑器功能的任务列表,包括设置锚点、生成锚点、更新锚点位置、设置控制点、更新控制点位置等。最后,作者提出了思考题,邀请读者分享项目代码地址。整篇文章通过视频和文字结合的方式,清晰地展示了如何使用TDD的方式实现线段编辑器,并提供了实际的代码示例和思考题,有助于读者快速了解并参与讨论。

    仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
    《徐昊 · TDD 项目实战 70 讲》
    新⼈⾸单¥98
    立即购买
    登录 后留言

    全部留言(2)

    • 最新
    • 精选
    • davix
      https://github.com/davix/geektime-tdd-line-editor 覺得更新锚点的地方可以不更新,而先刪再加 (使用不可變數據)
      2022-09-16归属地:北京
    • aoe
      原来 MVP 是前端中对测试友好的一个框架
      2022-09-13归属地:浙江
    收起评论
    显示
    设置
    留言
    2
    收藏
    沉浸
    阅读
    分享
    手机端
    快捷键
    回顶部