banner
innei

innei

写代码是因为爱,写到世界充满爱!
github
telegram
twitter

我与前端

“能说说为什么学习前端吗,背景和动机是什么?”

这个问题是我最近一个月最多被问到的一个问题。

仔细想想,自己已经接触前端 2 年了,正正好好两年。两年前的现在,我还是个大一的学生,和大部分人一样,年轻有迷茫。看不到未来的路在何方。在此之前,我学了一段时间 Python 网络爬虫,做过几个脚本。一个偶然的机会,认识了 @Paul,通过交流之后,了解到他也是自学的前端。他有一个自己独立开发的个人空间,那个时候我想着我以后也要自己做一个那样的站点。那个时候,通过写博客,认识到了很多人,一起做独立博客的人。要知道,在当下,自媒体公众号已布天盖地,而真正通过写独立博客的人已经很少了。

刚步入一个新领域的时候,多多少少是困难的,尤其是自学。大部分人可能会跟着某个视频教程学习。而我却不是,我是通过直接修改别人做的比较优秀的主题来学习的。我承认我大多数在乱改,但是更多也是从中学习到了什么。那时候我边学习基础知识,边改主题,也就是实践。想要达到一个预期,也需要通过搜索引擎去认知一些更深入的知识。所以那个时候,我并没有从基础开始学,那样太慢了,也会感觉到很枯燥,而我又是一直都是通过兴趣驱动型的。我一直认为只有兴趣的驱动,才能学得更快,学的进去。也正是因为这样,那段时间我过得很快乐,每天都在学习和做自己的项目,那段时间我移植、修改了多个 Typecho 的主题。也是那段时间,我爱上了开源。受 Phodal 的影响,最后也完成 GitHub 百天连击。(那些黑历史在 GitHub 仍能找到

那年暑假,我正式开始了前端工程化项目的学习。前端工程化的入口点是比较难找的,从纯原生到框架的跳跃。需要接触到前端一系列工具链,以及对整个目录结构的认识,模块化的拆分。而那段学习的过程,我是通过 B 站的全栈之巅发布的视频学习的。这是一位非常优秀的 UP 主,视频也十分优质,但是关注的人有点少。我向后入门了 Vue 2,以及 Express、NestJS。学习的过程不是一味的照搬照抄,一味的跟着教程去做是没有什么收获的。最重要的是举一反三。师傅只会带你入门,修行还是得靠个人。之后,我便开始独立实践,开始做一个新的项目。而这就是我的初心,做一个个人空间,我想我是时候可以去完成它了。

独立开发是一个比较困难的事情,遇到问题不知道应该去问谁。除了通读官网的文档,有时还是不能解决问题,多上 Stack Overflow 看看,原来还是有一些 trick 的方法。其次是项目的结构,前期的架构不当,会导致后续维护的火葬场。也是因为这样,第一代空间没上线就腹死胎中了。而现在的版本则是学习参考了他人的项目结构上作成的。虽然到了现在还是比较杂乱的,对于后续维护来说不是一件友好的事情。最主要的原因还是最初没有罗列一个大纲。单元测试在重构过程中十分重要,但是我至今不会编写用例,找不到一个切入口。

那年下半,我一直都在和 Vue 2 打交道,写了很长多的练手 demo。就是这样一个没有任何实战经验的小白,阴差阳错的进了一家公司实习。对于没有 React 经验的我来说,无疑是一种挑战。但是那是一个非常好的机会,我没有错过。这就是我,不管自己行不行,我都去试一试了,需要自己把握机会。我周围有这样一些人,也有正在学习前端的人,当你伸出援手,拉他做一些项目,并且愿意去带他,而他却会回绝并称自己能力不够。是啊,既然你能力不够,为什么又不去珍惜这些机会呢。换做是我,我一定会接受。毕竟在此之前,我多么希望也有人说,嘿,一起做项目?

学习一个新的框架需要多久。何为学习,何为学会。如果是会使用一个框架,那么可能从零到会只需要一天。而我那时学习 React 也就一天。我学会了吗,不,我只是会用了。学习是个漫长的过程,至今我仍不敢确切的说我学会了 React。React 是一个十分优秀的框架,按官方的说法,它称不上框架,而只是一个库 (Library),相比 Vue 2 来说,他没有 Router、没有 Store。所以他的生态也出现了好多同类别的不同的选择。React JSX 的写法更加友善,相比之下我慢慢地转向 React,之后的一年直到现在,我都已 React 为主要技术栈。React JSX 的写法一直刻在我心里,我想着哪天 Vue 也能和 React 平起平坐,毕竟它也是我第一个接触的框架。Vue 3 的到来让我看到了曙光,这简直是 React Hooks 的翻版,但是经过多次的使用之后,对于生态上还是有点失落。很多库从 Vue 2 迁移过来,对 TypeScript 支持度差,JSX 的写法实在糟心。官方对于 JSX 的写法也没有明确说明。(毕竟官方一直推崇的是 Template 写法,在 Compile 阶段静态优化,让 Runtime diff 上更加快速。但是我还是喜欢 JSX 的写法)

对 TypeScript 的了解在那时候也酝酿很久了。一直想找个机会使用它。正巧,接到了一个外包,他的后端字段非常的乱,如果使用 JavaScript 的话,对后端数据的处理上比较难,难在所有的 Type 都是 any(指 JSON parse 之后)。我使用了 JSON2TS 工具把 JSON 的 interface 转出,这样就比较好写了。然后又学习到了 Vue 下的 TS 写法,以及 Vue Class Components 等等。

之后的故事都在往期文章中可以看到,就先不写了。可以从这里开始阅读:

宅在家里做的事

最后#

可以从往期回忆中了解更多:

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。