# 编辑器
推荐使用vscode
# FE Pack
前端团队插件合集,包含如下插件:
Bracket Pair Colorizer 2
:为括号添加颜色,快速找到匹配的括号ESLint
:js代码规范校验,⚠️注意:需要点击状态栏中的ESLint
手动开启权限才能使用GitLens
:git图形化插件HTML CSS Support
:编写id或者class名称时,根据<style>
样式中的id或者class选择器名称自动推荐。Prettier
:代码格式化工具Document This
:自动生成jsDOC注释colorize
:为css/sass/less/postcss/stylus/XML
等文件设置颜色样式的可视化image preview
:根据url实时预览图片Chinese (Simplified) Language Pack
:中文语言包Code Spell Checker
:英文拼写检查,防止拼写出错stylelint
:样式规范检查工具Highlight Matching Tag
:高亮选中的html标签Visual Studio IntelliCode
:提供AI建议EditorConfig for VS Code
:让vscode支持.editorconfig
文件
# 添加VSCODE额外配置
以下内容添加到配置末尾
{
"extensions.autoUpdate": true,
"docthis.includeDescriptionTag": true,
"docthis.includeMemberOfOnClassMembers": false,
"prettier.htmlWhitespaceSensitivity": "ignore",
// 指定默认格式化插件
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.wordWrap": "on",
"eslint.validate": ["javascript", "javascriptreact", "vue"],
// vue format使用vetur
"vetur.format.defaultFormatterOptions": {
"js-beautify-html": {
"wrap_attributes": "force-expand-multiline"
},
"prettyhtml": {
"singleQuote": false,
"wrapAttributes": false,
"sortAttributes": false
}
},
"[vue]": {
"editor.defaultFormatter": "octref.vetur"
},
// 让HTML CSS Support插件支持vue
"css.enabledLanguages": [
"html",
"vue"
]
}
# 推荐插件
bookmarks
:添加书签,快速切换到指定位置git-commit-plugin
:Angular风格的git提交信息小插件JavaScript (ES6) code snippets
:js代码段Live Server
:为页面快速生成本地服务Markdown Emoji
:为vscode内置的md preview添加:emoji:
语法支持Markdown Preview Enhanced
:超级强大的 Markdown 插件Quit Control for VSCode
:防止误触⌘Q
退出vscode
Settings Sync
:vscode配置同步插件vetur
:vue
官方vscode
插件
# 移动端调试插件
export default function ({ app, route, isDev }) {
// 限制:query中包含debug=true,或者域名开头包含dev
if (
/debug=true/.test(window.location.href) ||
window.location.href.split('//')[1].startsWith('dev')
) {
const debugReset = () => {
window.ny_debug = {
count: 0,
startTime: null,
endTime: null,
};
};
debugReset();
const addConsole = () => {
const s = document.createElement('script');
s.type = 'text/javascript';
s.defer = true;
s.onload = () => {
// 本地开发默认显示
if (isDev && window.eruda) window.eruda.init();
};
s.src = 'https://cdn.bootcdn.net/ajax/libs/eruda/2.4.1/eruda.min.js';
document.body.appendChild(s);
};
// 添加eruda
addConsole();
// 限制:时间间隔小于3秒,点击区域y轴<=300,点击次数等于10
document.body.addEventListener('click', (e) => {
// 不满足条件时清空flag
if (
e.y >= 300 ||
(window.ny_debug.startTime &&
window.ny_debug.endTime &&
window.ny_debug.endTime - window.ny_debug.startTime >= 3000)
) {
debugReset();
}
window.ny_debug.count += 1;
if (!window.ny_debug.startTime) {
window.ny_debug.startTime = Date.now();
} else {
window.ny_debug.endTime = Date.now();
}
// 点击次数大于10
if (window.ny_debug.count >= 10) {
debugReset();
// 存在eruda则销毁
if (window.eruda._isInit) {
window.eruda.destroy();
} else {
window.eruda.init();
}
}
});
}
}
# 里程碑
# 2021-05-09
- 添加前端插件合集。统一代码风格,增强代码质量,减少code review复杂度。
# 2021-05-18
- 添加移动端调试插件
# 2021-06-25
- 编辑器打包从webpack5迁移vite打包
# 2021-06-29
@yy
库已经可以在gitlab上发布并下载
# 2021-11-18
- @yy v0.2.0发布
- @yy/cli,添加根据模板快速创建项目功能。
- @yy/template,添加
template-nuxt-element
模板,基于nuxt-bridge、element-ui的前端实践总结,达到开箱即用阶段
# 新人问题
- 不善于搜索
- 不能总结已经犯过的错误
- 分不清主次,保证自己写的页面没有bug,了解业务之后,再去干别的。
- 无法自己解决问题
- 无意义的代码不要提交,或者单独做一次提交
- 修改组件前,需要考虑是否会影响其他代码
- 任务没有确认时,不要答应
- 交代的任务没有反馈,遇到问题没有反馈
- 提交代码要分功能块提交,不要把所有东西一次性都提交
- 新人代码,前期需要老员工review来保证质量
- 不确定的事情多沟通,避免产生歧义
# 技术选型
- 选择最熟悉的,方便控制风险
- 强大的生态和社区支持
- 对于生态新技术的整合能力(速度、质量)
- 选择一个技术的最低标准是,技术的生命周期必须显著长于项目的生命周期
- API的稳定性
- 公司内部基础设施的配合
- 业务考虑:就是选型需要充分地理解业务,理解用户需求,当下需要解决的首要问题,以及可能的风险有哪些,再将目标进行分解,进行具体的技术选型、模型设计、架构设计.
# 规范
# git
- cms git规范每个提交应该表示出属于哪个版本
# 前端
- boolean值使用
is
can
has
need
等开头,如果函数也是返回boolean,为了避免与变量命名冲突,可以在前边添加get、check
来区分 - 函数或者方法名尽量使用动词,比如
get
set
read
create
add
update
reset
delete
remove
- 数值的命名:
width length count
,如果没有合适的就采用 numberOfXXX xxxCount 之类的通用命名
# 工作流
# 小型团队
更适合使用kanban类软件进行项目管理,方便快捷,反馈及时
# 问题
# 单点故障
每个人负责单独的任务,如果有离职或请假则会让人措手不及,解决单点故障的办法就是让成员交叉参与不同的项目,项目的责任在团队而不是个人。还可以通过code review这种方式熟悉项目代码。
代码规范和共享代码在这里也可以起到很大的作用。如果'知识'可以在多个项目中复用和共享,那么项目上下文切换的成本就相对比较低。