-
Notifications
You must be signed in to change notification settings - Fork 113
什么是驱动式的前端完美开发工作流? #311
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
你简直很高效…聊天记录直接上…太欣赏! |
前端需要兼顾的东西太多,先写什么后写什么真的很重要 而且需求变化,业务人员第一触及的都是前端,还得你来回答后端是否支持,由此多一层思考负担。 因此:
其中,第4.步的单元测试最为关键,而且input和ouput已经很明显 还有就是,整个过程很精益:
这儿我再给你加个动画,让你心情爽一hia 从工作流这个角度出发就更不那么喜欢react了,其实也不是不喜欢react,而是jsx。 又或者,jsx是否能带来更容易的插入式改进式实现呢?至少应该是更利于重构的。
Sent with GitHawk |
我觉得第1点是最重要的,它重要点在于减轻 UI 变化对开发造成的影响。因为调样式是个成本不太低的事情(也可能跟技能有关系),如果布局、样式、交互这些不确定或因为其中一者而使得整体有改变时,之前调过的样式就全部拜拜了。而 UI 变化这个点在人眼看到实际的交互前不确定性强,这个根据实践经验确实是这样的。 |
会跑步 会健身 会看书,咋就不集成呢,🤣 via [Write tests, not too many, mostly integration | Kent C. Dodds Blog] 假设:前端绝不应该过于追求 Unit Test,不要出现太多 Mock、Stub 甚至 Shallow Rendering,我之前有要求必须用浅渲染… 确实是有点过了 。 🤣
对组件来说,确实不需要关于依赖的子组件要做啥呀…
你是说依赖的变化,也是(除输入输出以外)其他因素么?
嗯,本质上 child component 就是依赖,如果在后端可能就是这样注入进去的: new ComponentZ(new ComponentX(), new ComponentY()) ,然后可以在测试 ComponentZ 的时候把 Component 给mock了。 但是React里面没得(Angular有呀),而是 import 进来 import { ComponentX, ComponentY} from '@components',在 xxx.test.js 里面也不好去mock一个Component了吧,因此才有了 shallow rendering 🤣 Angular里面是怎么处理 测试中的 components rendering 的呢?
👌, 抽组件 就是 抽依赖。组件即依赖。组件也是细节
应该是,不需要关心 ComponentZ 内部的 ComponentY 和 ComponentX 依赖,即细节 所以结论可能是,好的测试策略:
组件作为单元测起来,没什么意义。
这么说来, 其实Snapshot 放在子组件层级才有意义,但是意义不大。而放到Integration层级,更加没有什么意义,因为整个Snapshot result会很大,没法diff或者diff很困难,也就会让Dev破罐子破摔,一股脑approve了,少去了验证的意义。
嗯,我刚想说,不应该过于关注组件,而是应该是功能。 可以按照Feature来拆分组件,那按照feature来写测试,也会比单纯关注组件 把组件作为单元来测试 更加有意义。 是的咧,那么这个时候,还叫单元测试吗?
我不会测试, 很多人用快照测试的动机,可以有一个, 瞬间 100% 测试覆盖率!因为领导们,要求测试覆盖率必须上 90%。然后劳资 顺手一个 Snapshot 测顶层 App,就是丫的 100% 覆盖率。 const tree = renderer
.create(<App />)
.toJSON();
expect(tree).toMatchSnapshot();
原来 Angular就是这么玩的,看了Angular 的测试文档,头都大了。 https://angular.io/guide/testing#component-test-scenarios 看来就是有人很烦 Angular DI式的需要mock 各种子组件,反而偏爱 https://github.com/getsaf/shallow-render
那不使用 TestBed 就默认render所有子组件吧?
不使用 TestBed 的话测不了DOM么?
嗯,懂了,就是Component是Class,纯当class (即 JavaScript )语境下来测
嗯, 没毛病。 其实我觉得这样设计还挺好。
最近期望好好实践一下 E2E,在看 Cypress
|
测试驱动? 测试在前端超弱的,你让我测 |
项目纵向拆分
但是,结合 Storybook,我算是找到了比较完美的 UI+State 测试工作流,并且引入了 Storyshot,自动在UI完毕之后take Snapshot,然后就又发现了 image snapshot:
-------------TDD结束;Storybook CDD 开始----------------
https://github.com/storybooks/storybook/tree/master/addons/storyshots#configure-storyshots-for-image-snapshots--alpha-
⓵ 定义目标和原则
终极目的
Q:为什么你要花时间来做这项任务,而不是其他随便什么任务?
A:
⓶ 展望结果(OKRs)
利益相关人清单
Q:当你交付最终结果的时候,会如何让世界变得更好?
A:
⓷ 思维导图:头脑风暴/集思广益(发散)+ ⓸ 组织整理(收敛)
⓹ 明确「下一步行动」
能够产生反馈结果的小任务
The text was updated successfully, but these errors were encountered: