shubuzuo
shubuzuo

述而不作

study


readFile 为例 nodejs 如何实现

本文通过分析 `readFileSync` 和 `readFile` 的内部实现机制,探讨了 Node.js 如何处理文件读取操作。同步方法 `readFileSync` 直接调用系统调用,而异步方法 `readFile` 则借助回调函数与事件循环实现非阻塞 IO。两者均最终通过 libuv 库的 `uv_fs_read` 函数执行实际的文件读取操作。文章详细阐述了从高层 API 到底层实现的技术细节,并强调了内部抽象机制的重要性,这些机制为 Node.js 平台提供了高效的文件处理能力。--DeepSeek

study daily source-code nodejs v8 c++ 2025 libuv javascript

v8 build linux 平台

本文详细描述了在尝试将V8嵌入到项目时遇到的挑战及其解决过程。首先,构建静态库时出现了“unknown architecture”错误,通过改用lld链接器解决了该问题。随后,程序因Undefined reference to `v8::platform::NewDefaultPlatform`而失败。为了解决这一问题,进行了多次配置尝试,包括调整目标CPU和OS、调试模式、组件构建、单体库设置以及禁用自定义libc++等参数。最终,在启用调试模式并禁用自定义libcxx后,成功编译并运行了示例程序。整个过程强调了V8文档的不足,并指出了详细配置说明的重要性,以减少用户在探索和调试过程中所需的时间和精力。--DeepSeek

study daily v8 c++ linux 2025

一次喝酒事后复盘

这篇文章记录了一次饮酒经历后的深刻反思,并以此为契机探讨了如何在社交场合中坚持个人戒律与修行原则。作者回顾了自己被迫饮酒的场景,从中总结出在面对群体压力时坚守戒律的重要性,并延伸至对“四正勤”的思考。文章不仅揭示了饮酒对身体和心理的负面影响,还讨论了在日常生活中如何通过法义抉择避免恶行、培养善业。作者最终强调,在任何情境下都要坚定自己的修行目标,不受外界干扰,并以问题结尾引发读者对自身行为与信仰之间关系的深思。--DeepSeek

study daily foxue alcohol buddhist-precepts reflections interpersonal-relationships mindfulness four-right-efforts

mongoose 类型问题

在使用 `NestJS/Mongoose` 进行系统重构时,作者遇到了一些与 `Mongoose` 类型相关的问题。具体来说,在构建查询过滤器时,期望能够通过类型检查来限制和约束过滤条件的字段类型,但在实际代码中发现并没有严格的类型限制,甚至可以随意添加不存在的字段而不引发编译错误。 使用 `TypeScript` 的一个重要目的就是通过静态类型检查减少编码错误,提高开发效率。然而在构建查询条件这一重要环节上,无论是 `NestJS/Mongoose` 还是之前的 `Typegoose` 实现,都未能提供令人满意的类型安全性和约束能力。这引发了对当前ORM选择的思考:是否需要更换ORM框架?比如 `Prisma` 是否能解决这个问题?或者继续使用 `TypeOrm` 但接受其在 MongoDB 支持上的局限性? 核心问题其实源于 `Mongoose` 本身的类型处理机制。作者认为,尽管可以通过调整 ORM 框架来改善体验,但在根本上这仍然是一个需要面对的技术挑战。 那么你是否也在使用 `Mongoose` 或其他 ORM 遇到了类似的类型安全问题?你会如何权衡框架的便利性与开发体验的重要性?又会选择哪一种解决方案来实现更好的类型安全保障呢?这些问题值得每一位开发者深入思考。--DeepSeek

study work 2024 mongoose orm typescript

因明入正理论 立论梳理

这篇文章详细探讨了因明学中论议的方法与原则,包括立论的基本要素(宗、因、喻、合、结)、论议可能出现的负处及其具体表现形式,以及如何通过三种观察方法来决定是否展开论议。文章还讨论了在论议过程中需要具备的多所作法,如善自他宗、勇猛无畏和辩才无竭等素质,以确保论议能够顺利进行并达到预期效果。--DeepSeek

zhongzhe study weishi 2024 logic debate

丐版 mongodb 全文搜索

本文探讨了如何在社区版 MongoDB 上实现中文全文搜索功能,通过结合 NestJS 和 Mongoose 开发环境,详细介绍了从 Docker 部署 MongoDB 环境到技术实现的全过程。文章分析了在没有企业版或 Atlas Search 支持的情况下,如何利用 `@node-rs/jieba` 分词工具完成中文分词处理,并通过回写机制实现搜索功能。文中还讨论了技术选型中的权衡取舍,包括分词算法选择、数据源回写策略以及与 Elasticsearch 的对比等关键问题。文章最后提出了一个值得思考的问题:在现有解决方案的基础上,是否可以通过扩展或优化进一步提升性能和用户体验?--DeepSeek

mongodb study node docker work nest fulltext search

openapi client 生成

本文详细介绍了如何通过特定的包生成优雅的API客户端并与Vue项目集成。文章涵盖了服务端配置、GitHub Actions自动化流程、前端代码封装以及Pinia状态管理等技术细节,并分享了开发过程中遇到的问题和解决方案,强调了整体体验的优雅性。--DeepSeek

study vue github ci-cd work 2024 openapi swagger

ts 严格模式配置,舒服

本文通过一段具体的tsconfig.json配置展示了TypeScript严格模式的使用,并以“严格模式真舒服啊”为主题,探讨了严格模式为开发带来的诸多好处。文章不仅呈现了一种经过实践验证的有效配置方案,更引发了对代码质量与开发者体验之间平衡的思考:在享受严格模式带来的规范性提升的同时,如何避免过度约束导致的效率下降?通过合理的配置调整,是否可以在保持代码严谨性的同时,保留一定的灵活性?这种平衡艺术不仅是技术层面的问题,更是开发团队在项目管理中需要深思的关键点。--DeepSeek

study ts daily config typescript typescript compiler

pyenv 记录

这篇文章记录了使用 `pyenv` 进行 Python 版本管理的经历与心得。作者在尝试构建 MongoDB 源码时遇到了 Python 版本兼容性问题,系统默认的 Python 3.12.3 因为脚本中使用了一些不兼容的 API 而无法顺利构建成功。因此,他决定使用 `pyenv` 来管理 Python 版本,并选择了 3.10.x 系列版本以避免兼容性问题。 文章详细介绍了如何在 Ubuntu 24.04 上安装和配置 `pyenv`,包括通过自动安装脚本快速部署以及镜像源的配置过程。作者提到在安装过程中遇到了一些问题,例如下载进度不显示、安装信息不够透明等,并对工具的友好性提出了批评。 此外,文章还分享了如何通过配置文件设置国内镜像源(如清华源和腾讯源)来加速包管理工具 `pip` 和 `poetry` 的使用。尽管部分尝试未能成功,但最终通过手动修改配置文件解决了问题。 整篇文章不仅记录了技术细节,也反映了作者在解决问题过程中的思考与体验,提出了对工具设计和用户体验的反思。文章最后以一句警示“慎之, 千万不能写这种极度不友好的程序”收尾,并留下了关于镜像源失效原因的问题值得读者进一步探索。 问题:你是否遇到过类似版本兼容性问题?如果是的话,你是如何解决的?--DeepSeek

mongodb study daily env install pyenv

debug vue3 源码

本文分享了调试 Vue3 源码的方法与实践过程。通过生成 sourcemap 文件并使用项目模板,开发者可以更方便地跟踪代码执行路径。文章详细介绍了如何配置调试环境,包括使用 VSCode 的调试插件设置以及不同场景下的调试配置示例。此外,作者还展示了从克隆 Vue3 源码仓库到创建开发项目的完整步骤,并提及未来可能的扩展方向如调试视频制作。 文中提到的调试方式包括:直接运行项目生成构建产物、通过 npm 脚本启动调试会话、使用浏览器调试远程 URL 或本地 HTML 文件。每种方法都配以具体的代码示例,帮助读者快速上手。文章末尾提醒开发者在实际操作中需要注意 sourcemap 的正确配置,并鼓励探索更多可能性。 通过这篇文章,你不仅能掌握 Vue3 源码调试的基本技巧,还能思考以下问题:如何在没有 sourcemap 的情况下进行有效调试?是否可以通过修改源码并观察变化来深入理解框架的运行机制?这些问题将帮助开发者更进一步地理解和优化自己的项目。--DeepSeek

study vue daily web vue3 sourcemap