前端工程师的成长
前端
提纲
职责
前端工程师的定义
前端工程师 —— 通过技术,交付出外观精致、用户体验良好、能够给用户创造价值的web产品
- 外观精致漂亮
- 体验良好
- 解决用户的诉求,给用户带来收益,创造价值,最终给公司创造价值
- 解决问题
怎样算好的前端工程师
疑问
- 技术NB,各种最新技术和框架都知道,谈起来天花乱坠,写代码却举步维艰
- 写代码溜的飞起,别人都看不懂
- 东拼西凑,完成功能拉倒
- 全栈,什么都能能实现,为什么不知道,反正功能跑起来了
优秀的素质
- 责任心
- 好奇心,探究精神,思辨精神
- 良好的编程素养
- 自我驱动,善于总结分享
- 追求效率
- 从用户角度思考问题
- 好的沟通和表达能力
成长方向
初级
- 学习 通过书、文档,写demo来验证等,掌握基础知识
- 项目实践 掌握项目涉及到的所有的技术点:框架api,构建工具的使用,项目开发流程等,学会如何做项目
- 学习如何使代码可读性、可维护性、可变更性(可扩展性)
可读性
- 简单易读,一看就懂,不要故弄玄虚写那些高级的语法(除非为了解决特殊的问题)
- 按照逻辑功能拆分成小段代码,避免大段的代码
- 避免大量的if/else
- 变量命名语义化,特殊逻辑添加注释
可维护性
- 不要hardcode,写死代码,能配置化尽量配置化,例如不同环境的接口域名
- 对未来可能会变化的参数,一开始就应该写在配置文件中
- 凡是每次都需要手动修改的参数,都应该做成配置
可变更性(可扩展性)
- 共有的和业务相关的,基本不变的和频繁改变的逻辑应该进行抽象和分离,提取成公共函数,模板
- 学习设计模式
- 尽量确保每次修改影响的范围最小
中级
- 项目最佳实践,技术文档、组件、公共库、项目模板、解决方案
- 对底层原理的研究和理解,改造开源项目来满足业务需求
- 编写工具提高开发效率
高级
- 技术选型,方案比选,有哪些实现方案,各自优缺点,取舍和均衡
- 提高技术的深度和广度,了解业务的整理的运行过程和原理,哪些是前端来做,哪些是必须后端来做,怎么配合
- 新技术,新框架的出现是解决什么问题,原理是什么
其他
效率
- 提高每一项操作的效率,重复的工作,通过各种软件设置,快捷方式等缩短每一个步骤的时间
- 通过工具软件,来提高操作的效率
- 有效管理时间,设置每一天的工作任务计划,每一个任务的完成时间,经常进行复盘每一个任务完成情况,不断进行优化和反思
- 先紧后松,确保工作时是高效运转的,休息时充分休息
沟通
- 提高沟通的效率,沟通的目的是让别人清楚的明白你说的啥,你想要别人干啥,少废话,说重点,站在别人角度描述,让别人更明白的方式描述
- 提前准备沟通的内容,提前通知和预约,告知沟通的大纲
- 在线沟通,一次性把要沟通的内容描述清楚,直接说问题,避免在吗/有个问题可以问下吗
- 提问时需要把问题的前因后果,一开始是怎么操作的,做了什么尝试和尝试的结果,你的判断,你想要或者认为应该是怎么样的描述清楚
- 如果是bug,需要自己先准备一个能复现bug的最小化上下文(没有其他不相关的代码,只有复现bug需要的代码)
新技术新框架
- 新的东西如果不是解决你目前遇到的问题,就跟你没关系
- 学习新的框架并不能给你面试加分
- 不是为了记住新框架的api,而是学习框架的思想,解决问题的思路和实现原理,适用的应用场景,优缺点,对人和背景知识的要求
技术素养其实是人的修养
- 代码是写给人看的,逻辑清晰,太多的逻辑进行分拆成几个函数,不同的逻辑空一行,方便别人阅读
- 你的代码尽量别影响别人的代码,纯函数,无副作用
- 干净,对齐,方便阅读
- 好维护,可扩展,考虑到后面别人怎么修改,考虑到增加新功能怎么方便增加
- 组件化,方便别人使用,避免重复劳动
- 总结分享
- 考虑变量污染和覆盖,影响别人的代码
- 考虑内存,是否存在内存泄漏,你的代码会不会导致程序崩溃,考虑到别人
- 抽象思维能力,需求 -> 技术实现步骤 -> 可复用的函数