⭐️ Go语言反射编程指南
⭐️ Go 1.21 确认添加 cmp 包以及 min, max built-in 函数
⭐️ 识别「ChatGPT造假」,效果超越OpenAI:北大、华为的AI生成检测器来了
⭐️ 开通个人博客啦!附带全部 Hexo + Nginx + Git 教程
⭐️ 为什么泛型使你的程序变慢
⭐️ Go 编译器优化
⭐️ 为什么取消了Go1.21,而采用了Go1.21.0的版本命名规则
⭐️ Ranking and Tuning: 解锁预训练模型库的新范式
⭐️ Golang中的25个常见错误:更好地进行go编程的综合指南
⭐️ 颠覆微服务架构?谷歌最新开源service weaver初体验
⭐️ Go1.21 速览:骚操作 panic(nil) 将成为历史!以后别这么干了
⭐️ 不要写 clean code, 要写 CRISP code
📒 【第2956期】如何编写一个友好支持 Tree-shaking 的库
⭐️ Go 高性能 - singleflight 防止缓存击穿
⭐️ 阅读破10万的学Go建议,不管初学还是进阶Go都值得一看!
📒 相关文章推荐
《DeviceScript:专为微型设备设计的 TypeScript》。DeviceScript 是微软新推出的一种语言,旨在将 TypeScript 的编程体验应用到低资源的微控制器设备中。它被编译为一种自定义的虚拟机字节码,可以在这样的受限环境中运行(类似于 Go 的 TinyGo)。虽然主要面向 VS Code 用户,但也提供了 命令行选项。
《Deno v1.34:现在 deno compile
也支持 npm 包》。Deno 1.34版本主要增强了与npm和Node.js的兼容性,提高了开发者体验,并为未来的性能优化奠定了基础。此次更新最重要的功能包括:deno compile支持npm包、在deno.json和CLI标志中支持Glob以及TLS证书与IP地址。除此之外,还有许多其他改进和错误修复值得一提。其中,deno compile是本次更新中最受期待的功能之一,它使开发人员可以将项目编译成单个可执行文件,并且现在也支持使用npm包进行编译。同时,在配置文件方面也有所改进,例如新增排除所有子命令下某些文件或文件夹等功能。Deno 1.34还升级了V8至11.5版以及TypeScript至5.0.4版等内容。
《TC39 第 96 次会议的一些更新》。这篇文章介绍了2023年5月16日至18日举行的第96次TC39会议,讨论了几个JavaScript/ECMAScript的特性提案。这些包括Atomics.waitAsync、带有set符号和字符串属性的RegExp v标志、格式良好的Unicode字符串、装饰器元数据(扩展装饰器提案)、TypedArrays/DataView/Math.f16round上的Float16Array、Uint8Array:ArrayBuffer到/from Base64 的Base64编码解码,Promise.withResolvers(创建具有reject/resolve/promise函数作为方法的Promise),时区规范化(在Temporal基础上堆叠的提案)以及Intl.ZonedDateTimeFormat(用于Temporal.ZonedDateTime的Intl格式)。
《Web Components 简介》。这篇文章介绍了如何使用Web Component实现选项卡面板。首先,需要创建一个扩展HTMLElement的类,并将其注册为自定义元素。然后,在connectedCallback生命周期方法中,可以读取提供的子元素并生成UI以显示它们作为选项卡。还介绍了启用阴影DOM来提供范围化的CSS样式和激活标签状态等其他功能。最后,通过添加样式完成了选项卡组件的设计。
《比较三种非破坏性处理数组的方法》。有这篇文章介绍了三种处理数组的方法:for-of 循环、reduce() 和 flatMap()。作者通过实现一些功能来演示这三个特性,包括过滤输入数组以生成输出数组、将每个输入数组元素映射到一个输出数组元素、将每个输入数组元素扩展为零或多个输出数组元素等。对于每种方法,作者都提供了相应的代码示例,并讨论了它们的优缺点以及何时使用它们。总体而言,for-of循环是最通用的工具,而.reduce()适合计算汇总信息(例如所有元素之和),flatMap()则擅长于筛选-映射和将输入元素扩展为零或多个输出元素。
《我是如何将我的 Angular 应用转换为独立组件模式的》。这篇文章介绍了如何使用Angular的独立组件方法来避免使用ngModules。作者解释了独立组件的概念,它可以通过删除不必要的导入来大幅简化应用程序并减小包大小。在示例代码中,作者展示了如何在没有任何模块声明的情况下创建一个组件,并讨论了其优点和缺点。此外,作者还提供了一些工具和技巧,例如Bit开源工具链等,以帮助管理和共享这些独立组件。最后,作者演示了如何将现有项目从ngModule迁移到独立组件方法,并提供相应的代码示例进行说明。
《理解 React 并发》。这篇文章介绍了React v18.0中引入的一项新特性:并发模式。它的基本原则是重新设计渲染过程,使得在渲染下一个视图时,当前视图仍然保持响应性。为此,React团队提出了Concurrent Mode这个概念,并将其实现为可中断工作单元。具体来说,在组件渲染过程中使用requestIdleCallback()函数来实现并发模式。但由于向后兼容问题,Concurrent Mode计划未能实现。因此React团队转而推出了Concurrent Features这个方案,并引入了两个新钩子useTransition和useDeferredValue以支持并发渲染。其中useTransition返回一个布尔标志isPending和一个startTransition函数;而useDeferredValue则用于处理父组件传递给子组件的值更新等情况。需要注意的是,虽然这些钩子可以优化应用程序性能并提高用户体验,但它们也有自己的限制和缺点。如果想要深入理解如何使用React Concurrency,请参考官方文档及相关资源进行学习和掌握。
《你可能不需要 React Query》。这篇文章讨论了React Query在React Server Components出现后是否还有存在的必要性。作者认为,如果数据获取只发生在服务器端,那么使用React Query就没有必要了。但是,在过渡期间,可以将一些组件移动到仅在服务器上获取数据或使用Server Components预取缓存并将结果传递给客户端组件。此外,对于某些情况(例如无限滚动列表、离线应用程序等),结合React Query和Server Components可能会更好地解决问题。总之,作者认为不需要立即全部转移到Server Components,并且React Query仍然有其存在的价值和用途。
《Storybook Day 的 3D 动画是如何实现的》。这篇文章介绍了团队如何使用React Three Fiber(R3F)构建一个视觉上令人惊叹的三维动画,以Storybook的俄罗斯方块品牌为灵感创作出一个引人注目的三维插图。文章涵盖了创建场景时使用的几种技术,包括通过球体堆积避免对象重叠、使用挤压几何模型化俄罗斯方块、利用深度和阴影等效果增强视觉效果、通过减少材质数量和使用材质存储库进行性能优化等。该团队使用NextJS和@react-three/fiber构建活动网站。他们采用pack-sphere库来平均分配方块并防止任何潜在重叠问题。为解决“7.0”文本与方块之间的重叠问题,他们稍微沿z轴移动球体而不是检测球体与文本几何之间的碰撞。他们还利用Three.js中提供的ExtrudeGeometry对类似SVG路径或CSS形状这样的2D形状进行挤压,并将其沿着z轴拉伸成3D物体。为了增加一些特效,他们添加了阴影和景深效果,使其具有更多电影般感觉,并通过Material Store技术降低需要渲染材质数量从而提高性能。总之,这是一个非常好的指南,适合任何想学习如何在React Three Fiber(R3F)中构建视觉上令人惊叹的三维动画。
《如何开发一个自定义的 debounce Hook》。本文介绍了如何使用React创建自定义防抖钩子。在前端Web应用程序中,常见的功能之一是为输入添加防抖。 防抖可以让我们在输入值更改后延迟执行操作。 本文将演示如何使用React创建自定义防抖钩子。首先,我们需要了解什么是自定义Hooks以及它们的作用。 自定义Hook只是一个纯函数,它使用其他Hook来实现特定目标,并且不会产生任何副作用。接下来,文章介绍了如何通过useState和useEffect Hook创建一个名为useFetch的自定义Hook,该Hook可获取数据并返回数据和加载状态。然后文章进一步说明了如何通过useState、useEffect和useRef Hook创建名为useDebounce的自定义钩子,并演示了如何在组件中使用该钩子以实现对输入进行防抖处理。总之,本文提供了有关如何构建具有高度重复利用性能力的React Hooks(包括获取数据、防抖等)的详细指南。
《 JavaScript 安全: 最佳实践和提示》。在一个网络威胁日益复杂的时代,理解如何编写安全的 JavaScript 代码比以往任何时候都更加重要。在这篇文章中,Alex Ivanovs 解释了常见的 JavaScript 漏洞,从跨网站脚本(XSS)和跨站请求伪造(CSRF)到更复杂的问题,比如原型污染和不安全的依赖。
《Node.js 性能状况 2023》。今年是2023年,我们已经发布了 Node.js v20.0。本文对不同版本的 node.js 的性能进行了比较分析。它强调了这些改进和改进,并提供了对这些更改背后原因的深入了解,而没有与其他 JavaScript 运行时进行比较。基准测试结果包含一个可重复的示例和硬件细节。使用了 AWS 专用主机。