何成为一名卓越的html5前端开发工程师,对于html5前端开发 在HTML5@中国社区里面有许许多多的文章谈论你工作中需要的语言、框架、工具等等。但是我希望能给大家一些不一样的建议。在这篇文章里,我想谈一谈一个前端工程师的心态,希望可以帮助大家找到通往卓越的道路。
很多人埋头写 CSS 和 Java 直到程序工作起来了,然后就去做别的事情了。我通过 code review 发现这种事经常发生。
我总会问大家:“为什么你会在这里添加 float: left?”或者“这里的 overflow: hidden 是必要的吗?”,他们往往答道:“我也不知道,可是我一删掉它们,页面就乱套了。”
Java 也是一样,我总会在一个条件竞争的地方看到一个setTimeout,或者有些人无意中阻止了事件传播,却不知道它会影响到页面中其它的事件处理。
我发现很多情况下,当你遇到问题的时候,你只是解决当下的问题罢了。但是如果你永远不花时间去理解问题的本源,你将一次又一次的面对相同的问题。
花一些时间找出为什么,这看上去费时费力,但是我保证它会节省你未来的时间。在完全理解整个系统之后,你就不需要总去猜测和论证了。
前后端开发的一个主要区别在于后端代码通常都运行在完全由你掌控的环境下。前端相对来说不那么在你的掌控之中。不同用户的平台或设备是前端永恒的话题,你的代码需要优雅掌控这一切。
我记得自己 2011 年之前曾经阅读某主流 Java 框架的时候看到过下面这样的代码 (简化过的):
Js代码
var isIE6 = !isIE7 && !isIE8 && !isIE9;
在这个例子中变量 IE6 为了判断 IE 浏览器版本是否是 6 或更低的版本。那么在 IE10 发布时,我们的程序判断还是会出问题。
我理解的在真实世界里特性检测并不是 100% 工作,而且有的时候你不得不依赖有 bug 的特性或根据浏览器特性检测出来的错误设计白名单。但你为此做的每一件事都非常关键,因为你预见到了不再有 bug 的未来。
对于我们当中的很多人来说,我们今天写的代码都会比我们的工作周期要长。有些我写的代码已经过去 8 年多了还在产品线上运行。这让人很满足又很不安。