前端入坑周年记——野蛮生长


不久前,正好是我以前端身份工作的一周年。很难相信,毕业前迷茫得找不到北的我,会在没多久后找到一个与自己兴趣相投的职位并且决定长期发展。人总是是要向前看的,但有些时候也需要回顾,我想就这篇文章,来记录这一年里踩过的大大小小的坑,和经历前端风云变化的一些事。

不断踩坑

我清楚记得刚开始工作时的状态——那会儿只学习了些基础知识的我,在第一次面对实际的业务代码的时候一脸懵逼。就像新手从新手村刚出来,就开始不得不面对boss。但其实远没有那么夸张,当你只见过html, javascript, css这些素颜天真的妹子,然后再第一次遇见化妆后的美女们,自然会不知所措。js化妆成了简洁的coffeescript(cs), html化妆成了简洁的jade, css穿上了高跟鞋变成scss.还有强大无比的版本控制工具git, 再加上本来习惯用的windows平台,换成了mac, 就像习惯穿的T恤牛仔,换成了西装衬衫。在把妹(coding)时也越来越不自信了。

但在一开始接触这些,其实并不是坏事。她们让我明白了前端的多样性,多元化,也让我做了今年最棒的事之一——由于工作需要,买了属于自己的Macbook Pro——尽管前不久我才刚刚把分期还完。使用MBP的效率实在是高的惊人,就前端而言,她是如此地方便和快捷。github上有一堆awesome-mac系列app等待你去挖掘。

搭配cs使用的是angular 1.3, 在这一年里慢慢发现,这个曾经流行的MVC框架王者,在框架领域开始慢慢被react和vue瓜分。而1.3更可算是古老的版本了,她和cs正在随着历史潮流退去。这是我后来才意识到的事。在我还没意识到这些的时候,我又接触了typescript + angular 1.4搭建的项目,ts和ES6相似,有许多ES6的新特性,而整体上有一点像java, 静态类型,类,继承,私有状态等等。

前半年大概就在大量接触新内容的状态中度过了。说来惭愧,至少过了个把月,我才渐渐适应这些琳琅满目的框架和预编译语言等等。在这里要感谢两位前辈聪哥和望哥,和他们接触的时间并不久,但给我留下很多可学习的地方。让我在编程初期意识到良好的代码规范在团队中的重要性,要养成好的代码习惯等等。

野蛮生长

后来在望哥帮助下,我构建了一个小项目——主要使用了webpack+ES6, 是一个多页面应用,截至目前只引入了jquery,除此之外包括eslint规范审查,引入babel编译ES6等等。后来应用到了公司的生产环境中,在微信公众号里。建立这个项目初期是期望开发者能简单上手,但随着业务需求的增加,它开始变得捉襟见肘。首先缺乏bootstrap这样类似的样式框架,未定义公共样式,使得后来所有单个页面的样式都需要重写。后来我尝试添加路由,尝试引入express框架却发现每个模块都需要更改,实际条件不允许,更别谈引入react和vue之类的框架了。

接下来的过半年时间我在写以ts和ES6为主的业务代码。在没有框架可用情况下使用纯ES6边学习边写,没有任何模板,也没有时间写模板,不管是样式还是逻辑。即便ES6新提供的语法糖非常可爱实用,但过程却让我非常痛苦,也不得不去github看一些优秀项目的源码寻找更好更优化的方案。这段时间,写几乎纯原生的代码让我开始意识到代码的抽象性。写代码的能力和抽象的能力是正比的。

回顾下来,我渴望进步,所以在工作之余试图让自己处在学习的状态。但或许有些过犹不及——那些技术热文我看了许多,其中却也匆匆扫过许多,留下印象的却寥寥无几。有段时间我啃起了权威指南,有段时间又尝试理解Understore.js源码。阅读内容,方向太杂太乱导致我有时停滞不前。所以最近,我又让自己回归基础,啃起了js权威指南。我始终觉得基础的是最重要的。

划重点

这一年,我的重心从angular+cs转到angular+ts, 再到后几个月的ES6+jquery+webpack,经历了较大的转变。而这年也几乎是我在前端摸爬滚打的一年, google, github issues, stackoverflow, segmengfault等等我用尽各种手段去寻找坑的答案。前两个月有前辈指导,后来就开始横冲直撞。库克说过——总之是一个名人说过——只要是方向对了,不管是跑是走是爬,都是进步,都是好的。但我不想爬了,不想横冲直撞,想走路,想走快点,再快点,我还有饱满的热情不想浪费呢。

最后,留一点私心。最近离职了,正在寻找下一份工作。我的一切几乎都在上面了,剩下的也在博客里,有talk有code。希望也有机会可以和各路前辈大神交流,十分想加入一个优秀的团队,和各位优秀的伙伴共事、成长。

面试题整理-2017 微信支付开发日志

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×