回顾 2018 年 | 掘金技术征文

前言

时光飞逝,我已经从大学毕业,成为前端工程师。虽然以前也写过一篇回顾文章,但透过这一次掘金给予个人回顾机会,我从新找回了本身的初心,以及本身的方向。前端

前端平常

在平常开发中,个人工做是业务方向,以知足内部用户的需求为主,偶尔才会有写一些面向外部用户的网站。于是保持项目的稳定性和维护性是个人首要工做,是的,不须要很炫酷的技术,但须要很稳定的技术。webpack

发现 Antd 彩蛋问题

在开发本身的博客系统的时候,一直在想要不要把 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/…

完成博客系统脚手架

在编写博客文章的时候,我常常身兼三职,编写博客系统的前端程序员,专心写文章的编辑,以及保证网站服务质量的网站维护者。

  1. 前端工程师:我但愿可使用最新最快的技术,同时保证服务是稳定的,文章能够正常显示。
  2. 编辑:我在编写文章的时候,我但愿能够看到预览的效果。
  3. 网站维护者:网站有问题的时候,能够快速回退到正常的版本,避免线上事故继续发生。 不只如此,我也但愿能够给校对者,对于每个版本分别进行校对。

为了更好地实现这些目标,我选择使用 GatsbyJS + Netlify + Contentful,来达到这件事情。

博客介绍文章:calpa.me/2018/12/24/…

如今这个脚手架取得超过 150个 Star 数,能够说是有点超出个人预期(笑

Github 仓库地址:github.com/calpa/gatsb…

虽然是这样,可是仍是有很多的问题。

下一步就是把 Contentful 的数据存取服务改成 Netlify CMS,充分使用 Github 刚刚提供的免费私有仓库服务。

也是想下降用户使用这个框架的成本吧。

工具类总结

Vue

在使用 computed 的时候,我发现原来它是可使用 getter 和 setter 而不是单纯的 getter 方法。

了解到 Vue 最基本的实现原理:Object.defineProperty,以及订阅发布模式。

Node.js

因为公司业务缘由,咱们使用 egg.js 来拦截,转发,改写请求,同时须要输出报错日志。

Babel

因为 async/await 的方便性,我就直接把它用到项目里面,但是会有 regeneratorRuntime is not defined 的问题。我找到这一段代码是和 Babel 转译相关,因此就开始了解 Babel 是如何转译的旅程,例如 async/await,class,extend。

calpa.me/2018/07/29/…

Webpack

因为要从零开始构建前端项目,因此须要对 webpack 进行一些配置。

我了解到 Webpack 原来由 loader 和 plugin 组成,Webpack 多环境配置的方法,以及如何输出能让程序员看命令行时感到比较友好的一些插件。

2019 年计划

很感谢这一年帮助我从萌新阶段成长的一众程序员,也谢谢大家来到个人博客阅读文章,给予我继续写做的源动力。我会继续编写 GatsbyJS 的文章,以及探索移动端动效的方案。

在新的一年,我但愿能够不单是解决业务问题,更加是但愿以技术的手段,去解决一些重复性的工做。一方面是但愿了解并落地:如何使用 GraphQL 节省 HTTP 接口,只获取只须要数据的查询方法。一方面是但愿能够制做一些可配置的后台模板,直接拖拉就能够获取数据,无需前端手写获取字段。。。

后记

还记得参加谷歌开发者大会的时候,我是专门请假过去上海的,就算没有两天工资,但这些都是值得的。

想到这里,我不由想我究竟是要走技术路线仍是走业务路线。

不过,这个问题随着我写这篇文章就开始有了定案。

来年还望各位多多指教。

相关文章
相关标签/搜索