關於我與前端無關緊要的分享 Day 58
想了幾天要怎麼經營這個帳號,覺得有點迷失方向。暫停手上的開發,慢下腳步,發現自己太過於急躁不安了。
共 57 篇
想了幾天要怎麼經營這個帳號,覺得有點迷失方向。暫停手上的開發,慢下腳步,發現自己太過於急躁不安了。
日更的最後一天。回故鄉找老朋友聊完之後的檢討:去年的低潮、對後輩成長的羨慕與嫉妒,以及每天寫文章給自己的那份壓力。
Frontend Infra 這個系列背後有段故事:原本是想做成課程的文稿,寫到後半段難產,自我懷疑和內耗都很可怕,最後只好把大綱放出來。
陳述型的技術文章沒有「精華感」,也沒有演算法喜歡的關鍵字,不容易飄出去。但這系列會是踩過無數坑的紮實經驗談。
Full Stack Engineer 本來是很尊敬的詞,指精通前後端的人。後來被誤解成「網頁全部做的人」,才慢慢變成什麼都會什麼都不會的貶義詞。
開一個前端基礎建設的篇章。每篇長度不均,還會加一點幹話,不會到部落格的複雜度,但盡量交代前後文。
Monorepo 有很多流派:主框架放 root、共用放 root、或是 root 乾乾淨淨。我偏好切分清楚的那種,每個 package 都有獨立的存在價值,代價是比較麻煩。
webpack 怎樣都不肯把 require 轉成 __webpack_require__,我丟給 Claude Code 查,燒到 token limit 還沒解決。自己查半小時就找到答案:package.json 的 type 設成 module。
CommonJS 與 ESModule 是天生不對等的兩種實作,轉換工具解決不了。這篇講 Node.js 生態的歷史包袱,以及為什麼這塊連 LLM 也幫不上忙。
AI 切版切得好不好,取決於設計師 Figma 的品質。說 AI 切得很棒只有兩種可能:你的設計師功力高超,或是你根本沒有設計稿。
tailwind 幾乎成了 Atomic CSS 的標準,但它跟 UI Library 其實不太合:無法動態拆 CSS Chunk、掃描原始碼需要曝露、變數架構更隱晦。
轉職故事連載最後一集。看著身邊優秀的後輩爬到另一個高度,我羨慕也嫉妒。可能是包袱多了、放不下多了,反而沒有剛轉職時的瘋狂。
轉職故事連載第四集。沒有優良的背景、沒有正統的學歷、沒有幸運進到好公司,就是一個平凡人從基層一步步爬上去的過程。
轉職故事連載第三集。這幾天有點軟爛,想做的東西都沒進度,最少還是把連載的進度給 Po 上來。
在老派風氣的地方推動改變需要天時地利人和:值錢的老專案、想進步的主管、想改善的設計師、有執行力的統合者,還有能插縫的時間。
轉職故事連載第一集。海軍官校畢業、諾克斯驅逐艦輪機、退伍後做保全與社區幹事,一路到為了行銷產品而認識 Wordpress。
一個人的執著和熱情都會留在程式碼裡。AI 來了之後雜訊變多,但 AI 寫的東西反而更好辨識,因為它就是有一股「AI 味」。
UI Library 卡了兩週都在調架構,Primitive UI 的 API 設計常常撞到底層盲點。測試案例動不動比原始碼大兩三倍,維護難度又更高。
轉職故事連載第二集,就是把部落格舊文章拿來貼的爽發系列,接著講退伍後怎麼一路走向網頁開發。
設計師開始主動要求導入 Storybook 了。導入失敗多半敗在不重視元件庫迭代;而 .stories 檔案其實也是給 AI 很好的 Context。
除了 React 之外的框架都在走 signal 的心智模型。但事實證明,成功的產品不需要優秀的工程實作,它需要的是市場聲量和穩定。
精疲力竭的時候該怎麼補?缺 E 能量就去喝咖啡閒聊、無目標散步、小酌兩杯;缺 I 能量就冥想、瑜珈、沖熱水澡。真的沒勁就好好睡一覺。
Primitive UI、Atomic UI、Headless UI 講的都是同一件事。原子化把樣式控制權還給你,但版本管理、依賴共用、權重管理這些問題也一併曝露出來。
越熟悉 Chakra UI 的底層,越覺得它的抽象化是門藝術。真正驚奇的不是 Chakra 本身,而是 Zag、Ark、Park 這三套底層的抽象技巧。
老友找我報價,才又想起接案市場的價格有多凌亂。隨便一個產品級 MVP 都要百萬預算,但需求方多半根本不知道做系統要付出什麼成本。
React 更新了,React 19.2 ! 其中我最在意的功能莫屬 useEffectEvent 。 一直以來 react 在下傳 function 時要去掛勾 useEffect 常常造成不必要的更新,這不是用 useCallback
倦怠感一波一波,Side Project、英文、教材、文章全部延宕。強迫自己每天還是輸出點東西,寫點文字驅使自己不能懶惰。
業務、行銷、公關也有莫大的專業成分,資訊迭代的辛苦跟軟體有得拼。不管你是行銷人還是工程師,去貶低別人的專業,我先看不起你。
要讓純小白靠 Vibe Coding 做出應用程式,背後需要的基礎知識量實在太龐大。看似學會了一門技術,其實只是站在愚昧的山峰上。
Select、Dropdown、Tooltip、Modal 都建立在 Portal 上。點背景要不要關、撞到邊界要不要換邊、內容過多怎麼滾,每個邊際問題都得處理。
我學畫圖的四個階段:描線、臨摹、內化、應用。寫程式也是一樣。工具可以加速、帶來成就感,但不該因此輕視「學習基礎」這件事。
從行銷圈跳到工程師圈,我很喜歡這裡樂於分享、單純直接的特性。免費套件和 AI 的能力都是這些善心人給的,但現在大家好像只在比誰賺得多。
前端打包是最難學又最不容易被看到的技能。大部分人只是把插件爽快加上去,卻沒想過 pipeline 裡發生了什麼,這其實是在疊技術債。
PM 在驗證需求寫「禁止特殊符號」時我最害怕。到底什麼算特殊符號?白名單還黑名單?鍵盤上看得到的才算?emoji 算不算?
各種 Icon 方案我最喜歡 SVG。這篇講怎麼把 SVG 文字直接 mount 到 HTML、用 currentColor 控制顏色、用 em 讓尺寸繼承 font-size。
做 Dialog 一定要實作 Portal,因為 overflow 這個天坑連 fixed 都躲不掉。這篇也講定位為什麼一定要用絕對位置,以及鎖捲軸時的抖動怎麼處理。
以為 Button 是最簡單的元件,做下去才知道超級困難。Variant 與 Theme 該不該混用、icon 讓 Size 的 padding 難以分類、Loading 要不要保留原寬度。
年薪百萬前 All in tech,120 到 160 靠的是人格特質,再往上要的是學歷、刷題、英文。開源、社群、Side Project 對突破天花板的幫助沒你想的大。
CSS 的色彩系統進步飛快,color-mix 讓半透明疊色和 CSS 變數混搭終於可行。但致命缺點是不能 transition,算出來的顏色也不好預期。
老客戶要重啟四年沒維護的專案,clone 下來 install 就紅得慘烈。最後是靠 git 裡的 lock 檔紀錄,把沒問題的版本組合一個個挑出來。
上一個 UI 專案陣亡了,這次改成自己顧自己衝刺,用 Build in Public 的方式邊做邊分享。技術線是 zag.js、panda.css 與 oxc lint。
「我覺得當業務真的需要低一點的道德值」,跟業務朋友的一段對話。特別是 2C 的業務,所以他選了 2B。
每走一陣子就會有一股迷茫,覺得做了很多卻沒有進展。嘗試的事不是每件都有結果,有些就像丟進大海那樣「噗通」一聲就結束了。
新專案的架構規劃:monorepo 分 apps 與 packages,先把 eslint 和 builder 的 config 抽出來共用,打包從純 rollup 改成 vite。
決定開啟 UI Library 專案,拿之前的 Side Project 來改。接下來會把開發過程的瑣事和遇到的問題都記下來。
數據說前端職缺數和起薪都上升了,但數據沒告訴你:求職者上升得更快,而起薪上升的意思其實是低階職位消失了。
Side Project 給錢給不了上班的薪水,不給會被說白嫖專業,談分潤又叫畫大餅。我優秀的 Side Project 夥伴幾乎都是在國外的台灣人,那在台灣的人呢?
跟老弟去 Bar 喝一杯,聊點事業話題,結束後漫步在深夜街道。忙著專注的事情,忙到忘了去享受自己真正想要的感覺。
跟老朋友聊到現在帶小孩出門像次等公民。兩邊立場我都理解,卻誰也無法理解誰。這世代真的很厭童,小孩真的是沈重的負擔。
包 useMemo 比較好讀,還是用 IIFE 比較好讀?這個萬年話題在 React Compiler 還沒普及之前,依然逃不過要花心思優化 memo。
去年一整年的 UI Library 難產,時間都花在管理和人身上。重新啟動之後我決定先自己衝,願意跟上來的我再花時間。
當你習慣不尊重身邊的人,有天他不再允許時,你會覺得他變了。不是他變了,是他長大了;不是你沒變,而是你沒有長大。
大家都知道我是工程師,但我真的只會寫軟體嗎?其實我學過不少奇奇怪怪、彼此毫無關聯的技能,改天來分享一下。
朋友的話題不外乎買房、小孩、股票、健身、旅遊。聊天是一種散射的光譜,只有重疊時才會疊出火花,沒有重疊點自然索然無味。
「怎麼成為 Senior」我回答過無數版本,最後發現那通常不是提問者真正想要的答案。我更想挖的是他背後的原動力。
記帳軟體、地圖、旅遊規劃、媒合平台,這些氾濫的 Side Project 題目早就有無數人做過。與其急著開工,不如先想清楚自己為什麼要做。
日更系列的開場。不想一直講生硬的主題,打算開始帶入一些生活中無關緊要的東西,也許哪天靈感來了再發有重量的內容。