Skip to content
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

保证提交质量的建议 #7

Open
cpunion opened this issue Jun 30, 2017 · 1 comment
Open

保证提交质量的建议 #7

cpunion opened this issue Jun 30, 2017 · 1 comment

Comments

@cpunion
Copy link

cpunion commented Jun 30, 2017

react-web 项目目前处于不活跃状态,如果近期没有跟上主库发展,我可能得考虑项目的风险,转投 react-native-web 了,当然目前 react-native-web 我觉得还差一大截,但未雨绸缪。

提议1:增加 storybook

目前各自有一些修复、修改,没有合适的途径验证,相互也基本不会做验证,除非影响了自己使用才会发现问题。在没有单元测试和其它有效测试手段的情况下,提议增加 storybook 作为测试用例,新的提交先添加 story 做一次提交,后面的实现代码做一次提交,方便重现问题和验证兼容性。storybook 在我们自己的项目中使用效果很好。react-native-web 也使用了 storybook: http://necolas.github.io/react-native-web/storybook/

还有几个其它的实现 react-native 运行在 web 的项目,react-web 是显示效果最接近的,也是生成 dom 可读性最高的。

目录结构方面,单独使用一个目录和 package.json,避免污染主项目(Examples 里的项目也可以整理一下,把部分依赖从主项目去除)。react-native 和 web 共享 stories,根据自己的设备情况,至少应该在 web 和其中一个 native 平台(iOS 或 Android)运行。共享 stories 还方便检验 react-web 和 react-native 的显示和功能差异,便于修复,让它成为更优秀的“仿真”平台。

比如我修复了 scrollEnabled 默认值,需要有个用例验证问题,并验证修复,同时需要尽可能多几个用例检验对其它场景是否有破坏。

另一个好处是 stories 紧跟 react-native 主库的修改,哪怕目前没有实现,至少有个用例等实现后去验证。

PR验证步骤:

  1. 切换到PR里添加 story 的提交记录,验证问题。
  2. 切换到最新提交,验证修复情况和兼容性。
  3. 如果是不兼容的提交可以例外,比如引入一个 break change。

为了不增加太大负担,每次 PR 建议增加 storybook 而非强制项,鼓励 Bug 提交者写出 story。

提议2:Features/Bugs 列表

由于 react-web 已经停止很久了,可能有很多库和主库相差很大,增加一个待实现/修复的 Features/Bugs 列表,方便了解情况并根据自己的时间和对自己项目的影响优先选择。

提议3:增加 CI

用来测试构建是否成功,有无语法错误。

@cpunion
Copy link
Author

cpunion commented Jun 30, 2017

比如我们目前开发时使用 storybook 来同时预览 web 和 native 效果:

2017-06-30 2 08 54

图中可以看出部分样式差异,这里问题来自 TextInput,暂时不影响使用,以后可以针对性修复。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant