該周報主要為各個地方內容的彙總整理
技術#
不僅僅是瀏覽器:JavaScript 標準的長期未來#
JavaScript 作為最流行的編程語言,已經擴展到了瀏覽器之外,現在在伺服器端和嵌入式 JavaScript 運行時中使用。JavaScript 的 ECMAScript 標準主要是由瀏覽器的需求驅動的,但隨著伺服器端 JavaScript 的興起,不同運行時之間需要更多的合作和兼容性。W3C 的 WinterCG 社區組旨在解決瀏覽器和非瀏覽器運行時之間的跨運行時互操作性。他們希望創建一個可以根據特定需求進行定制的 JavaScript 運行時的標準規範。這種標準化將使開發人員能夠編寫一次代碼,然後在不同的伺服器端運行時上運行。WinterCG 還正在制定一個最小公共 Web 平台 API 列表,以確保在各個運行時中實現 Web API 的一致性。此外,TC39 提案中引入了一個名為 async context 的方式,用於簡化在伺服器端環境中的代碼追蹤。目標是創建一個通用的 JavaScript,可以在多個伺服器上同時用於客戶端和伺服器端。
- JavaScript 正在擴展到瀏覽器之外,像 Node 和 Deno 這樣的伺服器端運行時在其演進中起着關鍵作用。
- WinterCG 社區組旨在促進跨運行時互操作性,並協調伺服器端 JavaScript 環境的通用 API 的開發。
- 採用標準基礎和統一的 API 表面用於伺服器端 JavaScript 將使開發人員、運行時創建者和依賴這些運行時的企業受益。
A Visual Guide to Prefetching in Next.js 13#
本文討論了 Next.js 13 中的預取概念,這是一種通過在後台預加載內容來加快網頁加載速度的技術。預取根據用戶行為預測並主動加載預期的頁面或網站部分,當用戶請求內容時幾乎立即顯示。在開發過程中,Next.js 根據應用程序的導航自動預取路由,提供無縫體驗。在生產構建中,路由在視口中可見時進行預取,確保頁面之間的即時轉換。文章還提到了如何針對特定鏈接禁用預取和以編程方式預取路由。總體而言,Next.js 13 中的預取優化了網頁加載速度,並創造了流暢的導航體驗。
- Next.js 13 中的預取技術是一種主動加載預期頁面或網站部分的技術,可以幾乎立即顯示內容,消除明顯的延遲。
- 在開發過程中,Next.js 根據用戶交互自動獲取和緩存下一頁的內容,提供無縫的性能預覽。
- 在生產構建中,Next.js 在視口中可見時預取路由,確保用戶點擊鏈接在頁面之間進行快速轉換。
Shines, Perspective, And Rotations: Fancy CSS 3D Effects For Images#
本文探討了使用 CSS 技巧為圖像創建令人驚嘆的 3D 效果。作者演示了三種不同的效果:CSS 3D 閃光效果、CSS 3D 透視效果和 CSS 3D 旋轉效果。CSS 3D 閃光效果在懸停時為圖像添加了閃光動畫和輕微旋轉。CSS 3D 透視效果通過在懸停時稍微滑動圖像並改變視角,營造出深度感。CSS 3D 旋轉效果沿著 y 軸旋轉圖像,創造出 3D 效果。作者提供了每種效果的詳細解釋和代碼示例。
- CSS 可以用來為圖像創建令人驚嘆的 3D 效果,例如在懸停時添加閃光動畫和旋轉。
- 通過使用 CSS 遮罩和漸變,可以在圖像上創建一個虛假的閃光效果,而無需額外的標記。
- 通過組合旋轉、平移和剪切路徑屬性,可以實現 CSS 3D 透視效果,從而營造出深度和運動的錯覺。
全方位對比 Postgres 和 MySQL (2023 版)#
根據 2023 年的 Stack Overflow 調查,Postgres 已經取代 MySQL 成為最受尊敬和渴望的數據庫。本文對 Postgres 和 MySQL 在許可證、性能、功能、可擴展性、易用性、連接模型、生態和可操作性等方面進行了比較。總的來說,Postgres 有更多的功能、更繁榮的社區和生態,而 MySQL 則更易學習並且擁有龐大的用戶群體。在一個組織內部共存 Postgres 和 MySQL 也是很常見的情況。
一文讀懂 gRPC 與 RPC,並優雅地掌握調試方式#
gRPC 是一個由谷歌開發的現代開源高性能 RPC 框架,可在多個開發環境下運行。與 HTTP API 接口相比,gRPC 採用了領先的 HTTP/2 底層架構設計作為底層傳輸協議,適用於大規模數據傳輸和微服務架構場景。它使用輕量級的 Protobuf 序列化協議進行數據交換,提供更快的數據處理速度,減少數據量並節省網絡帶寬。RPC 協議是一種遠程過程調用的實現方式,用於通過網絡通信在不同伺服器之間調用進程。gRPC 成功隱藏了內部通信的複雜性,為開發者提供了穩定統一的接口,適用於微服務的分佈式系統。
工具#
bruno#
Bruno 是一個開源 IDE,用於探索和測試 API。它使用純文本標記語言 Bru 來保存 API 請求的信息,並支持使用 git 或其他版本控制工具進行協作。它可以在多個平台上運行,並提供了網站、文檔和支持。
article-extractor#
網頁文章內容提取
更新#
Prettier 3.0: Hello, ECMAScript Modules!#
該文章宣布了 Prettier 代碼格式化工具的新版本發布。更新包括遷移到 ECMAScript 模塊、Markdown 格式的重大變化、插件接口的顯著改進和各種錯誤修復。Markdown 格式的變化包括刪除中文或日文字符與西方字符之間的空格。插件接口現在支持異步解析器。發布還包括對中文、日文和韓文的空格處理的改進,以及 trailingComma 的默認值的更改。文章還提到從 Babel 解析器中刪除 Flow 語法支持和刪除對 Flow 註釋的支持。最後,文章介紹了純 CSS 解析器,並提供了格式變化的示例。
- Prettier 的新版本通過將所有源代碼遷移到 ECMAScript 模塊並引入幾項格式改進和錯誤修復,提高了開發體驗。
- Prettier 中的 Markdown 格式已更改,不再在中文或日文與西方字符之間插入空格,遵循官方指南。
- 插件開發者在更新到新版本時應謹慎,因為插件接口已經進行了重大改動,以支持異步解析器和 ECMAScript 模塊。總結
Prisma 5: Faster by Default#
Prisma 是一種流行的數據庫 ORM 工具,它在啟動性能方面取得了顯著的改進。最新版本 Prisma 4.8.0 專注於增強 Prisma 在無伺服器環境中的性能。改進包括更高效的基於 JSON 的傳輸協議,減少了 CPU 和內存開銷,以及具有優化內部結構的較小的 JavaScript 運行時。這些改變使 Prisma 的啟動性能顯著提高。最新版本 Prisma 5.0.0 現已推出,鼓勵用戶進行升級。升級可能涉及一些破壞性的變化,但預計影響將很小。Prisma 致力於進一步提高性能,並將繼續發布更新。
- Prisma 4.8.0 專注於提高啟動性能,特別是在無伺服器環境中,從而顯著改善了 Prisma 的性能。
- 引入了更高效的基於 JSON 的傳輸協議和優化的內部結構,使 Prisma Client 的啟動時間更快,內存使用更少。
- Prisma 5.0.0 現已推出,帶來了這些性能增強功能,並鼓勵用戶進行升級,同時要注意一些破壞性的變化。
Announcing typescript-eslint v6#
TypeScript-eslint v6 是一種工具,使 ESLint 和 Prettier 等 JavaScript 工具能夠支持 TypeScript 代碼。新版本帶來了一些重大更改和功能。用戶需要更新到最新版本並替換以前的軟件包。配置名稱已經重新設計,具有單獨的功能和樣式規則配置。預設配置中的啟用規則也有所變化。一些規則已經更改或刪除。工具方面也有一些重大更改,包括放棄對 Node v12 和 v14 的支持。最低支持的 TypeScript 版本現在是 4.2.4。此版本還包括為開發人員提供的改進,例如類型檢查器包裝器 API。
- typescript-eslint v6 引入了重新設計的配置名稱和推薦配置,用於功能和樣式規則,使在 TypeScript 項目中啟用 linting 更加容易。
- 預設配置已經更新,包括啟用規則和選項的變更,需要用戶相應地更新他們的 ESLint 配置。
- 此版本還對某些規則和工具進行了重大更改,並為開發人員提供了改進,例如在 ESLint 插件中使用 TypeScript 語法的類型檢查器包裝器 API。
設計#
Elstob a variable font for medievalists#
本文討論了 Elstob 字體,它基於牛津大學出版社使用的 17 世紀字體。該字體有幾個可變軸線,包括字重、光學大小、級別和斜體。每個軸線都可以調整,以創建字體的不同變體。文章提供了關於每個軸線及其取值範圍的詳細信息。它還提到該字體設計用於古英語語言和文學。
- Elstob 字體是一種數字化版本的歷史字體,由牛津大學出版社委託,不同的大小和變體用於字重、光學大小、級別和斜體。
- 字體的可變軸線允許動態調整字重、光學大小、級別、間距和斜體,為網頁設計師和用戶提供了靈活性。
- Elstob 字體的設計和特點基於歷史樣本和鉛字,確保在複製原始字體時具有真實性和準確性。
如何進行平價版體驗度量實踐 - 經驗 / 觀點 - UICN 用戶體驗設計平台#
本文介紹了如何進行平價版體驗度量實踐,包括分層對比和交叉對比矩陣等方法,以及實踐側的前期預設後期驗證,通過猜想和驗證的形式來收斂數據分析的方向從而節省分析的資源投入。最後,通過具體實踐案例,展示了如何拆解業務目標到體驗目標,在體驗目標中找出具體需要關注的核心路徑,從而進行問題的挖掘和給到業務實際產品和設計策略建議。
Invisible Details of Interaction Design - 交互設計中看不見的細節#
本文討論了交互設計背後的科學原理,並探討了隱喻、動力學物理學、滑動手勢、響應手勢和空間一致性在創建出色用戶體驗中的重要性。作者強調設計中形式和功能之間需要保持良好的平衡,並強調直覺和本能行為在交互設計中的作用。
- 交互設計是一種藝術形式,旨在通過理解人類意圖並使用現實世界的隱喻來創建無縫的體驗。
- 出色的交互設計利用手勢和物理學來創建直觀和響應靈敏的用戶界面。
- 在交互設計中,空間一致性很重要,可以建立不同元素之間的關係,並為用戶提供清晰度。
AI#
Cody#
Cody 通過閱讀您的整個代碼庫和代碼圖來回答代碼問題並為您編寫代碼。
ChatGPT 探索:Code Interpreter 高級指南#
- 代碼解釋器並不能一次性幫你解決所有問題,向你返回滿意的結果。雖然它也會在運行期間會進行自我糾正,但當它失敗時,需要你進行一些適當引導提示。
- 當它表示因為環境受限不能執行某些操作時,你可以嘗試為它提供一些替代方案或者步驟來指導它(需要一定的 Python 編程基礎)。
- 代碼解釋器的文件上傳功能及圖片顯示與 ChatGPT 原本的對話能力相結合,進一步放大了 GPT-4 的能力。比如分析數據,文件格式轉換,設想驗證等等。
- 代碼解釋器的會話是有時效性的,開辟的臨時內存在超時後會被銷毀。所以它輸出的下載資源鏈接請提前下載到本地進行備份,避免丟失。
- Python 解釋器開辟的臨時內存空間有限,如果執行複雜耗時任務大概率會失敗。它更適合做數據處理和數據分析,文件格式轉換這種任務可能會因為源文件過大,爆掉內存導致任務失敗。
其他#
三個原則可以幫助你有效地記筆記。
(1)筆記必須符合你的思維方式。
做筆記要按照自己的思考方式,不能原封不動地按照老師(或者書本)的講解方式。這樣不僅你寫起來更輕鬆,而且將來回顧筆記的時候,你也更容易理解自己當時的想法。
(2)筆記必須代表你的知識。
筆記不要僅僅複製 / 粘貼他人的話語,而要用自己的語言表達。你不妨標記清楚,哪些地方是已經理解的,哪些地方還沒有理解或者有疑問。
(3)筆記必須可以輕鬆檢索。
為了最大限度利用自己的筆記(其實也是節約自己的時間),它必須可以方便地檢索。你要為每個部分寫一個標題,並且定期整理出一份目錄。
跟大家想的不一樣,編程並不需要掌握深刻的思想,而是需要某種程度上記住文檔,以便用某些固定詞彙,清晰表達我們的想法。
-- 《編程需要知識的廣度》
折騰了一晚上的 AutoBangumi 配置最後總算是跑起來了
https://zhuanlan.zhihu.com/p/641701649
創意領導的角色是培養更多的領導者,而不是追隨者。我希望這種觀點能夠更為普遍。
當有人不同意你的觀點時,不要為自己辯護。相反,要傾聽。請他們解釋,並驗證他們的關切,進一步擴展並肯定他們的觀點。只有這樣,別人才會願意傾聽你所說的任何事情。我希望在我的青少年時期有人告訴過我這個道理。