时光飞逝,我已经从大学毕业,成为前端工程师。虽然以前也写过一篇回顾文章,但透过这一次掘金给予个人回顾机会,我从新找回了本身的初心,以及本身的方向。前端
在平常开发中,个人工做是业务方向,以知足内部用户的需求为主,偶尔才会有写一些面向外部用户的网站。于是保持项目的稳定性和维护性是个人首要工做,是的,不须要很炫酷的技术,但须要很稳定的技术。webpack
在开发本身的博客系统的时候,一直在想要不要把 Bootstrap 改成 Ant-design。git
直到 2018年 9月的时候,我发现一个公共组件加入了一个圣诞彩蛋,也就是在 12月 25日的时候爆炸的那个问题。程序员
说实话,当时我并无那么注意到这个问题,只是简单的看了一下源码,而后发现它直接推送到 master 分支上面,总感受哪里怪怪的。github
因此我就在 V2EX 上面写一个帖子,而后就没管它了,结果就是 Boom。web
帖子连接:www.v2ex.com/t/490917前端工程师
虽然我很但愿使用 ReactJS
做为个人主要技术,可是旧项目一直在用 regularJS
,以及一个组件库 nek-ui
。于是我须要学会看这些文档,以及文档不必定有的暴露方法。。。框架
当我看见每一个组件都有一大堆传参,我就不断地想,到底这个组件是怎样用的?是否是真的可以生效? 于是我就开始慢慢地学习了如何使用 SourceGraph
看源码。async
上面截图为 Sourcegraph 的一段 nek-ui 开源代码。工具
看是不足够的,因此我就利用 Google Chrome DevTools 调试源码。
在调试的过程,我就发现旧时代的 JavaScript 私有方法是多么的公开透明的。。。能够利用组件暴露的方法,继承并改写它来达到本身想要的效果。
还记得这一年我参加了两次 Node.js Party,以及谷歌开发者大会。
是的,我对于参加这些技术大会并不感到乏味。就算是要坐两个小时公交过去西溪湿地,我也是愿意参加 Node.js 派对的。
此次开发者大会里面,我就认识了一些来自谷歌,掘金的优秀工程师,也是让我有所收获。
若是你有自动化测试应用的需求,那么你能够尝试使用 Puppeteer。
若是你有测试网站性能的需求,那么你就可使用 Lighthouse,它会生成性能报告,并提供能够改进的措施。
博客介绍文章:calpa.me/2018/09/24/…
在编写博客文章的时候,我常常身兼三职,编写博客系统的前端程序员,专心写文章的编辑,以及保证网站服务质量的网站维护者。
为了更好地实现这些目标,我选择使用 GatsbyJS + Netlify + Contentful,来达到这件事情。
博客介绍文章:calpa.me/2018/12/24/…
如今这个脚手架取得超过 150个 Star 数,能够说是有点超出个人预期(笑
Github 仓库地址:github.com/calpa/gatsb…
虽然是这样,可是仍是有很多的问题。
下一步就是把 Contentful 的数据存取服务改成 Netlify CMS,充分使用 Github 刚刚提供的免费私有仓库服务。
也是想下降用户使用这个框架的成本吧。
在使用 computed 的时候,我发现原来它是可使用 getter 和 setter 而不是单纯的 getter 方法。
了解到 Vue 最基本的实现原理:Object.defineProperty
,以及订阅发布模式。
因为公司业务缘由,咱们使用 egg.js 来拦截,转发,改写请求,同时须要输出报错日志。
因为 async/await 的方便性,我就直接把它用到项目里面,但是会有 regeneratorRuntime is not defined
的问题。我找到这一段代码是和 Babel 转译相关,因此就开始了解 Babel 是如何转译的旅程,例如 async/await,class,extend。
因为要从零开始构建前端项目,因此须要对 webpack 进行一些配置。
我了解到 Webpack 原来由 loader 和 plugin 组成,Webpack 多环境配置的方法,以及如何输出能让程序员看命令行时感到比较友好的一些插件。
很感谢这一年帮助我从萌新阶段成长的一众程序员,也谢谢大家来到个人博客阅读文章,给予我继续写做的源动力。我会继续编写 GatsbyJS 的文章,以及探索移动端动效的方案。
在新的一年,我但愿能够不单是解决业务问题,更加是但愿以技术的手段,去解决一些重复性的工做。一方面是但愿了解并落地:如何使用 GraphQL 节省 HTTP 接口,只获取只须要数据的查询方法。一方面是但愿能够制做一些可配置的后台模板,直接拖拉就能够获取数据,无需前端手写获取字段。。。
还记得参加谷歌开发者大会的时候,我是专门请假过去上海的,就算没有两天工资,但这些都是值得的。
想到这里,我不由想我究竟是要走技术路线仍是走业务路线。
不过,这个问题随着我写这篇文章就开始有了定案。
来年还望各位多多指教。