
Security News
The Hidden Blast Radius of the Axios Compromise
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.
@digitalc/next
Advanced tools
数渠产品线 - 定制化基础组件、业务组件 DigitalC
在线演示:https://digitalc.vercel.app
npm 地址: https://www.npmjs.org/digitalc/
每个研发团队都会有自己的工具库、UI 组件库、脚手架与构建工具,来提高效能和实现能力复用。如何在繁杂的业务中寻找共性,提供通用产品解决方案,并且满足不同项目的业务差异;如何将设计经验,业务代码提炼为指南,帮助使用者正确使用组件,并在项目之间实现能力复用,如何提高效能快速落地和交付,如何减少前端与设计的沟通、降低验收成本提高全局协作效率,已经成为亟待解决的问题。
除此之外,从设计角度看每个产品也会有自己专属的设计规范/设计语言/设计体系,设计师通常会整理出一份设计侧的 UI 组件库,并制定一套 Design Token 用于与其他设计及前端沟通交流和设计与研发之间的联动,以满足国际业务多样性。整体维度是 “从抽象到具体”的总分关系,达成对数渠产品各维度都有具体的指导,能保证长期使用避免重复返工的同时,也便于囊括后续的迭代内容。这些用文档来传阅并不方便且不具备交互性,所以就需要一个好看好用的站点,来详细的展示各种规范和组件的实际效果,并且能给后续类似场景实现能力复用,这是本项目的初衷。
用户体验团队将部门内部多年设计经验提炼总结,为领域内的专业设计指南,提供的行业设计解决方案。包含:
价值观
色彩
字体
动效
图标
布局
暗黑模式
为了实现需求与设计\开发之间的高效协同,团队展示了丰富且可复用的产品组件资源:
npm i digitalc
import { Button } from 'digitalc';
export default () => <Button>点击</Button>;
非常欢迎您的贡献!提交您的 Issue 或者提交 Pull Request。
Pull Request
Fork 代码!
创建自己的分支: git checkout -b feat/xxxx
提交你的修改: git commit -a 'feat(project): describe'
推送您的分支: git push origin feat/xxxx
提交 pull request
Install dependencies,
$ npm i
or
$ yarn
Start the dev server,
$ npm start
Build documentation,
$ npm run docs:build
Run test,
$ npm test
Build library via father,
$ npm run build
最后,将 dist 发布到 npm(digitalc),将 docs-dist(站点文档) 部署到服务器对应的目录就好了.
如果想免费挂载到公网,可以用 https://vercel.com。
感谢所有为 digitalc 项目,贡献力量的 2022 新同学们~
src 目录下面的第一层目录就会被当成顶部导航栏的项目名,第二层目录以后则是在左侧的目录体现。
* 代码提交使用了eslint验证,确保无错误提示再进行提交;
* 业务代码和css样式,尽量保证在兼容多个浏览器的前提下实现效果(如IE10\11);
* 新功能需求: 在接口无法提供的时候,可先用 Mock 模拟数据;接口服务:rap2
新功能需求: 使用字体图标,不建议使用图片图标;
新功能需求: 相同功能已经有依赖的三方或技术选型,不应该再引入新的类库。若确实有新的或更好的方案,可以组织评审讨论后补充或替换;
* 后面我们的分支模型develop的代码,都是已经经过联调,都调通,功能都没有问题的代码,
实现的功能 通过走查后 MR到 feature,直接 push 到核心分支的权限已经被关闭. (开发新功能的分支也应该从develop拉取);
* 业务实现的代码: 至少经过一个同学的Code Review走查通过方可提交,走查方式为 GitLab 的 Merge Request 流程;
同时: 理解别人写代码的风格和方式取长补短,找出别人代码与规范违背的地方,督促自己有则改之无则加勉;
* 规避常见安全问题:见最下方[常见漏洞]补充文档;
业务功能完成实现为前提下:
* 代码逻辑杂糅,存在很多常函数,很多业务逻辑放在一个函数内,逻辑没有拆散。
* 推荐做法:单个函数,代码行数不超过120行,单个文件行数不超过500行
* 业务逻辑重点函数没有逻辑注释
* 推荐做法:文件头部增加全局注释,函数头部有具体的方法注释
* 方法名称随意,无法区分函数功能
* 推荐做法:事件响应以on开头,通用函数封装到单独的文件中
onChange={this.handleCardChange}
handleButtonClick
handleNextStep
handleDialogClose
* 存在大量hardcode代码
* 推荐做法:将常量数字及常量字符串封装为枚举类型
* 常量提成配置项
* @ 指向 src 目录,如 @/components。 建议代码中都使用 @/ 开头引用组件
~ 在 less 或者 sass中 指向 node_modules 目录
* 异常处理
* 逻辑上的边界条件,对逻辑异常需要在整个业务代码最开始地方处理,发生异常直接return,异常包括例如: 为空、错误、异常等
* 命名规范,
* 不强求, 但是基本的问题要杜绝, 例如: hardcode, 变量后加数字, 名字不恰当、太通用等
* 技术规范
* 遵守域内研发框架
* 写小函数
* 例如: 单个函数建议不要超过120行
* UI层事件响应的逻辑处理抽象
* 通过 async/await 简化交互层代码逻辑
* 代码注释
* 在主要业务流程的函数顶部,写清楚业务执行逻辑及各个分支场景
* 使用解构
* 替代联系的“.”运算
* 代码走查
* 单次MR不超过500行代码
真实 Commit 描述,能说明白即可,字数不用太多
remove: unused code
feat: 新特性
fix: 缺陷修复xxx
docs: 文档相关
style: 样式修改、错别字修改、格式化等
refactor: 重构
perf: 性能提升
test: 增加测试
chore: 业务无关修改,如:发版、构建工具链修改等
scope: 可选,作用域标识,指明你需改的代码所属作用域
不管你是通过像 Upsource 这样的工具还是同事的讲解来审查代码,有一些东西是比较容易评判的。比如:
● 格式 :空格和换行在哪里?他们使用的是 tab 还是空格?大括号怎么布局?
● 风格 :变量/参数声明为 final ?方法变量是在使用时再定义,还是在方法开始的地方定义?
● 命名 :字段、常量、变量、参数、类的命名遵循标准吗?名称有过于简短或通用?
● 代码场景覆盖 :这段代码有没有考虑到请求失败的情况\兼容性问题有没有测,性能的防抖和节流做的怎么样?
● 可读性和可维护性: 是否过于冗余\能否复用和拆分更简约?
FAQs
数渠产品线 - 视觉规范、基础组件、业务组件 digitalC
We found that @digitalc/next demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.

Research
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.

Research
Malicious versions of the Telnyx Python SDK on PyPI delivered credential-stealing malware via a multi-stage supply chain attack.