自 2016 年正式參加工作,至今已四年有餘。和普通的大多數人一樣,無論在何處任職,當前正在解決什麼問題,似乎都曾陷入一種循環當中:
開始 -> 熟練 -> 厭倦 -> 再開始
從一個公司或者一個項目開始,經過日積月累的經驗積累,逐漸對項目得心應手,然後進階成了一名「專業的熟練工」。長此以往,日復一日,往日手到擒來的事情因缺乏最初的挑戰和新鮮感而逐漸讓人激情減退,從而開始慢慢進入了厭倦期。長期無法提振的心情會促使自己想着換一家公司或項目重新開始。殊不知,又再一次看到了曾經的自己。於是開始思考,問題出現在了哪裡?
在和前輩、大佬的多次溝通後,終有一日,恍然大悟:在無盡的需求之外,真正能夠讓自己進階提升的是解決框架、性能及工具三大核心問題。
說到框 /kuàng/(有且只有這個讀音)架,也許大部分同學第一反應是要求自己做一個像 Vue
、Express
一樣的大而全的優秀開源框架。長久以來,我也是一直如此理解。其實不然,所謂框架其實就是一件事物的總體結構。以建築為例上,鋼筋混凝土加空間佈局就是其框架,使用何種型號的水泥磚瓦以及加入何種比例的鋼筋,決定著大樓框架搭建的是否牢固穩定,從而決定樓層能蓋的有多高。而其內部的空間設計是否合理,決定著住戶今後的移動軌跡及裝修方案,從而決定其居住體驗。相似的,在日常項目中,如果有幸能夠成為項目的第一批開發者,如果能在最開始時,為整個項目抽象出一個合理的模型,考慮好穩定性、擴展性、通用性問題,那麼其實你就已經做了一個好的框架。更簡單的而言,框架是你面對某一問題時的實現方案及代碼結構。所以,不必畏懼框架這個概念,也許曾經你已經設計實現了一些框架。
再說性能,想必無需多言,每一位工程師都會有意識去優化代碼實現,希望能夠在性能上有所突破,從而提升用戶體驗,節約成本。而面對不同問題與不同實現,性能優化方案又各有不同,此處便不一而足了。但不得不多說的是,性能優化是最容易給出量化指標的方向,需要我們深入理解「性能」,以及如何正確衡量。比如首屏時間,performance.timing
中的 FST
、FCP
往往不能正確反應真實信息。在結合自身業務特性後,給出符合當前需求的統計方案就顯得尤為重要。同時,無論在做任何優化動作之前,都應當對當前系統的性能數據有定量的數據採集。優化前後的數據對比是最有說服力的證據。
最後,所謂工具其實是效率的提升。一個項目或業務中,往往存在大量或重複或機械性的事務,如果能夠細心觀察,能夠通過工具的手段將同類事務加以解決,那會是對人力資源成本的大幅縮減,而當今社會,人力資源又是最貴的資源,所以,能夠在效率上有所突破,一定會是工作成果中的一大亮點。換個角度而言,工具研發是投入產出比最高的工作投入,一次工作投入會在將來無限次重複享受其成果,何樂而不為。
以上,便是工作以來的核心經驗總結,希望對你有所幫助,也希望自己或大家在找不到方向時能夠從框架、性能、工具三個方向多一些思考。