关于前端
- 正在尝试从后端 / 数据处理软件开发转到全栈的我,发现犯下的最大的错误就是:以为前端很简单。最初听到这个可能是从哪里的论坛或者大学期间听人说的,从而留下了这样的印象。我最近的感想是:前端一点都不“简单”。
- 学习前端需要处理大量的心智负担,有的甚至是有些 Confusing 的(比如 React Hook,真的看了几遍都还是云里雾里)
- 所以我开始想,为什么会有人认为前端简单,而实际上前端比我想象得要复杂得多呢?
- 很多人说前端简单的原因大概是:如果只是想画出一个页面,做到堪堪能用的地步,确实花几个月的时间就能做到。
- 其中很大的一个原因是,很多框架的宣传都会说:我们很好用,只用学习我们的 API 并把我们当成黑盒,就可以了。信了这句话是我犯的第一个错。
- 学习前端并不能绕过底层框架。事实上我觉得任何在不了解“What’s happening under the hood” 的情况下写任何代码都是危险的,区别在于我们知不知道有几层Hood。假设我要去做 Flink 相关的开发,我做的第一件事就是熟悉 Flink 的底层架构以及一些常用概念,这样我才有可能开始写代码。甚至哪怕只是单纯的使用 Flink,也不能绕过一些底层的概念来写 Pipeline。但是在开始学习前端的时候,我竟然天真的以为不用去理解 React 以及各种黑魔法之后的原理就可以学好前端,真是太天真了。
- 学习前端也不能 Cut Corners,该看的文档必须认真看,该懂的渲染逻辑,底层逻辑,晦涩的语法和黑魔法都应该掌握,不然我心里不踏实。
- 想清楚这一点之后,其实就能走上正道了。不再求快,而是正二八经地去理解前端这门技术,而不是真的以为“它很简单”。如果没有这种敬畏之心,学不好是理所当然的。
吐槽
- 前端的框架 / 范式 实在是太多了。有很多 Opinionated Solutions。新的 Solution 每天都在出现,如果不是真的用某个框架写过代码,真的无法做出有效的评价。
- 我现在寄希望于能够通过 React 理解一些前端通用的问题,比如 CSS 管理,工程化,跨平台,组件化,状态管理,逻辑复用等等的一些解决思路以及各自的优劣点。这件事我觉得很有必要(不然心里面不踏实,看别人的评价总是不如自己的感受实在)。
- 前端的框架有很多的 Hidden / Tribe Knowledge。这些东西如果你不读文档就不知道它们是如何工作的。如果一些 Critical 的细节被全部交给框架,那么开发者就必须得去理解框架在做什么。
日常
- 今天煮了火锅,不容易啊。