這是 30 天寫作挑戰的第 01 天。今天 ChatGPT 問我的問題是:
您在開發 SaaS 和求職平台時,如何進行性能優化?請分享一些策略和方法,以確保應用程式的效能達到最佳狀態。
30 天寫作挑戰:連續 30 天,每天都會請 ChatGPT 問我一個跟工程師、技術產品經理、產品經理有關的問題,並且寫一篇 200–500 字的文章來回答。說明可以參考宣示文。
先看優化哪部分
主要分成前端、後段。
優化前端
前端使用 React 的話,會有無效 re-render 的情況產生,例如明明元件的 props 沒有更新,但是因為傳遞時沒有寫好,讓物件重新 assign 了,進而被誤認為需要 re-render 的情況。 處理方式可以用 useMemo, useCallback 等官方提供的 hooks 來幫助優化 render 前的 props 判斷,減少無效的 re-render 產生。
優化後段
Rails 裡有所謂「fat controller, skinny model → skinny controller, fat model → skinny controller, skinny model」的優化過程。 而資料庫端則是要避免 N+1 query 的問題,可以利用諸如 `.include` 的方式來處理。
哪裡可以優化
通常我會先看有沒有任何迴圈的語法,例如 .map, .each, .batch…… 等等的語法,如果有使用的話,就會先看看有沒有前述所提到的情況發生。
今日寫作觀察
除了贅字以外,技術面的解釋也不夠到位,要讓自己在不能刪字的前提下,寫出有足夠結構的回覆真的不容易。有寫錯的地方還請讀者用力指正鞭打🙇🏻♂️ 明天,挑戰繼續。