shubuzuo
shubuzuo

述而不作

All Posts in 2025


readFile 为例 nodejs 如何实现

文章分析了Node.js中readFileSync和readFile的同步与异步实现机制,揭示其底层均通过libuv的uv_fs_read函数完成系统调用,同步调用直接执行而异步调用通过事件循环处理。代码层面对同步和异步路径进行了抽象,通过FSReqBase类管理请求对象,利用AsyncCall和Dispatch方法封装libuv函数调用,异步回调函数AfterInteger负责处理结果并触发Promise的resolve流程。文章指出异步处理涉及多层封装,包括req_wrap的初始化、libuv函数调用的包装以及回调函数的执行链路,并遗留了内置模块加载机制和异步构建细节待进一步探讨,强调这些抽象设计对Node平台架构的重要性。--Qwen3

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

v8 build linux 平台

在Linux平台构建V8引擎的实践中,开发者常常面临文档与现实操作之间的鸿沟。当尝试通过源码编译获取V8库以实现C++与JavaScript的互操作时,看似标准的流程却因隐含的细节而充满挑战。从静态库的架构识别问题到自定义C++标准库引发的链接失败,每一次调试都揭示出文档的局限性——那些被默认为“常识”的配置参数,如链接器选择、标准库依赖等,往往成为新手的绊脚石。通过反复调整`args.gn`中的`is_component_build`、`v8_monolithic`等关键参数,并最终发现使用`lld`替代默认链接器、关闭自定义C++库的必要性,才得以突破困境。这一过程不仅暴露了V8构建系统中参数间的隐性关联,更引发对技术文档设计的反思:当维护者将“显而易见”的细节视为理所当然时,初学者却可能陷入漫长的试错循环。文档的缺位是否意味着开发者社区对复杂系统的认知门槛被人为抬高?如何在技术传播中平衡“默认知识”与“显式说明”的边界?或许,每一次构建的挣扎都在提醒我们:真正有效的文档,应该是照亮黑暗的灯塔而非制造迷雾的工具。--Qwen3

study daily v8 c++ linux 2025

一次喝酒事后复盘

这篇博客通过一次饮酒经历的复盘,探讨了戒律与世俗社交之间的张力以及如何在众劝场景中坚守个人原则。作者以佛教四正勤为框架反思饮酒行为——虽属遮戒但强调万全不涉,指出在朋友以“不喝”为诱饵实则强求的社交情境中,必须提前预判风险并果断拒绝。文章延伸讨论了宴会文化的本质,质疑以酒肉维系关系的正当性,提出真正的联结应建立于精神共鸣而非口腹之欲。作者进一步将思考扩展到吃肉等恶法场景,揭示了法义认知深度与抉择智慧的关系:当他人以“三净肉”“年夜饭没素菜”等理由施压时,能否穿透表象看到行为背后对戒律的妥协,才是修行的关键。全文以具体事件为引子,抛出诸多值得深思的命题——在众劝的场景中,我们如何找到坚持与妥协的平衡点?当众许与个人信念冲突时,如何确保选择符合内心的正念?这些追问或许能帮助读者重新审视自己的行为边界,并在现实与理想之间寻找更清醒的立足点。--Qwen3

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