前端的基本功俺认为最重要的有以下几个:
- HTML / CSS
- JavaScript基础/进阶
- 前端性能优化
- 网络原理
- 设计模式
- 数据结构与算法
- 操作系统
这些“基本功”可以有利于你项目的业务逻辑(设计模式),提高项目功能的性能(数据结构与算法),优化提升网络的通信效率(网络原理)
能否写高质量代码的能力
什么是高质量代码?如何写出高质量代码?都是我们要弄明白的问题。对于什么高质量的代码,俺的个人见解一下几个方面。
第一,程序中的一些边界条件是否考虑清楚。通常我们前期写代码都是 bug 百出,而这些 bug 正式考虑的不全面导致的。比如:上传表单按钮,你是否考虑到避免用户连续单击重复提交的情况?再如有输入框地方是否存在 XSS 攻击?虽然这些都是小细节,正式以为小细节,有时导致牵一发而动全身的威力。
第二,在面试中,面试官让你做一些典型的题目,一般你认为越是简单的越是容易,而的确相反,简单的题目越是有坑,作为面试者越是不会轻易的考虑到细节点。因为这道题在你心里的定位是道简单的题,你已经放松了警惕,给自己一个定心丸“不必多思考”。比如你怎么判断输入的值是否为空,怎么判断空指针的情况等等情况。面试者除了要求你完成一定的功能,还要求你是否注意一些细节问题。
回到问题的本质,俺这系列要讲的是如何应对面试,提高自己能力,提高个人核心竞争力以及日常开发中减少一些 bug。如何锻炼自己写高质量代码的能力才是俺重点要分享的。如下三个步骤:
- 将程序或者项目中的边界条件或者特殊条件考虑全面(并不能全部考虑到,主要靠项目中多积累)。
- 然后应对这些条件,列出要进行测试的例子。
- 写完代码,将测试用例带入,判断程序是否正确运行。
4、是否有优化性能的能力
一个优秀的程序员,对程序的性能优化也是追求极致的。面试过程中,面试官会通过前端常见的页面性能优化以及算法题来考察你的性能优化的能力。前端的性能优化主要在于网络(资源的压缩、合并)、渲染层面(首屏渲染)的优化。这里推荐一个俺看过的一本小册,这本小册让俺受益匪浅,就是阿里巴巴修言的《前端性能优化与原理实践》(PS:没广告费,是俺觉得好,才真心推荐给你们滴~)。
其次面试的时候,面试官对于前端页面的优化只在口头聊聊,作为面试官考察你的性能优化能力只能在手写算法方面了。要想对算法进行各个方面的优化,首先你需知道各个数据结构的优缺点以及对算法时间和空间效率的分析。
能够具备优化性能的能力,是每一个前端工程师日常中不可忽略的能力。