<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[主要作为个人的笔记用，Not For Everyone。]]></title><description><![CDATA[男人又老又丑不要紧，最重要的是要有才华。——秋雅]]></description><link>https://blog.youkuaiyun.com/flyfeifei66</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; flyfeifei66]]></copyright><item><title><![CDATA[餐饮SCM产品AI化思路]]></title><link>https://blog.youkuaiyun.com/flyfeifei66/article/details/169165239</link><guid>https://blog.youkuaiyun.com/flyfeifei66/article/details/169165239</guid><author>flyfeifei66</author><pubDate>Mon, 26 Oct 2026 16:59:56 +0800</pubDate><description><![CDATA[你们已有的“表单校验前置”思路本身没错，但它只是最表层、竞争壁垒最低的一层。餐饮供应链AI化的真正价值，不在于把现有表单填得更快更准，而在于——让系统在订单和库存的每一个关键节点上，主动告诉人“该做什么、为什么、做了会怎样”。下面按你们的两条核心业务线拆解可AI化的点，再给出业内和跨行业的对标实践。]]></description><category></category></item><item><title><![CDATA[接手新项目让AI生成辅助文档一览（后端）]]></title><link>https://blog.youkuaiyun.com/flyfeifei66/article/details/162961074</link><guid>https://blog.youkuaiyun.com/flyfeifei66/article/details/162961074</guid><author>flyfeifei66</author><pubDate>Fri, 17 Jul 2026 11:01:00 +0800</pubDate><description><![CDATA[本文档为新同学提供项目交接指南，按使用场景结构化编排：1）总览项目定位与模块职责；2）入门指南含本地开发与代码导航；3）业务流程说明；4）架构部分包含模块依赖图、核心数据模型和外部依赖清单；5）运维排障涵盖定时任务、消息消费及常见问题；6）变更发布提供需求改造手册和上线检查清单。通过分类文档帮助快速掌握项目全貌与关键操作路径。（149字）]]></description><category></category></item><item><title><![CDATA[ES6 核心特性及优化的难点]]></title><link>https://blog.youkuaiyun.com/flyfeifei66/article/details/160892044</link><guid>https://blog.youkuaiyun.com/flyfeifei66/article/details/160892044</guid><author>flyfeifei66</author><pubDate>Fri, 08 May 2026 15:17:40 +0800</pubDate><description><![CDATA[痛点ES5 及之前ES6 解决方案变量提升/全局污染varlet/constthis 绑定混乱需要保存引用或 bind箭头函数继承复杂手动原型操作代码组织困难数据提取繁琐逐一遍历解构赋值回调地域多层嵌套字符串拼接+ 号连接模板字符串属性冲突手动检查Symbol这些特性极大地提升了代码的可读性、可维护性和开发效率。]]></description><category></category></item><item><title><![CDATA[React生态学习路线]]></title><link>https://blog.youkuaiyun.com/flyfeifei66/article/details/159797556</link><guid>https://blog.youkuaiyun.com/flyfeifei66/article/details/159797556</guid><author>flyfeifei66</author><pubDate>Fri, 03 Apr 2026 14:44:52 +0800</pubDate><description><![CDATA[针对 React 生态的学习路径，建议按照**“核心基础 → 必选工具 → 高级模式 → 生态扩展”**的顺序来推进。这样既能避免一开始就被过多选择淹没，又能循序渐进地建立完整的知识体系。]]></description><category></category></item><item><title><![CDATA[为什么要用“Spec“来驱动AI编程]]></title><link>https://blog.youkuaiyun.com/flyfeifei66/article/details/159005022</link><guid>https://blog.youkuaiyun.com/flyfeifei66/article/details/159005022</guid><author>flyfeifei66</author><pubDate>Fri, 13 Mar 2026 10:32:48 +0800</pubDate><description><![CDATA[总的来说，AI编程领域的“spec”远不止是一份文档。它是连接人类意图与AI执行的桥梁，是保障AI生成代码质量与可控性的核心，更是推动软件工程从“人工驱动”迈向“人机协同”新范式的关键。无论你是开发者还是技术管理者，理解和拥抱“spec”，都将是在AI时代保持竞争力的重要一步。]]></description><category></category></item><item><title><![CDATA[使用开源免费的组件构建一套分布式微服务技术选型推荐]]></title><link>https://blog.youkuaiyun.com/flyfeifei66/article/details/151830710</link><guid>https://blog.youkuaiyun.com/flyfeifei66/article/details/151830710</guid><author>flyfeifei66</author><pubDate>Thu, 18 Sep 2025 15:13:10 +0800</pubDate><description><![CDATA[使用开源免费的组件构建一套分布式微服务技术选型推荐]]></description><category></category></item><item><title><![CDATA[认识Binlog]]></title><link>https://blog.youkuaiyun.com/flyfeifei66/article/details/145993953</link><guid>https://blog.youkuaiyun.com/flyfeifei66/article/details/145993953</guid><author>flyfeifei66</author><pubDate>Mon, 03 Mar 2025 17:22:06 +0800</pubDate><description><![CDATA[binlog记录的是数据库变更事件，并不是直接等同于 SQL 语句本身。具体记录的内容取决于你选择的复制格式：是基于语句（SBR），还是基于行（RBR）。如果是UPDATE语句修改了 3 条数据，会将这 3 条数据分别作为独立的事件记录，而会将整个UPDATE语句作为一个事件。在主从复制中，binlog会按照记录的方式将变更数据同步到从库：如果是 RBR，则会逐条同步每一行的数据；如果是 SBR，则是一次性同步整个 SQL 语句。]]></description><category></category></item><item><title><![CDATA[Java技术面试（一面）]]></title><link>https://blog.youkuaiyun.com/flyfeifei66/article/details/141264231</link><guid>https://blog.youkuaiyun.com/flyfeifei66/article/details/141264231</guid><author>flyfeifei66</author><pubDate>Fri, 16 Aug 2024 16:54:26 +0800</pubDate><description><![CDATA[如何面试别人]]></description><category></category></item><item><title><![CDATA[总是给数据库表字段设置默认值的好处]]></title><link>https://blog.youkuaiyun.com/flyfeifei66/article/details/139810759</link><guid>https://blog.youkuaiyun.com/flyfeifei66/article/details/139810759</guid><author>flyfeifei66</author><pubDate>Wed, 19 Jun 2024 19:18:58 +0800</pubDate><description><![CDATA[通过设置字段不能为空，可以确保每条记录都包含必要的数据，从而保证了数据的完整性。例如，在用户表中，用户名字段不能为空可以确保每个用户都有一个有效的用户名。避免空值问题在数据库查询和数据处理过程中，空值（NULL）可能会导致各种问题，如计算错误、逻辑错误等。通过设置默认值，可以避免这些潜在问题，使数据处理更加稳定和可靠。通过设置默认值，可以确保在缺少明确值时，字段总是有一个一致的值。例如，如果性别字段的默认值设置为'未指定'，就不会出现性别为空的情况，从而保证数据的一致性。优化性能。]]></description><category></category></item><item><title><![CDATA[自定义线程池，实现父线程MDC的自动拷贝]]></title><link>https://blog.youkuaiyun.com/flyfeifei66/article/details/139363267</link><guid>https://blog.youkuaiyun.com/flyfeifei66/article/details/139363267</guid><author>flyfeifei66</author><pubDate>Fri, 31 May 2024 23:52:23 +0800</pubDate><description><![CDATA[以上两个Wapper，包括这个匿名类线程池，不难看出他们都是代理类，应用了代理模式进行增强。这个匿名类线程池在execute前，把线程用MDCRunnable包装了一个，于是线程就有了自动拷贝MDC的能力，目前这是最简单的一种方式。]]></description><category></category></item><item><title><![CDATA[Java异常体系]]></title><link>https://blog.youkuaiyun.com/flyfeifei66/article/details/139353419</link><guid>https://blog.youkuaiyun.com/flyfeifei66/article/details/139353419</guid><author>flyfeifei66</author><pubDate>Fri, 31 May 2024 15:15:13 +0800</pubDate><description><![CDATA[ThrowableException（受检查异常）（非检查异常）Error。]]></description><category></category></item><item><title><![CDATA[TransmittableThreadLocal原理]]></title><link>https://blog.youkuaiyun.com/flyfeifei66/article/details/139336289</link><guid>https://blog.youkuaiyun.com/flyfeifei66/article/details/139336289</guid><author>flyfeifei66</author><pubDate>Thu, 30 May 2024 22:57:30 +0800</pubDate><description><![CDATA[TransmittableThreadLocal（简称TTL）是阿里巴巴开源的一个Java库，用于解决线程池中线程本地变量传递的问题。其底层原理主要是基于Java的机制并对其进行扩展，以支持在父子线程间以及线程池中任务切换时，能够传递和继承变量的值。： TTL继承自但与不同的是，TTL解决了在已经存在的线程（如线程池中的线程）之间传递值的问题。： 对于异步任务，TTL确保了即使在异步执行的上下文中，父线程的状态也能被正确地传递给处理该任务的子线程。]]></description><category></category></item><item><title><![CDATA[Java的序列化接口]]></title><link>https://blog.youkuaiyun.com/flyfeifei66/article/details/139237336</link><guid>https://blog.youkuaiyun.com/flyfeifei66/article/details/139237336</guid><author>flyfeifei66</author><pubDate>Mon, 27 May 2024 14:30:58 +0800</pubDate><description><![CDATA[当父类实现了接口并且定义了字段，子类是否需要再定义一个字段，取决于具体需求。尽管子类可以继承父类的，但为了确保子类的序列化版本一致性，建议在子类中显式定义字段。这不仅能避免由于自动生成导致的潜在问题，还能提供明确的版本控制。]]></description><category></category></item><item><title><![CDATA[SpringBoot自动化配置原理]]></title><link>https://blog.youkuaiyun.com/flyfeifei66/article/details/139206043</link><guid>https://blog.youkuaiyun.com/flyfeifei66/article/details/139206043</guid><author>flyfeifei66</author><pubDate>Sun, 26 May 2024 00:05:29 +0800</pubDate><description><![CDATA[创建配置类定义一个新的配置类，使用注解并包含@Bean方法。添加条件注解根据需要使用各种条件注解来控制配置类的加载。注册自动配置类在文件中注册新的自动配置类。Spring Boot 的自动化配置利用注解及其背后的机制（包括文件和条件注解）实现了在应用启动时自动装配 bean。通过这种方式，开发者可以专注于业务逻辑，而无需手动配置各种基础设施组件。]]></description><category></category></item><item><title><![CDATA[Spring Boot 如何使用 AOP 防止重复提交]]></title><link>https://blog.youkuaiyun.com/flyfeifei66/article/details/139205759</link><guid>https://blog.youkuaiyun.com/flyfeifei66/article/details/139205759</guid><author>flyfeifei66</author><pubDate>Sat, 25 May 2024 23:44:27 +0800</pubDate><description><![CDATA[首先，创建一个自定义注解。// 可以定义属性以配置注解，例如设置过期时间等。]]></description><category></category></item><item><title><![CDATA[在Spring Boot中Redis实现事务有哪些方式？]]></title><link>https://blog.youkuaiyun.com/flyfeifei66/article/details/139069506</link><guid>https://blog.youkuaiyun.com/flyfeifei66/article/details/139069506</guid><author>flyfeifei66</author><pubDate>Mon, 20 May 2024 16:57:11 +0800</pubDate><description><![CDATA[以上三种方式都可以在Spring Boot中实现对Redis的事务支持。选择哪种方式取决于具体的业务需求和使用场景。通常，使用Spring Data Redis的SessionCallback是较为直接和简便的方法，但对于更复杂的需求，可以考虑使用Lua脚本。]]></description><category></category></item><item><title><![CDATA[URL的写法建议]]></title><link>https://blog.youkuaiyun.com/flyfeifei66/article/details/138716528</link><guid>https://blog.youkuaiyun.com/flyfeifei66/article/details/138716528</guid><author>flyfeifei66</author><pubDate>Sat, 11 May 2024 15:05:58 +0800</pubDate><description><![CDATA[在 URL 的定义中，通常不建议使用驼峰写法（CamelCase），因为 URL 应该尽量保持易于阅读和输入。URL 中包含的字母大小写可能会导致访问错误或混淆，因为不是所有的服务器或网络设备都会把 URL 视为大小写不敏感。因此，推荐的好的写法是使用全部小写并通过短划线来分隔单词。这样不仅避免了大小写敏感的问题，也使得 URL 更加清晰易读。]]></description><category></category></item><item><title><![CDATA[SpringBoot整合MyBatis步骤]]></title><link>https://blog.youkuaiyun.com/flyfeifei66/article/details/138629045</link><guid>https://blog.youkuaiyun.com/flyfeifei66/article/details/138629045</guid><author>flyfeifei66</author><pubDate>Thu, 09 May 2024 19:57:54 +0800</pubDate><description><![CDATA[在Spring Boot中整合MyBatis可以通过几种方式实现，主要包括使用官方的MyBatis Spring Boot Starter，或者通过手动配置。这是最简单的方式，因为Spring Boot Starter为我们自动配置了大部分的MyBatis设置。]]></description><category></category></item><item><title><![CDATA[SpringBoot如何实现动态数据源？]]></title><link>https://blog.youkuaiyun.com/flyfeifei66/article/details/138626502</link><guid>https://blog.youkuaiyun.com/flyfeifei66/article/details/138626502</guid><author>flyfeifei66</author><pubDate>Thu, 09 May 2024 18:55:06 +0800</pubDate><description><![CDATA[接下来，你需要实现，以便根据当前上下文确定应使用哪个数据源。@Override。]]></description><category></category></item><item><title><![CDATA[kubernetes学习]]></title><link>https://blog.youkuaiyun.com/flyfeifei66/article/details/137973474</link><guid>https://blog.youkuaiyun.com/flyfeifei66/article/details/137973474</guid><author>flyfeifei66</author><pubDate>Fri, 19 Apr 2024 18:27:03 +0800</pubDate><description><![CDATA[43、Pod详解-亲和性调度-podAntiAffinity。41、Pod详解-亲和性调度-nodeAffinity。42、Pod详解-亲和性调度-podAffinity。52、Pod控制器-Deployment-金丝雀发布。50、Pod控制器-Deployment-升级策略。51、Pod控制器-Deployment-版本回退。49、Pod控制器-Deployment-扩缩容。48、Pod控制器-Deployment-基础。33、Pod详解-生命周期-初始化容器。34、Pod详解-生命周期--钩子函数。]]></description><category></category></item></channel></rss>