xChar

该周报主要为各个地方内容的汇总整理

技术

不仅仅是浏览器: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

9pph4r

SzUilw


创意领导的角色是培养更多的领导者,而不是追随者。我希望这种观点能够更为普遍。


当有人不同意你的观点时,不要为自己辩护。相反,要倾听。请他们解释,并验证他们的关切,进一步扩展并肯定他们的观点。只有这样,别人才会愿意倾听你所说的任何事情。我希望在我的青少年时期有人告诉过我这个道理。

Loading comments...