banner
AgedCoffee

AgedCoffee

2023年-第二十三週

該週報主要為各個地方內容的匯總整理

技術#

React API 和代碼重用的演變#

本文討論了 React 的演變以及出現的各種代碼重用模式,包括 mixins、higher-order components 和 render props。它探討了塑造它們的基本思維模型、帶來的權衡以及過度使用它們的陷阱。最終,文章得出結論,擁有清晰準確的技術思維模型是掌握技術的關鍵,而對事物如何工作的集體理解有助於在代碼庫中創建一致的視覺和結構。

雲音樂低代碼 + ChatGPT 實踐方案與思考#

網易雲音樂前端團隊已將 LLM 集成到其低代碼平台中,以增強用戶體驗。AI Copilot 功能使用戶可以使用自然語言創建、修改和配置組件並生成代碼片段。此外,該團隊還開發了一個基於 LLM 的問答系統,以提供更好的用戶體驗。該平台基於源代碼驅動的低代碼開發系統,可以實現靈活高效的開發。該團隊還強調了在低代碼產品設計中擁抱開源社區和主流生態系統的重要性。作者認為,LLM 將對工作和生活產生重大影響,探索和應用這些變化至關重要。

原始私有文件系統#

文件系統標準引入了源私有文件系統 (OPFS),作為頁面來源私有且用戶不可見的存儲端點,提供高度優化的性能訪問特殊文件的可選方式。現代瀏覽器支持 OPFS。傳統的網絡文件處理方式不符合用戶編輯文件的思考方式,意味著用戶最終會得到輸入文件的下載副本。文件系統訪問 API 引入了三種選擇器方法,使得網絡文件的現代化處理更加流暢。通過這些方法訪問的文件和文件夾存在於用戶可見的文件系統中。從網絡保存的文件,特別是可執行文件,都會被標記為 Web 標記,因此操作系統可以在執行潛在危險文件之前顯示額外的警告。原始私有文件系統不適合用戶查看,且站點來源私有。

HTML 的圖形 3D 未來#

Lume 是一個項目,它提供了一組用於 3D 渲染的 HTML 元素,基於 three.js 進行渲染,並使用由 Solid.js 支持的響應式和模板化系統來定義新的自定義 HTML 元素。Lume 允許開發人員在 3D 空間內使用所有今天的 HTML/CSS 能力,具有額外的圖形能力,獲得 3D 內容的可訪問性。Lume 還提供了 Lume Element,用於定義自定義元素的系統。該文章提到了 Lume 在 Three.js 基礎上構建的其他功能,以及 Lume 路線圖的更多細節。

軟體 2.0#

  • 神經網絡代表了軟體開發方式的根本轉變,呈現出向以數據訓練的抽象語言編寫的軟體 2.0 轉變的趨勢。
  • 將複雜的程式移植到軟體 2.0 堆疊中具有許多優勢,包括計算的同質性、在矽中的簡單集成,以及能夠處理具有大數據集的實際問題的能力。
  • 谷歌處於這種轉變的前沿,專注於將其大部分組件重寫為軟體 2.0 代碼,並將統計強度融合成對世界的一致理解。

神經網絡不僅僅是機器學習工具箱中的另一個工具;它們代表了軟體開發向軟體 2.0 的根本轉變,該軟體是用抽象且不易理解的語言編寫的,並依賴數據和神經網絡結構來確定所需的行為。隨著越來越複雜的程式移植到 2.0 堆疊中,這種轉變正在行業內發生,這種方法有許多好處,包括計算機同質性和在矽中易於實現。這種轉變的示例包括視覺識別、語音識別和合成、機器翻譯、遊戲以及數據庫。

從頭開始構建一個神奇的 AI 強化語義搜索#

  • 由於大型語言模型和 OpenAI 的完成 API 的最新進展,構建基於 AI 的語義搜索現在變得易於實現和快捷。
  • 為了對內容進行索引,必須將文章塊轉換為嵌入向量,將這些嵌入向量存儲在數據庫中,將用戶查詢轉換為嵌入向量,並使用餘弦相似度將其與存儲的嵌入向量進行比較。
  • 為了確保返回給定查詢的最相關結果,需要使用更高的餘弦相似度閾值為 0.85,並利用 OpenAI 的完成 API 與人工編寫的提示來提供準確且易於訪問的響應。

本文作者使用 OpenAI 的大型語言模型和 Supabase 的 pgvector 數據庫為其博客構建了一個基於 AI 的語義搜索。該項目涉及將博客內容索引化,將其轉換為嵌入向量並將其存儲在數據庫中。作者解釋了什麼是嵌入向量以及它們如何工作,包括使用餘弦相似度來確定句子之間的相似度。本文還涵蓋了如何使用 OpenAI 的完成 API 獲取人類可讀的搜索輸出。

工具#

react-unity-webgl#

React Unity WebGL 提供了一種現代解決方案,用於將 Unity WebGL 構建嵌入到 React 應用程序中,同時為 Unity 和 React 之間的雙向通信和交互提供高級 API。

bundlejs#

一個在線工具,可以快速打包和壓縮您的項目,並在本地瀏覽器上查看壓縮後的 gzip/brotli 文件大小。

taichi.js#

對 webGPU 使用的 js 封裝

eslint-plugin-perfectionist#

🦄 ESLint 插件,用於對各種數據進行排序,例如對象、導入、類型、枚舉、JSX 屬性等。

更新#

HTTP 批次串流連結#

httpBatchLink 是一個終止連結,它將多個 tRPC 操作批處理成一個 HTTP 請求,發送到單個 tRPC 過程中。它用於減少發送的 HTTP 請求數量和伺服器上的數據庫查詢數量。可以設置最大 URL 長度選項來限制一批發送的請求數量。批處理功能可以在伺服器或 tRPC 客戶端上通過將 httpBatchLink 替換為 httpLink 來禁用。

astro 2.6#

Astro 2.6 發布了幾個實驗性功能,現在已經穩定並可用於所有 Astro 項目。這些功能包括中間件、混合 SSR 輸出模式、自定義客戶端指令和 CSS 內聯。中間件允許開發人員在頁面呈現並返回給用戶之前或之後運行代碼。混合 SSR 輸出模式將互動式 API 端點和頁面混合到站點中,同時默認情況下保持整個項目靜態和預渲染。自定義客戶端指令允許開發人員定義自己的客戶端指令,而 CSS 內聯會自動將小的 CSS 片段內聯到 HTML 中,以加快頁面加載速度。

其他#

如果你有原創性,就可以回避競爭。基本上,如果你與別人發生競爭,那是因為你們在做同樣的事情。如果每個人做的事情都有所不同,就可以減少競爭,或者不存在競爭。所以,不要模仿他人。

-- Naval,美國著名風投家

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。