2023 年年初也做了一份年度計劃,沿用 2022 年的 5 個核心目標,在 9 月中旬之前,穩步推進。
  9 月中旬的時候,APP 突然因為某些原因被下架,公司和我自己的計劃都被打亂,公司內部也發生了巨變。
  下面的思維圖列舉出了今年做的一些比較重要的事情。
:-: 
  今年干的事情其實也是知識沉淀、提效保質、體驗優化和研發標準,只是今年會概括為 4 部分:團隊建設、體驗優化、公司變化和日常生活。
## 一、團隊建設
  今年的業務比較穩定,沒有出現新的產品線,不過團隊建設有所突破。
**1)年終述職**
  這個年終述職其實是針對 2022 年的,包括年度工作回顧和年度成果。
  全公司 15 個組,得分排在第 7 名,這個分值有助于提升我們組員 2022 年的年終獎排名。
  公司 2022 年終獎的得分分為 3 部分:團隊得分,組長打分和互評得分。
  互評很考驗日常的協作是否和諧,對你這人的印象如何。
  在日常工作中,我一直會要求大家積極主動的解決各類問題,在技術問答群中多冒泡。
  現在人員充足也穩定,所以對于 2022 年來不及做的各種優化都提上了日程,受益人很多都是協作方。
  最終我們組個人的得分都不低,當然其他組有人表現比較糟糕,他們的得分都比較低。
  最終排名出來后,我們組有一個排名第二,一個排名第五,可以拿 3 薪和 2 薪。
**2)組員成長**
  組員在今年,無論是技術方面,還是業務方面,相比去年都有顯著的成長。
  今年內部技術分享舉辦了 20 場,平均每個人準備了 4 場分享。
  從這些分享中,不僅可以讓我了解到他們感興趣的技術點,還能鍛煉他們的演講和概述能力。
  有機會的話,也會鼓勵他們將一些分享的內容集成到項目中實踐。
  雖然不能嚴格按照雙周一次分享的頻率,但我覺得只要經過思考,有了收獲就可以了。
  今年進行了 18 輪的 Code Review,想通過講解代碼細節提前解決潛在的問題,降低線上業務事故數。
  還有一個目的是在團隊內部推廣編寫適量的注釋,以便在換人維護時,可以迅速理解代碼意圖。
  8 月公司讓每個組長和自己的組員進行一對一的會談,為了及時發現并解決問題。
  但我還發現通過一對一可以了解到組員希望的技術成長,例如想嘗試新技術,將 AI 引入進來。
  未來可以將某些與她感興趣的技術比較契合的需求,交由他來處理。
  還發現其實每個人對公司產品都很有想法,例如對于某個收費功能,希望給他們提供個意見反饋,可以讓開發在后臺了解到痛點。
**3)主動意識**
  大家今年都有了主動思考痛點的意識,在日常工作中,或多或少的都在為業務著想,主動優化各類問題。
  APP 中有許多協議都是 H5 網頁,后臺有個富文本的頁面可用于動態填寫協議,也就是讓運營們自己維護。
  但是它的功能并不完善,有新協議時,需要進行二次開發,后面組內一個成員自己去做了優化。
  優化后同步給產品,產品經理非常高興,也很意外,因為他也沒想過這處的優化。
  另一個優化是成員縮短代碼發布流程,在聊天界面引入飛書機器人,輸入命令后,在聊天頁面就能直接發代碼。
  由原先的每天打開代碼發布頁面 30 次,到現在幾乎不用打開,每天節省了相當多的時間。
  在 7 月優秀員工和團隊評選中,憑借這個優化還讓團隊榮獲最佳創新獎。
  對于產品中有設計缺陷或不合理的地方,大家也會主動與產品協商,并且能給出合適的解決方案。
## 二、體驗優化
  體驗優化包含性能優化,并且其優化對象包括產品用戶、公司員工和研發自己。
**1)監控系統**
  監控系統從 2021 年上線至今,可以說經歷了 3 個階段:完成,可用和好用。
  今年對監控系統做了很大的功能補充,包括錯誤詳情分析、各類新圖表、用戶行為軌跡等。
  通過監控系統主動發現并解決了 3W 多個錯誤,頁面的穩定性有了進一步的提升。
  自動告警規則也做了進一步的優化,避免 46% 左右的誤報,增加定時任務的告警。
  對于性能監控,也做了很多的功能補充,包括Lighthouse 性能測試開關、階段時序圖、操作系統餅圖和區域條形圖等。
**2)技術棧升級**
  從 2022-06-01 至 2023-04-21,終于完成了對 4 張 jQuery 頁面升級至 Vue2 技術棧的改造。
  各組資源的緊張導致上線的一再延期,好在終于完成了,也算是一個里程碑。
  5 月初,將 Ant Design 從 3.X 升級至 4.X,并發布到預發環境,組員內部先做驗收,然后讓業務人員參與驗收。
  經過半個多月的修改和維護,在 5 月中旬替換線上的 Ant Design 版本。
  7?月份對 Vue3 進行了調研,原先是想在 Vue2 的基礎上直接升級,但發現成本比較高。
  于是新開一個項目,先將 3 張頁面升級至 Vue3,在 10 月份完成了上線計劃,未來只會將新需求加到新項目中。
**3)性能優化**
  在 7 月份,公司提出要對海外的用戶提升體驗,當時順勢就未海外增加了 CDN 加速,包括接口和靜態資源。
  開啟加速后,海外 2 秒內的白屏時間從最高 633 降到最低 206,付了錢后,優化顯著,有時候優化需要一股東風。
  8 月份,讓運維在活動的預發環境開啟強緩存,為了能有效的破除頁面 HTML 代碼的強緩存,向客戶端提了兩個需求。
  對兩個活動的地址進行短鏈改造,原先是寫死的地址,現在是動態跳轉的地址,并且可以加一個時間戳參數,破解強緩存。
  客戶端的版本已經發布,待到覆蓋率差不多的時候,再讓運維開啟生產環境的強緩存。
  10 月份將一個重要的常規活動遷移至 Vue3 項目,在優化依賴包后,腳本尺寸比 Vue2 項目降低了一倍以上。
  此活動的白屏 1 秒內占比從 93.2% 提升至 96.3%,首屏 1 秒內占比從 70.5% 提升至 82.1%。
  但是對于 2 秒以上的白屏占比,并沒有顯著的變化,這個得等到強緩存開啟后,看看是否有變化。
**3)開發優化**
  在 2 月份,將 3 個比較重要的榜單活動全部進行了前后端分離的改造。
  在管理后臺中,只要是新的頁面,一律采用分離規則,服務端提供接口,但其實還有相當一部分的后端服務還是由我們組在維護。
  3 月份的時候,試著推廣 E2E 自動化測試,提升頁面交付質量,減少測試資源的消耗。
  但結果并不如意,針對管理后臺,本來就投入不了人力,測試更不會去寫 E2E 代碼了。
  而活動頁面有很多與客戶端的交互,選的 Cypress 框架只能使用普通的瀏覽器。
  4 月份完善全鏈路日志追蹤,定時任務的日志增加標識,用于快速而準確地過濾日志。
  7 月份對支付寶服務進行遷移,廢棄原先無法維護的代碼,其實原先是想把支付服務交接給后端組的。
  但是在與他們聯調時,一直拖延,最后選了個折中方案,與支付寶的交互由我們完成,訂單和商品的發放由他們完成。
  8 月份將非業務數據遷移至單獨的數據庫中,刪除800多G數據,并且將一些非業務接口也分離成單獨的服務。
  當月還對管理后臺的頁面進行了一次瘦身,頁面文件從減少了 79 張,但其實構建時間并沒有減少很多。
  不過在 10 月份,對后臺頁面的構建進行了大包單獨拆分、路由懶加載和所有腳本不壓縮的 3 層優化后,時間從 5~6 分鐘降低到 3~4 分鐘。
## 三、公司變化
  9 月底的 APP 下架對公司營收的打擊是重大的,尤其是 iOS 也被下架后,都無法支付。
  在國慶假期的前一天,集中了團隊人力,增加了 H5 版的支付寶支付,并且將客戶端中的支付都引導至 H5 商品頁面。
  開屏廣告、輪播圖等位置也增加了商品頁面的地址。即使如此,每天的訂單數還是減少了。
**1)裁員**
  因為之前也被下架過一次,下架時間要好多個月,據說當時也做過一輪裁員。
  公司的反映很快,立刻給出了策略,那就是裁員,本來以為是整個公司裁員,沒想到只裁技術部。
  10 月中旬,將技術部人員裁掉一半,直接空出三排座位,不過賠償還是蠻敞亮的,直接 N+1,也不啰嗦。
  但是現在這經濟環境很差,并且還是年底,工作還真不好找。這些被裁的同事反映,很多企業都不會有反饋。
  我自己也特地去招聘軟件上看了下,現在還在大量招聘的就是外包、游戲和電商,并且現在很多會卡本科學歷。
  也向一些老同事打聽,他們的公司也基本上沒有在招人。
  我對被裁掉的組員進行了簡歷輔導,也幫他們完善項目經歷,該優化的都做了優化。
  其中一個同事反饋,他面了幾家,項目問的不多,八股文倒是問了很多,準備不充分,現在還在惡補中。
  其實公司技術部的離職率是很低的,這一兩年里,只有進來的,沒有出去的,加班可以調休,每年還可以調薪,工作強度也不大。
  到點就可以跑,樓下去抽煙也不會限制時間,休息半小時上來都行,管理其實很松,HR 也不會搞事情,要不是裁員,我相信窩在這里的人不會少。
**2)氛圍**
  經過這么一折騰,整個技術部的氛圍降到了冰點,沒有了以往的歡聲笑語,只有鍵盤的敲擊聲。
  人員壓縮后,很多業務也就不做了,留下來的有些人上班也會心不在焉,經常拖延進度,有個需求甚至從 9 月底延到了 11 月底。
  我自己換了個位置,和小組的另一名成員可以坐的近一點。
  目前在公司,自己比以前說的話也要少很多,可能就開會的時候話講的多點。
  項目方面,好在之前做了組件化、標準化、工具化等工作,接手成本并不高,還能從容應付。
## 四、日常生活
  上文也提到,目前這個活強度不是很大,周末可以雙休,日常也不用加班,自己可支配的時間比較多。
  每天的作息其實也比較規律,7 點自然醒,7 點 50 送送小孩上幼兒園,9 點到 10 點之間到公司,10 點后訂餐,12 點吃中飯,13 點午睡,14 點開工,18 點到 19 點之間下班。
  19 點半到 20 點半之間到家,和他稍微互動下,再刷會兒手機,在 22 點到 23 點之間睡覺,每天不熬夜。
  周末帶他去上興趣課或者商場、動物園、海洋館、植物園等地方玩,基本上休息時間就是圍繞著他轉。
**1)旅行**
  今年與往年有個最大的不同就是出去旅行的頻次變高了,自己統計了一下。
  今年帶小孩去了 8 個地方,最遠的是北京,其他都是上海周邊,包括南京、寧波、蘇州、杭州、湖州等地。
  總耗時 20 天,其中工作日請假 4 天,其余都是周末兩天。
  帶著小孩旅行,考慮的點就比較多,住的地方條件也會拉高些。
  還有很多不適合小孩的地方也不能去,比起單獨出去,肯定是要累一些的,不過,也很快樂。
**2)職場**
  最近身邊有 3 個大學同學失業了,兩個是被裁員,一個是公司倒閉,還陸續收到幾個老同事也要失業的消息。
  人到中年,上有老下有小,可能還有車貸房貸,找工作要考慮的點就比較多,例如薪酬、距離、加班情況等等。
  所以一般也不敢輕易離職,我那同學三人都是被動的,現在兩個在找活,一個計劃先試試轉行,我自己也不得不思考未來該如何規劃。
  前幾天和一個老同事面聊,他在某一線大廠干了 7 個月,扛不住離職了,太卷太累,還要出差,沒時間顧家。
  現在這邊雖然平臺不大,薪資一般,但勝在環境比較舒適,離家也不算遠,干的活也不機械。
  為了自己不與程序員這行當強綁定,也嘗試過搞些副業,有些是完全跨行,有些則是基于技術能力做些業務。
  例如自媒體、公眾號等,但最后都因為各種原因都失敗了,現在其實還在繼續思考中。
**3)道德經**
  大學的時候,操作系統的老師曾建議我們去讀一些哲學書,有提高我們的編程能力。
  當時并不很能理解兩者之間的關系,在經過這么多年的工作經歷后,有了點體會,老師的意思應該是通過哲學的思想來解決各類實際問題。
  這些問題其實并不僅僅編程,還包括生活、工作、人際關系等方面。
  道德經我本來以為是一本講思想品德和宗教的書,讀了以后才知道是一本經典哲學書籍。
  老子的思想遠遠領先于當時的大眾,道德經中的道是指世間萬物的自然規律,德是道的外在體現,尊重自然按規律辦事。
  雖然全文只有五千字,但其內容不僅包含樸素辯證理論(一切確定皆否定,既對立又統一地看待問題),還有為人處世、修身養性等各方面。
  許多名句名言諸如“千里之行,始于足下”,“福兮禍之所伏,禍兮福之所倚”,“上善若水”等。
  目前只讀了一遍,體會還不夠深刻,抽空再讀一讀。
- ES6
- 1、let和const
- 2、擴展運算符和剩余參數
- 3、解構
- 4、模板字面量
- 5、對象字面量的擴展
- 6、Symbol
- 7、代碼模塊化
- 8、數字
- 9、字符串
- 10、正則表達式
- 11、對象
- 12、數組
- 13、類型化數組
- 14、函數
- 15、箭頭函數和尾調用優化
- 16、Set
- 17、Map
- 18、迭代器
- 19、生成器
- 20、類
- 21、類的繼承
- 22、Promise
- 23、Promise的靜態方法和應用
- 24、代理和反射
- HTML
- 1、SVG
- 2、WebRTC基礎實踐
- 3、WebRTC視頻通話
- 4、Web音視頻基礎
- CSS進階
- 1、CSS基礎拾遺
- 2、偽類和偽元素
- 3、CSS屬性拾遺
- 4、浮動形狀
- 5、漸變
- 6、濾鏡
- 7、合成
- 8、裁剪和遮罩
- 9、網格布局
- 10、CSS方法論
- 11、管理后臺響應式改造
- React
- 1、函數式編程
- 2、JSX
- 3、組件
- 4、生命周期
- 5、React和DOM
- 6、事件
- 7、表單
- 8、樣式
- 9、組件通信
- 10、高階組件
- 11、Redux基礎
- 12、Redux中間件
- 13、React Router
- 14、測試框架
- 15、React Hooks
- 16、React源碼分析
- 利器
- 1、npm
- 2、Babel
- 3、webpack基礎
- 4、webpack進階
- 5、Git
- 6、Fiddler
- 7、自制腳手架
- 8、VSCode插件研發
- 9、WebView中的頁面調試方法
- Vue.js
- 1、數據綁定
- 2、指令
- 3、樣式和表單
- 4、組件
- 5、組件通信
- 6、內容分發
- 7、渲染函數和JSX
- 8、Vue Router
- 9、Vuex
- TypeScript
- 1、數據類型
- 2、接口
- 3、類
- 4、泛型
- 5、類型兼容性
- 6、高級類型
- 7、命名空間
- 8、裝飾器
- Node.js
- 1、Buffer、流和EventEmitter
- 2、文件系統和網絡
- 3、命令行工具
- 4、自建前端監控系統
- 5、定時任務的調試
- 6、自制短鏈系統
- 7、定時任務的進化史
- 8、通用接口
- 9、微前端實踐
- 10、接口日志查詢
- 11、E2E測試
- 12、BFF
- 13、MySQL歸檔
- 14、壓力測試
- 15、活動規則引擎
- 16、活動配置化
- 17、UmiJS版本升級
- 18、半吊子的可視化搭建系統
- 19、KOA源碼分析(上)
- 20、KOA源碼分析(下)
- 21、花10分鐘入門Node.js
- 22、Node環境升級日志
- 23、Worker threads
- 24、低代碼
- 25、Web自動化測試
- 26、接口攔截和頁面回放實驗
- 27、接口管理
- 28、Cypress自動化測試實踐
- 29、基于Electron的開播助手
- Node.js精進
- 1、模塊化
- 2、異步編程
- 3、流
- 4、事件觸發器
- 5、HTTP
- 6、文件
- 7、日志
- 8、錯誤處理
- 9、性能監控(上)
- 10、性能監控(下)
- 11、Socket.IO
- 12、ElasticSearch
- 監控系統
- 1、SDK
- 2、存儲和分析
- 3、性能監控
- 4、內存泄漏
- 5、小程序
- 6、較長的白屏時間
- 7、頁面奔潰
- 8、shin-monitor源碼分析
- 前端性能精進
- 1、優化方法論之測量
- 2、優化方法論之分析
- 3、瀏覽器之圖像
- 4、瀏覽器之呈現
- 5、瀏覽器之JavaScript
- 6、網絡
- 7、構建
- 前端體驗優化
- 1、概述
- 2、基建
- 3、后端
- 4、數據
- 5、后臺
- Web優化
- 1、CSS優化
- 2、JavaScript優化
- 3、圖像和網絡
- 4、用戶體驗和工具
- 5、網站優化
- 6、優化閉環實踐
- 數據結構與算法
- 1、鏈表
- 2、棧、隊列、散列表和位運算
- 3、二叉樹
- 4、二分查找
- 5、回溯算法
- 6、貪心算法
- 7、分治算法
- 8、動態規劃
- 程序員之路
- 大學
- 2011年
- 2012年
- 2013年
- 2014年
- 項目反思
- 前端基礎學習分享
- 2015年
- 再一次項目反思
- 然并卵
- PC網站CSS分享
- 2016年
- 制造自己的榫卯
- PrimusUI
- 2017年
- 工匠精神
- 2018年
- 2019年
- 前端學習之路分享
- 2020年
- 2021年
- 2022年
- 2023年
- 2024年
- 日志
- 2020