Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Phodal
Ledge
提交
3606a480
L
Ledge
项目概览
Phodal
/
Ledge
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
Ledge
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
3606a480
编写于
7月 23, 2020
作者:
P
Phodal Huang
提交者:
GitHub
7月 23, 2020
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #227 from hylerrix-coop/master
feat: add nodejs checklist
上级
a0ab4ad0
af1d6cbf
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
90 addition
and
0 deletion
+90
-0
scully.ledge.config.js
scully.ledge.config.js
+1
-0
src/app/presentation/checklists/checklists.component.ts
src/app/presentation/checklists/checklists.component.ts
+1
-0
src/assets/docs/checklists/nodejs-practices.md
src/assets/docs/checklists/nodejs-practices.md
+88
-0
未找到文件。
scully.ledge.config.js
浏览文件 @
3606a480
...
...
@@ -84,6 +84,7 @@ function checklistsPlugin(route, config) {
{
route
:
'
/checklists/xp-practise
'
},
{
route
:
'
/checklists/code-review
'
},
{
route
:
'
/checklists/frontend
'
},
{
route
:
'
/checklists/nodejs-practices
'
},
{
route
:
'
/checklists/api-security
'
},
{
route
:
'
/checklists/microservices
'
},
{
route
:
'
/checklists/self-org
'
},
...
...
src/app/presentation/checklists/checklists.component.ts
浏览文件 @
3606a480
...
...
@@ -14,6 +14,7 @@ export const lists: DocRoute[] = [
{
displayName
:
'
代码回顾检查清单
'
,
source
:
'
code-review
'
},
{
displayName
:
'
API 安全性检查清单
'
,
source
:
'
api-security
'
},
{
displayName
:
'
前端项目检查清单
'
,
source
:
'
frontend
'
},
{
displayName
:
'
Node.js项目检查清单
'
,
source
:
'
nodejs-practices
'
},
{
displayName
:
'
微服务生产就绪检查清单
'
,
source
:
'
microservices
'
},
{
displayName
:
'
自组织团队建设检查清单
'
,
source
:
'
self-org
'
},
{
displayName
:
'
需求阿尔法检查清单
'
,
source
:
'
semat-requirements
'
},
...
...
src/assets/docs/checklists/nodejs-practices.md
0 → 100644
浏览文件 @
3606a480
# 前端项目检查清单
由
[
@hylerrix
](
https://github.com/hylerrix
)
提供, 基于:
[
Node Best Practices
](
https://github.com/goldbergyoni/nodebestpractices
)
```
checklist
- Node.js 项目检查清单
- 项目结构实践
- 组件式构建你的解决方案
- 分层设计组件,保持 Express 在特定的区域
- 封装公共模块成为 NPM 的包
- 分离 Express 'app' and 'server'
- 使用易于设置环境变量、安全和分级的配置
- 错误处理最佳实践
- 使用 Async-Await 和 promises 用于异步错误处理
- 仅使用内建的错误对象
- 区分运行错误和程序设计错误
- 集中处理错误,不要在Express中间件中处理错误
- 对 API 错误使用 Swagger 文档化
- 当一个特殊的情况产生,停掉服务是得体的
- 使用一个成熟的日志工具提高错误的可见性
- 使用你最喜欢的测试框架测试错误流
- 使用 APM 产品发现错误和宕机时间
- 捕获未处理的 promise rejections
- 快速查错,验证参数使用一个专门的库
- 编码风格实践
- 使用ESLint
- Node.js 特定的插件
- 在同一行开始一个代码块的大括号
- 不要忘记分号
- 命名您的方法
- 变量、常量、函数和类的命名约定
- 使用 const 优于 let,废弃 var
- 先 require, 而不是在方法内部
- require 文件夹,而不是文件
- 使用 === 操作符
- 使用 Async Await, 避免回调
- 使用 (=>) 箭头函数
- 测试和总体的质量实践
- 至少,编写 API(组件)测试
- 使用一个 linter 检测代码问题
- 仔细挑选您的持续集成(CI)平台
- 经常检查易受攻击的依赖
- 测试标签化
- 检查测试覆盖率,它有助于识别错误的测试模式
- 检查过期的依赖包
- 对于 e2e testing,使用 docker-compose
- 上线实践
- 监控!
- 使用智能日志增加透明度
- 委托可能的一切(例如:gzip,SSL)给反向代理
- 锁住依赖
- 使用正确的工具保护进程正常运行
- 利用 CPU 多核
- 创建一个“维护端点”
- 使用 APM 产品发现错误和宕机时间
- 使您的代码保持生产环境就绪
- 测量和保护内存使用
- Node 外管理您的前端资源
- 保持无状态,几乎每天都要停下服务器
- 使用自动检测漏洞的工具
- 在每一个 log 语句中指明 ‘TransactionId’
- 设置 NODE_ENV=production
- 设计自动化、原子化和零停机时间部署
- 安全最佳实践
- 拥护 linter 安全准则
- 使用中间件限制并发请求
- 把机密信息从配置文件中抽离出来,或者使用包对其加密
- 使用 ORM/ODM 库防止查询注入漏洞
- 通用安全最佳实际集合
- 调整 HTTP 响应头以加强安全性
- 经常自动检查易受攻击的依赖库
- 避免使用 Node.js 的 crypto 库处理密码,使用 Bcrypt
- 转义 HTML、JS 和 CSS 输出
- 验证传入的JSON schemas
- 支持黑名单的 JWT
- 限制每个用户允许的登录请求
- 使用非 root 用户运行 Node.js
- 使用反向代理或中间件限制负载大小
- 避免 JavaScript 的 eval 声明
- 防止恶意 RegEx 让 Node.js 的单线程过载执行
- 使用变量避免模块加载
- 在沙箱中运行不安全代码
- 使用子进程时要格外小心
- 隐藏客户端的错误详细信息
- 对 npm 或 Yarn,配置 2FA
- 修改 session 中间件设置
- 通过显式设置进程应崩溃的情况,以避免 DOS 攻击
```
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录