前端工程师职业生涯中的三个问题

自 2016 年正式参加工作，至今已四年有余。和普通的大多数人一样，无论在何处任职，当前正在解决什么问题，似乎都曾陷入一种循环当中：

开始 -> 熟练 -> 厌倦 -> 再开始

从一个公司或者一个项目开始，经过日积月累的经验积累，逐渐对项目得心应手，然后进阶成了一名「专业的熟练工」。长此以往，日复一日，往日手到擒来的事情因缺乏最初的挑战和新鲜感而逐渐让人激情减退，从而开始慢慢进入了厌倦期。长期无法提振的心情会促使自己想着换一家公司或项目重新开始。殊不知，又再一次看到了曾经的自己。于是开始思考，问题出现在了哪里？

在和前辈、大佬的多次沟通后，终有一日，恍然大悟：在无尽的需求之外，真正能够让自己进阶提升的是解决框架、性能及工具三大核心问题。

说到框 /kuàng/（有且只有这一个读音） 架，也许大部分同学第一反应是要求自己做一个像 Vue、Express 一样的大而全的优秀开源框架。长久以来，我也是一直如此理解。其实不然，所谓框架其实就是一件事物的总体结构。以建筑为例上，钢筋混凝土加空间布局就是其框架，使用何种型号的水泥砖瓦以及加入何种比例的钢筋，决定着大楼框架搭建的是否牢固稳定，从而决定楼层能盖的有多高。而其内部的空间设计是否合理，决定着住户今后的移动轨迹及装修方案，从而决定其居住体验。相似的，在日常项目中，如果有幸能够成为项目的第一批开发者，如果能在最开始时，为整个项目抽象出一个合理的模型，考虑好稳定性、扩展性、通用性问题，那么其实你就已经做了一个好的框架。更简单的而言 ，框架是你面对某一问题时的实现方案及代码结构。所以，不必畏惧框架这个概念，也许曾经你已经设计实现了一些框架。

再说性能，想必无需多言，每一位工程师都会有意识去优化代码实现，希望能够在性能上有所突破，从而提升用户体验，节约成本。而面对不同问题与不同实现，性能优化方案又各有不同，此处便不一而足了。但不得不多说的是，性能优化是最容易给出量化指标的方向，需要我们深入理解「性能」，已经如何正确衡量。比如首屏时间，performance.timing 中的 FST、FCP 往往不能正确反应真实信息。在结合自身业务特性后，给出符合当前需求的统计方案就显得尤为重要。同时，无论在做任何优化动作之前，都应当对当前系统的性能数据有定量的数据采集。优化前后的数据对比是最有说服力的证据。

最后，所谓工具其实是效率的提升。一个项目或业务中，往往存在大量或重复或机械性的事务，如果能够细心观察，能够通过工具的手段将同类事务加以解决，那会是对人力资源成本的大幅缩减，而当今社会，人力资源又是最贵的资源，所以，能够在效率上有所突破，一定会是工作成果中的一大亮点。换个角度而言，工具研发是投入产出比最高的工作投入，一次工作投入会在将来无限次重复享受其成果，何乐而不为。

以上，便是工作以来的核心经验总结，希望对你有所帮助，也希望自己或大家在找不到方向时能够从框架、性能、工具三个方向多一些思考。