研发幸福论:从import顺序看代码的呼吸感 | 掘金一周 2.20

296 阅读7分钟

本文字数2200+ ,阅读时间大约需要 6分钟。

【掘金一周】本期亮点:

「上榜规则」:文章发布时间在本期「掘金一周」发布时间的前一周内;且符合各个栏目的内容定位和要求。 如发现文章有抄袭、洗稿等违反社区规则的行为,将取消当期及后续上榜资格。

一周“金”选

img_v3_02cf_03d98388-6138-4202-89ff-42fd03b1b52g.jpg

内容评审们会在过去的一周内对社区深度技术好文进行挖掘和筛选,优质的技术文章有机会出现在下方榜单中,排名不分先后。

前端

研发幸福论:从import顺序看代码的呼吸感@海石

文章主要探讨了代码中混乱的 import 语句问题,指出其三大痛点,提出破局之道,包括规范定义、自动化校验和开发流闭环。还介绍了 Vue 生态的适配指南和注意事项,给出研发幸福感公式及实践收益,强调优秀工程素养在于对细节的追求。

多人在线协作的神秘代码:Yjs 底层解密 @Delighted

这篇文章深入解析了 Yjs 这一用于多人在线协作的技术。包括其基于 CRDT 的原理,如建模数据结构(双向链表和 StructStore)、解决并发冲突的 Yata 算法、双缓存删除机制、回溯历史记录、同步网络状态等,还介绍了其在数据存储、操作更新、垃圾回收等方面的特点,强调了其在分布式协作应用中的高性能和高效性。

😈leader:你知道Pnpm为何如此强大吗?说说怎么用Pnpm治理冗余重复依赖(万字精华干货) @小庄zzz

本文主要介绍了前端包管理工具的发展,重点探讨了pnpm的相关内容。从npm的诞生及发展中存在的问题,到yarn的优势与局限。详细阐述了pnpm的特点,如安装速度快、磁盘空间利用高效,其依赖管理方式包括硬链接、软链接等机制,还介绍了幽灵依赖产生的原因及pnpm的处理方式,以及pnpm项目的依赖治理方案。最后指出pnpm虽有优势但生态仍在成长。

Token 无感刷新:打造无缝用户体验与坚实安全防线 @哦baby

文章主要介绍了 Token 无感刷新技术,包括 Token 工作原理、传统有效期设置的弊端,Token 无感刷新的概念、应用场景,以及实现 Token 无感刷新的多种技术,如双 Token 机制、前端定时刷新、服务端主动刷新、双 token+并发请求锁机制,并分析了它们各自的适用场景、优点和缺点。

写了5个vite插件后,发现其实vite插件并不难@Minko

这篇文章以作者个人经验总结了编写 vite 插件的入门技巧。先有想法再学习,明确需求后查看相应钩子。通过动态注入代码、文件路由等例子说明代码增强,还介绍了构建时的插件。最后总结经验,提供入门建议和参考的插件。

后端

编程语言错误处理机制的演变与 Go 的实践@我是一只大菜鸟

文章围绕编程语言错误处理机制展开。错误处理是编程语言设计核心,追求清晰性与健壮性。对比了多种语言的处理方式,如 C 的错误码、C++ 的异常捕获、Java 的受检异常等。重点阐述 Go 语言通过显式返回值处理错误,有简单直接、性能优越等优点,但也存在样板代码多、难处理复杂场景等不足。

deepseek本地部署(在线、离线)、知识库搭建(个人、组织)与代码接入@WinsonWu

本文主要介绍了 deepSeek 的本地化容器化部署,包括采用 ollama 简化流程,windows 与 mac 部署方式、模型选择与配置,docker compose 一键部署,内网服务器离线部署,以及 springAI 接入的相关内容。

Spring中@Import原理和使用@程序员侠客行

文章围绕 Spring 中 @Import 注解展开。先介绍其三种用法,包括导入普通类、结合 ImportSelector 接口动态选择配置类、结合 ImportBeanDefinitionRegistrar 接口编程式注册 BeanDefinition。接着阐述原理,由 ConfigurationClassPostProcessor 扫描配置类、解析注解、处理导入类并注册 BeanDefinition。最后说明在源码中的应用,如实现 AOP 和异步功能。

克服 Java 枚举陷阱:线程池队列共享问题的解决之道@Derek_Smart

这篇文章主要探讨了 Java 线程池共享任务队列导致的问题及解决办法。作者介绍了线程池的关键元素和正常流程,指出通过枚举管理线程池配置时,共享队列引发任务混乱、丢失和隔离性丧失等问题。排查过程包括检查任务行为和队列实例,提出了为线程池生成独立队列、通过工厂方法生成队列、限制每个枚举类型只创建一个线程池等解决方案。

Android

Flutter 3.29 发布,看起来会是一个“大坑”的版本@恋猫de小郭

这篇文章主要介绍了 Flutter 3.29 版本的更新内容,包括 Framework(Cupertino 和 Material 等更新)、Web 平台改进、Engine 相关(如 Impeller 稳定性)、新功能(Backdrop filter 优化等)、DevTools 和 IDEs 的变化、重大更改和弃用等,同时提醒升级到该版本需谨慎评估稳定性和可控性。

Flutter Gradle 命令式插件正式移除,你迁移旧版 Gradle 配置了吗? @恋猫de小郭

本文讲述了Flutter 3.29 正式移除 Flutter Gradle Apply 插件。文章介绍 Android 构建中 JDK、Gradle、AGP 等版本对应关系,提醒迁移时需匹配各版本范围。还详细说明了迁移步骤,如替换 settings.gradle 内容、调整 build.gradle 文件等,并给出迁移后 git diff patch 参考。

记一次无障碍测试引发app崩溃问题的排查与解决 @货拉拉技术

这篇文章主要讲述了 APP 发版前自动化测试中出现的崩溃问题及解决过程。因无障碍测试引发 crash,经排查定位到问题代码,验证后得出两种解决方案,项目采用了其一。最后还进行了思考,提出测试人员应完善日志捕获,开发人员应深入分析根本原因,以提升代码质量和配合效率。

深入理解 Android Jetpack Lifecycle(用法篇)@朱涛的自习室

这篇文章深入介绍了 Android Jetpack Lifecycle 的用法,包括其重要性、使用场景、与其他组件的关系等。指出原生组件生命周期不统一增加成本,Lifecycle 可统一行为。还介绍了其在地理位置请求功能中的应用、引入依赖的方式、感知 Service 和 Application 生命周期的方法,以及与 Kotlin 协程结合的注意事项等。

人工智能

如何拥有一个无限制、可联网、带本地知识库的私人 DeepSeek?@ConardLi

文章主要介绍了如何拥有一个无限制、可联网、带本地知识库的私人DeepSeek。包括本地部署的优势,如免费、保护数据隐私等;DeepSeek的满血版和蒸馏版本;通过Ollama本地部署的方法及支持的模型;使用Chatbox提升交互体验;借助Page Assist实现联网;利用Anything LLM打通本地知识库,还提及相关工具的安装、设置和使用等。

社区活动日历

img_v3_02cf_37b6e2cd-9e86-48ba-b1ef-82bd35e6b21g.jpg

活动日历

活动名称活动时间
Trae「超级体验官」创意实践征文2024年1月22日-3月3日

📖 投稿专区

大家可以在评论区推荐认为不错的文章,并附上链接和推荐理由,有机会登上下一期。文章创建日期必须在下期掘金一周发布前一周以内;可以推荐自己的文章、也可以推荐他人的文章。