基础
- Javascript(js)
- CSS(css)
- HTML(html)
- 了解 浏览器渲染流程,知道如何优化 页面渲染效率
- 熟练使用 Webpack,Vite 等 前端 开发构建工具
- 熟练使用 Vue 3.0,Vue Router,Vuex 等 Vue 全家桶
- 熟练 进行 Vue 2.0 向 Vue 3.0 进行迁移
Javascript(js)
- ES5
- ES6
- ES7
- ES8
- ES...
浏览器(DOM)的对 javascript
兼容问题
CSS(css)
- CSS 2.0(非主流,不建议深入)
- CSS 3.0(主流)
浏览器(DOM)的对 css
兼容问题
HTML(html)
- HTML 4.0(非主流,不建议深入)
- HTML 5.0(主流)
浏览器(DOM)的对 html
兼容问题
CSS 必备技能
- 基于css的扩展语言,如:sass、less等
- postcss (css代码转换工具)
- 编程式css, 如:styled-components
- 移动端适配(百分比、rem、vw)
- PC端浏览器兼容方案
- 响应式布局
- 优化策略
前端框架
前端项目(以 vue 3.0 为例)
掌握一门后端语言
版本工具
- 熟练 git 进行版本 控制
- SVN 进行版本 控制
必备技能
- HTML 5.0 和 CSS 3.0 和 JS (ES5,ES6,ES7,...)
- 精通一个MVVM框架
- web性能优化
- webpack进阶
- Nodejs
- 混合开发
- PWA 和 AMP 和 BMP
- Linux shell、Nginx
后端语言 Node.js
- 脚手架 express
技术和技巧同样关键
- 基础 javascript 和 使用 javascript 技巧
- 基础 css 和 使用 css 技巧
- 基础 html 页面布局 和 html 页面布局 技巧
一精多专
- 先广博,后专精
- 精通 javascript 语言,了解(或熟悉)多门语言
构建领域生态
- 将所掌握的知识反复揉捏,形成自己的技术闭环
技术攻坚
- 知道自己缺什么,应该去学什么
- 对所掌握要有深度
- 先广博,而后精
尝试了解产品背后的价值
- 对比整个行业和你所做的事情,发现我们行业的共性,以及不同公司对同一问题的不同解决方案
- 梳理清楚整个行业的技术方案,做一个横向的对比,有了这个行业以后呢,你就知道整个行业的技术痛点
- 完全不需要别人,知道自己缺什么,应该去学什么
编程思维
- 强化 编程思维
- 训练 逻辑思维
- 总结 问题及解决方法
学习方式
- 确定技术领域
- 不要局限于技术,要跳出来技术圈了解产品,了解产品背后的价值了解不同公司的同类产品、技术上的优势、劣势,而不是在被动的执行中中学习
- 技术学习要与时俱进,不要吃老本
前端架构
- 架构需要从需求的角度出发去考虑
- 根据项目功能需求选择前端架构
- 只有合适的架构,没有最准的架构
- 架构要与时俱进
- 架构要不断积累
技术选型必须考虑的因素
- PC端还是手机端
- [toB](),还是[toC]()
- 用户规模
- 浏览器支持(兼容)情况
- 项目是否需要支持SEO
- 团队成员对该技术(或框架)的掌握情况:是否有人可以全局把控、学习成本是否可以接受
- 该技术能否可以满足业务需求
- 该技术(框架)本身的稳定性,它的社区、维护者等
进阶 - 网站性能优化
javascript 性能优化
- 按需加载
- PWA(渐进式增强策略)
- 使用外部链接方式
- 多线程
- 减少、合并DOM访问
- 压缩 javascript 代码
图片优化
- 使用响应式图像和 WebP(图片
有损压缩
格式) - 逐步加载图片
- 压缩图片
- CSS Spirte(精灵图,雪碧图),减少服务器请求
- data:URL模式(url scheme data)
- 懒加载
- 字体图标
- 合适的图片格式
常见问题
- 视觉稿/交互稿未按时提供
- 需求变更
- 工作量评估不足
- 后台接口未按时、按质完成
- bug有好多,但修改不及时
总结
要得出一个靠谱的完成时间,至少需要明确以下内容
- 前端、后台 各自的工作量
- 前端、后台 投入研发的时间点
- 前端、后台 联调的工作量、时间点
- 需求提交测试的时间
- 需求测试的工作量
明确需求
- 关键时间点
- 责任到人
- 严控开发、自测、提测质量、工作包可检查
- 及时暴露风险
- 做好沟通,主动推动解决问题
- 关注线上质量(责任意识)
产品发布过程
- 提出需求
- 前后端 开发
- 前后端 连调
- QA 和 测试
- 发布版本
需求确认
- 评论最大支持输入多少个字?(非常重要,关乎后台存储方案的设计)
- 1个中文算1个字,多少个英文字母算1个字(产品语言、技术语言 之间的沟通转换)
- 输入内容过长,如何进行错误提示?(交互细节)
- 内容过长,是否允许提交评论?如允许,是对评论内容进行截断后提交?(容错)
- 用户未输入内容的情况下,评论框内默认提示文案是什么?(交互细节)
注意:需求确认后,要形成文档
需要具备的思维
- 架构思维
- 领导思维
- 产品化思维
- 组件化思维
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。