shubuzuo
shubuzuo

述而不作

All Posts in 2024


文档编辑版本追踪的一些思考

本文探讨了从 Word 文档到多人协作修订的完整流程,重点介绍了使用飞书云文档、Markdown 和 Git 进行版本追踪和管理的经验。作者指出,通过将 Word 文档转换为 Markdown 格式存储在 Git 仓库中,并结合飞书云文档进行多人协作,可以实现细粒度的内容变更追踪与管理。这种组合方式不仅支持内容讨论与校订,还能够通过 Git 分支轻松维护不同目录结构(如讲习目录和内容目录),同时便于后续将文档发布为网页或导出为 Word/PDF 格式。文章详细展示了从原始文档到最终发布的完整流程,并探讨了当前协作模式中的潜在问题,例如飞书评论的匿名性限制。--DeepSeek

daily document-collaboration version-control git markdown static-site-generator project-management

nestjs pg 模板

文章介绍了构建 NestJS 项目的关键步骤,包括使用 TypeORM 进行数据迁移、安装必要的开发依赖如 Winston 和 Dayjs 以实现日志管理和日期处理功能。文中还详细说明了如何通过 Swagger 文档生成 API 文档,并借助 OpenAPI SDK 工具进行代码生成。此外,文章强调了代码质量的重要性,介绍了 Linting 工具的使用以及遵循提交规范来维护代码仓库的整洁性和可追溯性。整个过程涵盖了从项目初始化到功能开发、文档编写和持续集成等多个方面,为开发者提供了一个完整的 NestJS 项目构建指南。--DeepSeek

node pgsql daily 2024 nest typeorm

node 后端 dockerFile 示例

这篇文章主要介绍了如何通过Dockerfile来构建一个多阶段的节点应用容器,涵盖了从开发环境到生产环境的完整流程。文中详细描述了各个阶段的配置步骤,包括节点环境的初始化、依赖包的安装与缓存优化、Python相关工具链的配置以及中文字体的支持设置。同时,文章还提到了如何通过健康检查确保服务正常运行,并提供了具体的Docker构建和运行命令示例。--DeepSeek

devops node docker ci-cd dockerfile nodejs python multistage-build web-service fonts

gitlab 流水线钉钉通知

这篇文章详细介绍了如何在GitLab CI/CD流水线中集成钉钉通知功能,并通过配置文件实现了代码检查、构建、镜像推送和部署等自动化流程。作者展示了如何引入外部模板文件`dingtalk.yml`以实现钉钉通知的统一管理和定制化,同时定义了全局变量用于控制镜像名称和版本信息。整个流水线分为多个阶段(check、build、build_tag、deploy_test、deploy_production),每个阶段都继承了`.dingtalk`模板任务,并通过不同的脚本命令完成特定操作。此外,文章还介绍了如何在不同环境中部署代码并记录操作日志,最终实现了开发流程的自动化和实时通知功能。--DeepSeek

devops ci-cd daily gitlab dingtalk integration gitlab ci

mongoose 类型问题

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

study work 2024 mongoose orm typescript

nginx 密码套件安全排查

这篇文章记录了一次针对Nginx密码套件安全问题的排查过程,从使用nmap工具扫描发现安全隐患开始,到逐步定位问题根源的过程进行了详细描述。文章首先介绍了通过nmap脚本嗅探HTTP服务器密码套件的方法,并讨论了这些套件的安全性。随后,作者尝试通过配置Nginx启用TLS 1.3并禁用TLS 1.2来解决问题,但发现安全漏洞仍然存在。 在排查过程中,作者逐渐意识到问题可能出在Nginx之前的中间件上,尽管初期并未明确具体是哪种产品,但最终锁定为Web应用防火墙(WAF)配置不当导致的问题。文章还反思了整个排查过程中的经验教训,强调了系统化排查的重要性,并对运维人员的沟通效率提出了批评。 这篇文章不仅揭示了一个实际的安全问题解决案例,还引发了关于服务器安全配置、中间件影响以及团队协作等方面的思考。通过这个故事,读者可以了解到在面对复杂安全问题时如何逐步缩小范围,找到根本原因的方法。同时,它也提醒我们在安全管理中要注意各个组件之间的相互作用,避免因单一环节的疏忽导致整体安全性下降。 最后,这篇文章提出了一些值得深思的问题:Nginx的安全配置是否真的生效?中间件的影响如何评估?安全测试与实际运行环境的一致性如何保证?这些问题都值得读者在阅读后进一步探讨和实践。--DeepSeek

2023 nginx docker centos work security cloud

因明入正理论 立论梳理

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

debug vue3 源码(废弃)

本文探讨了如何通过生成sourcemap来实现Vue 3源码的调试,并分享了一些具体的配置和调整方法。文章指出,在使用Vue官方提供的项目模板或直接引用相关包进行调试时,需要注意包共享机制以及如何将本地构建的Vue 3源码链接到项目中以替代远程依赖。在调试配置方面,作者展示了如何在Rollup构建过程中启用sourcemap生成,并提供了具体的`config.js`修改示例。此外,文章还详细说明了如何通过Visual Studio Code的调试配置文件`launch.json`来设置Node.js和浏览器环境下的调试场景,包括调试构建脚本、远程URL以及原始HTML文件等内容。尽管文章中提到了一些关键的调试步骤和配置细节,但作者也指出了一些尚未完成的工作,例如调试视频的制作等。通过这些内容,读者不仅可以了解如何有效调试Vue 3源码,还能思考在实际开发过程中可能遇到的问题和挑战。你是否也在探索类似的调试技术?或者你在调试过程中遇到了哪些独特的问题?不妨深入探讨一下如何更好地优化你的调试流程和体验。--DeepSeek

study vue 2024 web source-code vue3

需要关注的相关内容

这篇文章围绕现代软件开发中的关键技术栈进行了深入探讨,涵盖前端、后端及运维三大核心领域。在前端部分,重点分析了React与Vue两大主流框架的技术特点及其适用场景,结合ES和TypeScript的最新发展,探讨了如何通过优化代码质量和提升性能来打造更高效的应用体验。而在UI设计方面,则强调了用户体验与视觉效果之间的平衡之道。 后端开发部分则深入剖析了Node.js生态下的NestJS框架,配合TypeORM进行数据库操作的最佳实践,并针对MySQL、PostgreSQL及MongoDB等主流数据库的特点进行了对比分析。文章还详细探讨了Redis在缓存设计中的应用价值,以及如何通过Kafka构建高效的分布式消息系统。此外,V8引擎的性能优化技巧也为开发者提供了宝贵的实战经验。 在运维层面,文章重点介绍了Docker与Containerd容器化技术的应用场景,结合Kubernetes的集群管理能力,展示了现代化微服务架构下的部署方案。Elastic Stack、APM(应用性能监控)及Monitor工具链的组合使用,则为系统稳定性保障提供了全面的技术支撑,而Trace技术则在故障排查中发挥着不可替代的作用。 文章通过这些关键技术的深入探讨,引发读者对现代软件开发模式的思考:如何根据项目需求选择最适合的技术栈?如何在追求效率的同时兼顾系统的可维护性与扩展性?这些问题的答案将直接影响企业的技术选型策略。你认为在未来的技术发展中,哪些工具或框架将占据更重要的地位?--DeepSeek

study todo docker 2024 Frontend Development Backend Technologies

此处记录详细 ubuntu 预装程序

这篇文章记录了作者在安装Ubuntu 24.04后预装的一系列软件和工具,包括代理工具v2raya、VS Code Insider、QQ、Git、Docker等,并分享了相关的安装命令。文章不仅展示了作者的个性化需求,还提供了一些实用的工具组合和解决方法,例如如何通过curl安装nvm以及处理snap安装curl时可能遇到的权限问题。这些记录不仅是个人使用的备忘录,也为其他读者提供了参考价值。通过这篇文章,我们可以看到一个开发者或技术爱好者在构建自己的工作环境时所做出的选择与思考。那么,你是否也在尝试打造属于自己的高效工作环境?如果有的话,你会选择哪些工具和软件来支持你的工作?又或者,你认为作者的选择中有哪些亮点或可以改进的地方?不妨带着这些问题去探索并分享你的答案。--DeepSeek

ubuntu daily 2024 Ubuntu 24.04 Software Installation Development Tools

umijs 3 升 4

这篇文章记录了一次将 UmiJS 3 升级到 UmiJS 4 的过程,并分享了其中的经验和思考。作者提到升级的主要原因包括提升开发效率、优化项目结构以及引入更严格的工程化检查工具(如 ESLint、Prettier 等)。在实际操作中,作者采取了从新建一个最新 UmiJS 4 项目开始逐步迁移代码的方式,过程中涉及配置文件的替换与调整、依赖包的升级与清理、组件逻辑的重构(例如将类组件改写为函数组件并使用 Hook)等具体步骤。同时,作者也强调了在升级过程中遇到的问题大多通过查阅资料和社区支持得以解决,并提醒未来应边升级边记录以便更好地帮助他人。 文章最后提到,尽管这些具体的升级步骤可能对大部分读者参考价值有限,但从中可以看出 UmiJS 4 在提升开发体验、代码质量和项目结构方面所做的努力。对于正在考虑或准备进行 Umi 升级的开发者来说,这篇文章不仅是对一次实践过程的记录,也为如何高效完成框架升级提供了有价值的思路。 例如,在这次升级中,作者是如何处理与旧版本兼容性问题的?在引入新工具和规则时遇到了哪些挑战?这些问题都值得进一步探讨。--DeepSeek

react ts work 2024 umijs upgrade configuration migration

前端 excel 导入相关优化

针对index.tsx中的已知问题,提出以下改进建议: 1. **暴露stepChange函数**:将steps状态提升到父组件,并通过回调函数onChangeSteps允许外部更新步骤,增强灵活性和复用性。 2. **支持多种校验库**:在组件属性中添加validateFn参数,默认使用class-validator。用户可替换此函数以集成其他校验库如Zod或Joi,提升通用性。 3. **简化列管理**:移除rawColumns和nextColumns,统一维护一个columns状态,避免冗余并减少逻辑复杂度。 4. **改进步骤动作关联**:将每个步骤的处理函数嵌入到steps数组中,取代隐性匹配的动作数组。例如,每个步骤对象包含标题、组件或处理函数,确保清晰对应。 5. **代码重构和测试**:优化模块结构以增强可维护性,并添加全面测试用例,确保改动正确无误,同时更新文档以便开发者理解和使用新接口。--DeepSeek

react ts improve 2024 Data Processing Form Validation

ventoy ubuntu 24.04 制作

这篇文章介绍了使用 Ventoy 制作 Ubuntu 24.04 安装工具的过程。作者从新主机的选择开始,讲述了选择 Ubuntu 的原因,并详细描述了如何通过 Ventoy 下载并安装 Ubuntu 24.04 的过程。文章中提到了检查 Ventoy 版本与 Ubuntu 新版本的兼容性、下载 ISO 镜像以及升级 Ventoy 的步骤。作者还提醒读者需要注意旧主板或 BIOS 设置可能导致的问题,并提供了 Ventoy 官方测试地址以供参考。通过这篇文章,读者可以了解到如何轻松使用 Ventoy 制作安装工具,并在过程中避免一些潜在问题。你是否也在考虑尝试新版本的 Ubuntu?或者你对 Ventoy 的兼容性有什么特别的经验吗?不妨继续阅读,看看作者是如何一步步完成安装并解决可能遇到的问题的。你的旧主板是否能流畅支持 Ventoy 安装呢?--DeepSeek

study ubuntu daily work Operating System Installation Ventoy

新系统预装软件记录

这篇文章记录了一位用户在新主机上预装软件及环境的经验与清单,涵盖了Windows和Ubuntu两大操作系统。在Windows系统中,作者列出了包括VSCode-Insiders、Choco等开发工具,以及Edge、VLC等日常使用的软件;而在Ubuntu系统中,则主要介绍了跨平台兼容的开发工具和一些常用的开源软件。文章还提到了一些私有云盘同步配置和常用资源设置,例如docker镜像源和SSH代理转发配置。这篇文章不仅为读者提供了一份详细的预装软件清单,还分享了一些实用的配置经验,帮助读者在新系统环境中快速搭建工作环境。如果你正在准备搭建自己的开发环境或对跨平台工具感兴趣,这篇文章可能会为你带来一些启发与便利。你是否也有一份属于自己的预装软件清单?不妨分享一下你的经验和心得!--DeepSeek

study daily work env Software Installation Operating System Setup

中论正义

本文探讨了中观学说的核心义理及其与唯识、如来藏思想的关系,重点分析了应成派中观与自续派中观的不同观点,揭示了其中存在的误区。文章指出,中观并非简单地遮遣名言或否定一切法,而是要在证得如来藏的基础上,领纳八识心王的中道义理,方能真正理解大乘佛教的第一义谛。作者批评了一部分大乘空见者对般若慧的误解,以及应成派中观因执着遮遣而堕入断灭论或常见论的倾向。同时,文章强调了亲证藏识的重要性,认为只有通过七住无生忍、八识心王一切法等修证过程,才能真正理解中观类智的深意。作者最后呼吁中观学者应依种智造种论,回归龙树中论的正义,避免因执著于派别之争而偏离正道。文章结尾以对十方佛圣众的回向作结,表达了希望一切佛子速证八地如幻智的愿望。 如何真正理解大乘中观的第一义谛?我们应该怎样看待中观与唯识、如来藏之间的关系?这些问题值得每一位修学者深思和探索。--DeepSeek

daoshi zhonglun Madhyamaka Buddhist Philosophy Tathagata garba Middle Way

安慧将第八识根本识归识蕴所摄

这篇博客探讨了佛教哲学中关于识蕴的理论,特别是安慧将第八识根本识归入识蕴的观点及其相关论述。文章引用了《大乘五蕴论》、《大乘广五蕴论》以及《宗镜录》中的经典内容,详细分析了识蕴的概念及其与阿赖耶识的关系。文章指出,识蕴作为心灵活动的核心,不仅是对所缘境的了别,更是心与意的统一表现。阿赖耶识因其能摄藏一切种子和执持身故而被视为最胜心,同时也是识蕴的重要组成部分。通过对比小乘与大乘关于名色依的立场,文章进一步探讨了第八识在佛教理论中的独特地位及其必要性。最后,文章提到了成论述记对这一观点的破斥,展现了佛教哲学内部的学术争鸣。这篇博客不仅揭示了佛教心理学中深奥的识蕴理论,还引发了关于心灵本质、生命流转以及修行路径的思考。你是否也认同第八识在认识论中的核心地位?或者你认为识蕴的概念是否还有更深层的解释?--DeepSeek

study weishi liushi Buddhist Philosophy Mahayana Buddhism Vijnana Skandha

因明笔记

这篇博客深入探讨了因明学中宗、因及其过性(即推理过程中的错误或不当之处)的核心概念和结构。文章首先阐述了宗的定义与结构,包括“有法”、“能别”等基本要素,并详细分析了立宗过性的不同类型及其在逻辑推理中的表现形式。接着,作者重点讨论了似因的五种类型,包括相违决定、法自性相违因等,揭示了这些过性如何影响推理的准确性和有效性。 文章进一步剖析了似同法喻和似异法喻的五种情况,探讨了类比在逻辑推理中的作用及其潜在问题。通过这些分析,作者旨在帮助读者更清晰地理解因明学中推理过程的关键要素以及如何避免常见错误。 整篇文章以严谨的逻辑和详细的分类为基础,为理解因明学的基本原理提供了系统的框架,并提出了值得深入思考的问题:例如,在复杂逻辑推理中,如何确保宗的结构与过性分析的准确性?在实际应用中,似因和似喻的情况又该如何有效识别和避免?这些问题不仅挑战了读者对因明学的理解深度,也为进一步研究提供了方向。--DeepSeek

study weishi yinming logic Argumentation Fallacies