動態

詳情 返回 返回

SSR,雲平台,ChatGPT——我的 2023 技術關鍵詞 - 動態 詳情

前言

2023 年,因為換工作,啓動新項目等原因,我對我的技術棧進行了比較大的更新,主要集中在這三個方向:

  1. SSR(Server Side Rendering,服務器端渲染)。之前我開發的項目基本上都是 SPA(Single Page Application),比如 Vue,但之後我會越來越多開始用 Nuxt。由於基礎設施的發展,以後 SSR 會更方便更好用。
  2. 雲平台。以前我大概買了 3、4 台雲服務器用來做各種嘗試,在上面各種折騰。去年使用 Vercel、Supabase、CloudFlare 平台之後,我已經不打算再在服務器上浪費時間了,雲平台實在太好用了。未來我會努力把所有服務都遷移到雲平台上,新增產品都直接雲原生。
  3. ChatGPT。相信不只是我,很多人都會把 ChatGPT 作為去年技術的首選關鍵詞。如今我不僅在上面完成產品開發,日常也會使用它替代大部分的搜索;甚至我家孩子寫作業也會使用它來幫忙。我認為,未來 ChatGPT 就像是搜索引擎一樣,決定了一個人的起點和成長速度。

接下來逐個分享。

服務器端渲染,SSR

起初我不是很看重 SSR,我總覺得,我當年也寫過 PHP,有什麼“服務器端渲染”我沒見過?實際用過之後,我承認:真香……

首先,使用 SSR 可以提升用户體驗,且有利於 SEO,這點相信大家都知道。如果對其原理不太清楚的話,歡迎觀看我的視頻:從瀏覽器渲染機制理解 Web 性能——“在瀏覽器地址欄輸入 URL,按下回車後會發生什麼?”

其次,如今的 SSR 與當年 PHP 模版套頁面的實現有很大區別:

  • 語言同構化:開發難度大大降低,沒有心智負擔。
  • 數據傳遞與狀態管理:雖然數據不能完全通用,但是框架儘量會幫我們處理好,讓我們在服務器端和客户端都能自由使用。
  • 渲染由邊緣計算負責:這一點有點依賴雲平台,不過考慮到瀏覽器的渲染機制,SSR 並不會拖慢渲染速度,用户體驗只會更好。
  • 頁面切換不需要重新加載。對於舊的編程語言來説,因為前後端環境割裂,所以頁面切換的時候都是重新加載完整頁面;但是新框架下,則只需要加載數據即可,此處跟 SPA 的體驗無二。

第三,如今的 SSR 框架都很好的整合了服務器,包括中間件等功能,還有各種官方第三方模塊支持,能大大降低我們開發服務器軟件的成本。所以已經是我啓動新項目的不二之選。

雲平台

以前我長期維護好幾台服務器,一方面可以部署自己做的產品 demo,另一方面也可以部署一些開源項目方便日常使用。因為各種雲都有面向新用户的優惠活動,所以成本不高,我覺得值得一搞。

自己的服務器當然比較比較自由,壞處就是免不了產生運維成本,即使使用 docker 也一樣。部署新代碼至少要去跑一遍拉取腳本,對吧?我的一位老闆朋友甚至請我幫忙寫了一套服務器腳本,用來做 CI/CD。

初期這麼搞沒問題,但後來就越來越覺得功能不夠,性價比也太低,開始尋求替代方案。之前我參加 Hackathon 的時候瞭解到 Vercel 雲平台。它與 GitHub Pages 不同,支持 SSR、支持雲函數,配合一些雲數據庫,比如 Upstash,可以快速搭建起來一套可用的服務。去年年初,我的那位老闆朋友想做一套打分系統,放在他的靜態網站裏,於是,我就嘗試用 Nuxt.js + Upstash 開發了一套,並且部署在 Vercel 上,效果非常好,免運維,多環境,推到 GitHub 自動部署,實在太好用。

我把這個過程製作成了系列課程:Nuxt3+Vercel+Serverless 數據庫全棧開發。大家感興趣不妨看一看。

後面一發不可收拾,過去一年我不再採購新的單體服務器,舊的服務器用完也不再續費。新產品都部署在 Vercel 等雲平台上面,幫我節省了大量的時間。

Vercel 去年年中的時候開通了存儲功能,實際上就是打包了幾家雲數據庫服務來賣,我也很快獲准開通。從此,雲平台使用就更加順利了。臨近年底,我嘗試 CloudFlare Pages,效果也非常好。他們家的優勢是自帶統計分析功能,遠比 Vercel 大方,一站式解決更省心。

雲數據庫方面,我使用 Upstash 的 Redis,KV 數據庫足以滿足大部分產品需求。數據庫用 Supabase 和 TiDB 比較多。前者支持 PG Vector,方便我們進行 LLM Embedding & Search;後者則提供 5GB 免費額度,比較好用。雲存儲有 CF 的 R2,空間和流量也相當充足。如果不是 PHP 太老沒人支持,我都想把博客這台機器退掉了。

ChatGPT,以及其它

ChatGPT 更是值得大書特書的一個技術關鍵詞。不過考慮到大家去年一整年應該已經被類似的內容淹沒了,所以我這裏就少寫一些,只説説我的情況。

我目前訂閲了 ChatGPT+,方法是借用國外親戚的手機號註冊,並且用他的手機號註冊 PayPal,通過 Google Play 訂閲。訂閲的原因是 ChatGPT 4 + DALL-E 都可以隨便用,比 API 便宜得多。

在編程領域,GPT-4 比 GPT-3.5 好太多了,知識庫更新到去年 4 月份之後,除了 next.js 14 的內容外,我日常的編程問題大多可以用 GPT-4 解決,比如:

  • 寫正則
  • 寫 SQL
  • 查函數、查第三方庫
  • 糾正函數錯誤

幫我節省了大量的 Google 時間,單憑這點,每月 $19.99 的訂閲費用就很值得。

除此之外,我還在繼續使用 GitHub Copilot。Copilot 也很好用,除了生成工具函數、編寫測試外,我發現翻譯語言和框架方面也有很大的作用。去年我就完全靠它開發了一個 flutter 應用,方法就是把 TS+Vue 寫好的代碼丟給它讓它翻譯。

所以,無論是學習新東西,保障日常開發,還是擴展新領域,AI 對我都幫助巨大。

總結

總而言之,如果再有同學問,前端想學後端,應用學什麼語言框架以及是否需要搭自己的服務器?我都會建議他們:不要學 Express、Koa;習慣用 Vue 就學 Nuxt,習慣用 React 就學 Next.js;不需要搭建服務器,就用雲存儲就能解決絕大多數問題。

我還建議大家,儘快想辦法開通 ChatGPT,再不濟國產大模型也要用起來,未來是 AI 的時代,學會用 AI,效率會大幅度提升。半年的初入門新人,善用 AI 可以趕上 3 年的老程序員;而老程序員學會用 AI 之後,可以快速把自己的能力擴展到其它領域。

以上,就是我去年關鍵的技術棧總結,希望對大家有所幫助。如果大家有什麼意見建議,想説的想聊的,歡迎留言。

本文參與了SegmentFault 思否 2023 年度有獎徵文活動,歡迎正在閲讀的你也加入。

本文也登載在 我的博客,歡迎各位在那裏跟我交流。

user avatar chauncywu 頭像 abai_649946e81ca72 頭像
點贊 2 用戶, 點贊了這篇動態!
點贊

Add a new 評論

Some HTML is okay.