<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Charlie Says · 查理如是说</title><description>后端工程师的笔记簿</description><link>http://localhost:4321/</link><item><title>《度心术》读后：操纵人心的书，最好反着读</title><link>http://localhost:4321/posts/2026-08-21_duxinshu-reading-notes/</link><guid isPermaLink="true">http://localhost:4321/posts/2026-08-21_duxinshu-reading-notes/</guid><description>托名&quot;笑里藏刀&quot;的李义府——一本心理操纵手册，最有价值的读法是当防御清单用。</description><pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate><category>读书</category><category>随笔</category></item><item><title>《观人经》读后：知人者以目正耳</title><link>http://localhost:4321/posts/2026-08-21_guanrenjing-reading-notes/</link><guid isPermaLink="true">http://localhost:4321/posts/2026-08-21_guanrenjing-reading-notes/</guid><description>三国刘劭《人物志》的改编本——一千八百年前的面试方法论，核心难题是&quot;似是而非&quot;。</description><pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate><category>读书</category><category>随笔</category></item><item><title>《谏学》读后：大处惟争，小处惟让</title><link>http://localhost:4321/posts/2026-08-21_jianxue-reading-notes/</link><guid isPermaLink="true">http://localhost:4321/posts/2026-08-21_jianxue-reading-notes/</guid><description>托名北宋名相王旦的《谏学》——一部讲&quot;说话&quot;的古书，通篇却都在讲什么时候闭嘴。</description><pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate><category>读书</category><category>随笔</category></item><item><title>《解厄鉴》读后：厄欲减，才莫显</title><link>http://localhost:4321/posts/2026-08-21_jieejian-reading-notes/</link><guid isPermaLink="true">http://localhost:4321/posts/2026-08-21_jieejian-reading-notes/</guid><description>托名北宋晏殊的《解厄鉴》——一位太平宰相的消灾笔记：困厄有规律，可以拆解。</description><pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate><category>读书</category><category>随笔</category></item><item><title>《罗织经》读后：读懂它，认出它，走开</title><link>http://localhost:4321/posts/2026-08-21_luozhijing-reading-notes/</link><guid isPermaLink="true">http://localhost:4321/posts/2026-08-21_luozhijing-reading-notes/</guid><description>武周酷吏来俊臣的《罗织经》——一部恶意操作手册。每一卷都是一份攻击面清单。</description><pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate><category>读书</category><category>随笔</category></item><item><title>《权谋书》读后：谋略的本质是信息差</title><link>http://localhost:4321/posts/2026-08-21_quanmoushu-reading-notes/</link><guid isPermaLink="true">http://localhost:4321/posts/2026-08-21_quanmoushu-reading-notes/</guid><description>传为张居正所著的《权谋书》——从&quot;智察&quot;讲到&quot;中伤&quot;的十二卷。署名者的结局，是这本书最大的注脚。</description><pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate><category>读书</category><category>随笔</category></item><item><title>《仕经》读后：官者，管也</title><link>http://localhost:4321/posts/2026-08-21_shijing-reading-notes/</link><guid isPermaLink="true">http://localhost:4321/posts/2026-08-21_shijing-reading-notes/</guid><description>托名冯道的《仕经》——把&quot;做官&quot;当一门手艺拆解的书。把&quot;仕&quot;换成&quot;职业&quot;，一半有效，恰是讲修身的那一半。</description><pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate><category>读书</category><category>随笔</category></item><item><title>《势胜学》读后：势是借来的风，不是攒出来的力</title><link>http://localhost:4321/posts/2026-08-21_shishengxue-reading-notes/</link><guid isPermaLink="true">http://localhost:4321/posts/2026-08-21_shishengxue-reading-notes/</guid><description>传说中的黄石公《势胜学》——不管作者是谁，&quot;不知势，无以为君子&quot;这句话值得抄在案头。</description><pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate><category>读书</category><category>随笔</category></item><item><title>《守弱学》读后：弱点是待经营的资产</title><link>http://localhost:4321/posts/2026-08-21_shouruoxue-reading-notes/</link><guid isPermaLink="true">http://localhost:4321/posts/2026-08-21_shouruoxue-reading-notes/</guid><description>从西晋名臣杜预散见论述整理而成的《守弱学》——一个不会骑马射箭的统帅，讲怎么把弱处经营成胜势。</description><pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate><category>读书</category><category>随笔</category></item><item><title>《韬晦术》读后：藏锋是为了出鞘</title><link>http://localhost:4321/posts/2026-08-21_taohuishu-reading-notes/</link><guid isPermaLink="true">http://localhost:4321/posts/2026-08-21_taohuishu-reading-notes/</guid><description>明代状元杨慎的谪戍之书——写下&quot;滚滚长江东逝水&quot;的人，用三十五年验证韬晦的极限。</description><pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate><category>读书</category><category>随笔</category></item><item><title>《小人经》读后：在小人面前，不变傻子</title><link>http://localhost:4321/posts/2026-08-21_xiaorenjing-reading-notes/</link><guid isPermaLink="true">http://localhost:4321/posts/2026-08-21_xiaorenjing-reading-notes/</guid><description>托名五代冯道的《荣枯鉴》——一部&quot;坏人使用说明书&quot;。读它不是学做小人，是学会防。</description><pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate><category>读书</category><category>随笔</category></item><item><title>《予学》读后：先给出去，才拿得回来</title><link>http://localhost:4321/posts/2026-08-21_yuxue-reading-notes/</link><guid isPermaLink="true">http://localhost:4321/posts/2026-08-21_yuxue-reading-notes/</guid><description>托名许劭的《予学》——一部把&quot;给予&quot;讲成战略的古书。得失、荣辱、成败，全从一个&quot;予&quot;字上生出来。</description><pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate><category>读书</category><category>随笔</category></item><item><title>《止学》读后：利无尽处，命有尽时</title><link>http://localhost:4321/posts/2026-08-21_zhixue-reading-notes/</link><guid isPermaLink="true">http://localhost:4321/posts/2026-08-21_zhixue-reading-notes/</guid><description>隋代大儒王通的《止学》——一门关于&quot;停&quot;的学问。聪明人的问题从来不是不够快，而是停不下来。</description><pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate><category>读书</category><category>随笔</category></item><item><title>对于普通人而言，AI 解决了什么问题</title><link>http://localhost:4321/posts/2026-08-20_ai-for-ordinary-people/</link><guid isPermaLink="true">http://localhost:4321/posts/2026-08-20_ai-for-ordinary-people/</guid><description>不是效率，不是生产力。是&quot;不敢问&quot;和&quot;没人问&quot;的问题，终于有地方问了。</description><pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate><category>AI</category><category>随笔</category></item><item><title>ELN 详解：电子实验记录本与数据完整性</title><link>http://localhost:4321/posts/2026-08-20_eln-deep-dive/</link><guid isPermaLink="true">http://localhost:4321/posts/2026-08-20_eln-deep-dive/</guid><description>纸质实验记录本的电子化，难点不在&quot;电子&quot;，在&quot;不可改&quot;。</description><pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate><category>行业数字化</category><category>ELN</category><category>架构</category></item><item><title>LIMS 详解：实验室信息管理系统的设计与实现</title><link>http://localhost:4321/posts/2026-08-20_lims-deep-dive/</link><guid isPermaLink="true">http://localhost:4321/posts/2026-08-20_lims-deep-dive/</guid><description>从样本进实验室，到报告出去，中间所有人和数据的流转，都归 LIMS 管。</description><pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate><category>行业数字化</category><category>LIMS</category><category>架构</category></item><item><title>EDC 详解：临床数据采集系统的核心设计</title><link>http://localhost:4321/posts/2026-08-20_edc-deep-dive/</link><guid isPermaLink="true">http://localhost:4321/posts/2026-08-20_edc-deep-dive/</guid><description>EDC 的难点不在表单，在&quot;变&quot;——方案一定会修订，系统要为变而生。</description><pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate><category>行业数字化</category><category>EDC</category><category>架构</category></item><item><title>MES 详解：细胞治疗数字化产线的制造执行系统</title><link>http://localhost:4321/posts/2026-08-20_mes-deep-dive/</link><guid isPermaLink="true">http://localhost:4321/posts/2026-08-20_mes-deep-dive/</guid><description>ERP 管&quot;钱和计划&quot;，车间里管&quot;这批货做到哪一步&quot;的是 MES。在细胞治疗行业，一个批次就是一条命。</description><pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate><category>行业数字化</category><category>MES</category><category>架构</category></item><item><title>PMS 详解：研发项目管理系统的架构思考</title><link>http://localhost:4321/posts/2026-08-20_pms-deep-dive/</link><guid isPermaLink="true">http://localhost:4321/posts/2026-08-20_pms-deep-dive/</guid><description>项目管理系统的敌人是&quot;没人填&quot;。所有设计围绕降低填报摩擦。</description><pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate><category>行业数字化</category><category>PMS</category><category>架构</category></item><item><title>BI 详解：从多源数据到管理层驾驶舱</title><link>http://localhost:4321/posts/2026-08-20_bi-deep-dive/</link><guid isPermaLink="true">http://localhost:4321/posts/2026-08-20_bi-deep-dive/</guid><description>BI 项目 80% 的时间在数据治理，20% 在做图。口径就是权力。</description><pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate><category>行业数字化</category><category>BI</category><category>架构</category></item><item><title>开发一个函数绘图工具：从需求到单文件落地</title><link>http://localhost:4321/posts/2026-08-19_build-function-plotter/</link><guid isPermaLink="true">http://localhost:4321/posts/2026-08-19_build-function-plotter/</guid><description>一个人、一个 HTML 文件、两千行代码，做一块能给孩子讲函数的黑板。</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate><category>前端</category><category>JavaScript</category><category>随笔</category></item><item><title>JHipster 开发 01：为什么选 JHipster——一次生成，十年维护</title><link>http://localhost:4321/posts/jhipster/jhipster-01-why-jhipster/</link><guid isPermaLink="true">http://localhost:4321/posts/jhipster/jhipster-01-why-jhipster/</guid><description>从脚手架与手工搭建的 ROI 对比出发，讲清 JHipster 生成代码的规范价值与团队协作收益，并给出适合与不适合的场景清单。</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate><category>JHipster</category><category>系列</category></item><item><title>JHipster 开发 02：环境搭建与第一个应用</title><link>http://localhost:4321/posts/jhipster/jhipster-02-setup-first-app/</link><guid isPermaLink="true">http://localhost:4321/posts/jhipster/jhipster-02-setup-first-app/</guid><description>从 JDK 21、Node 22 环境准备开始，逐步走完安装生成器、交互式问答、JDL 一键生成，到前后端启动与默认账号登录的全流程。</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate><category>JHipster</category><category>系列</category></item><item><title>JHipster 开发 03：技术栈全景图</title><link>http://localhost:4321/posts/jhipster/jhipster-03-tech-stack-overview/</link><guid isPermaLink="true">http://localhost:4321/posts/jhipster/jhipster-03-tech-stack-overview/</guid><description>自顶向下拆解 JHipster 9.x 生成的技术栈：Spring Boot 4 后端、Angular 21 前端、数据库与迁移、构建工具，并附全景架构图与选型建议。</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate><category>JHipster</category><category>系列</category></item><item><title>JHipster 开发 04：开发工作流——热重载与前后端联调</title><link>http://localhost:4321/posts/jhipster/jhipster-04-dev-workflow/</link><guid isPermaLink="true">http://localhost:4321/posts/jhipster/jhipster-04-dev-workflow/</guid><description>讲透 JHipster 日常开发的双进程工作流：DevTools 热重载、Vite 代理打通 /api、日志排障，以及 CORS 与端口冲突等高频联调问题的解法。</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate><category>JHipster</category><category>系列</category></item><item><title>JHipster 开发 05：微服务 vs 单体——怎么选</title><link>http://localhost:4321/posts/jhipster/jhipster-05-microservice-vs-monolith/</link><guid isPermaLink="true">http://localhost:4321/posts/jhipster/jhipster-05-microservice-vs-monolith/</guid><description>对比 JHipster 单体与微服务两种生成拓扑的架构、运维成本与团队适配性，给出决策表和从单体到拆分的演进路线。</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate><category>JHipster</category><category>系列</category></item><item><title>JHipster 开发 06：实体代码生成深潜——JDL 从入门到驯服</title><link>http://localhost:4321/posts/jhipster/jhipster-06-jdl-deep-dive/</link><guid isPermaLink="true">http://localhost:4321/posts/jhipster/jhipster-06-jdl-deep-dive/</guid><description>系统讲解 JDL 建模：字段类型与校验注解、三种关系、枚举、dto/service/paginate/search 选项，增量更新机制与生成产物清单，附订单系统实战。</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate><category>JHipster</category><category>系列</category></item><item><title>JHipster 开发 07：数据库迁移——Liquibase 不是可选项</title><link>http://localhost:4321/posts/jhipster/jhipster-07-liquibase-migration/</link><guid isPermaLink="true">http://localhost:4321/posts/jhipster/jhipster-07-liquibase-migration/</guid><description>讲清 JHipster 的 Liquibase 集成结构与增量 changeset 规范、diff changelog 工作流，以及字段重命名、数据回填、context 与 profile 等常见坑。</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate><category>JHipster</category><category>系列</category></item><item><title>JHipster 开发 08：安全体系（上）——认证</title><link>http://localhost:4321/posts/jhipster/jhipster-08-security-authentication/</link><guid isPermaLink="true">http://localhost:4321/posts/jhipster/jhipster-08-security-authentication/</guid><description>对比 JWT、OAuth2/OIDC（Keycloak）与 Session 三种认证选型，拆解 JWT 时序与 TokenProvider、过滤器生成代码，并给出 Keycloak 本地跑通方案。</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate><category>JHipster</category><category>系列</category></item><item><title>JHipster 开发 09：安全体系（下）——授权</title><link>http://localhost:4321/posts/jhipster/jhipster-09-security-authorization/</link><guid isPermaLink="true">http://localhost:4321/posts/jhipster/jhipster-09-security-authorization/</guid><description>从 JhiAuthority 表与角色权限模型讲起，拆解 SecurityConfiguration、方法级 @PreAuthorize 与前端路由守卫，完整演示自定义权限的全流程。</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate><category>JHipster</category><category>系列</category></item><item><title>JHipster 开发 10：缓存——从 Hazelcast 到 Redis</title><link>http://localhost:4321/posts/jhipster/jhipster-10-caching/</link><guid isPermaLink="true">http://localhost:4321/posts/jhipster/jhipster-10-caching/</guid><description>梳理 JHipster 缓存选型：Hazelcast 内置的 session 与 Hibernate 二级缓存场景，引入 Redis 的时机，以及 Spring Cache 注解与失效策略的实践。</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate><category>JHipster</category><category>系列</category></item><item><title>JHipster 开发 11：REST 层设计——生成的代码够用吗</title><link>http://localhost:4321/posts/jhipster/jhipster-11-rest-design/</link><guid isPermaLink="true">http://localhost:4321/posts/jhipster/jhipster-11-rest-design/</guid><description>逐层拆解 JHipster 生成的 REST 代码：分页排序、批量操作、事务边界、MapStruct 与统一错误体，并给出改生成代码与扩展它的决策框架。</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate><category>JHipster</category><category>系列</category></item><item><title>JHipster 开发 12：异步与消息——Kafka 集成</title><link>http://localhost:4321/posts/jhipster/jhipster-12-kafka-async/</link><guid isPermaLink="true">http://localhost:4321/posts/jhipster/jhipster-12-kafka-async/</guid><description>从削峰、解耦与最终一致三类场景出发，拆解 JHipster Kafka 生成结构与 Spring Cloud Stream 函数式模型，覆盖可靠性、顺序性与 outbox 思想。</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate><category>JHipster</category><category>系列</category></item><item><title>JHipster 开发 13：Angular 端架构——生成的代码怎么读</title><link>http://localhost:4321/posts/jhipster/jhipster-13-angular-architecture/</link><guid isPermaLink="true">http://localhost:4321/posts/jhipster/jhipster-13-angular-architecture/</guid><description>以目录导览表和读代码路线图拆解 JHipster 生成的 Angular 21 工程：entities 结构、信号优先的状态管理、共享组件与 admin 模块。</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate><category>JHipster</category><category>系列</category></item><item><title>JHipster 开发 14：从登录页读懂前端安全流</title><link>http://localhost:4321/posts/jhipster/jhipster-14-frontend-security/</link><guid isPermaLink="true">http://localhost:4321/posts/jhipster/jhipster-14-frontend-security/</guid><description>沿着登录组件到 auth service、JWT 存储取舍、请求拦截、401 处理与路由守卫的完整链路，读通 JHipster 前端安全流并附登录时序图。</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate><category>JHipster</category><category>系列</category></item><item><title>JHipster 开发 15：改造 UI——不动生成代码的优雅方式</title><link>http://localhost:4321/posts/jhipster/jhipster-15-ui-customization/</link><guid isPermaLink="true">http://localhost:4321/posts/jhipster/jhipster-15-ui-customization/</guid><description>讲透主题品牌化、覆盖生成组件的三种姿势、首页改造与 i18n 文案修改，解释为什么不改生成文件以及如何尊重 .yo-rc 与生成器标记。</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate><category>JHipster</category><category>系列</category></item><item><title>JHipster 开发 16：表单与表格的工程化</title><link>http://localhost:4321/posts/jhipster/jhipster-16-forms-tables/</link><guid isPermaLink="true">http://localhost:4321/posts/jhipster/jhipster-16-forms-tables/</guid><description>解读 JHipster 生成的表单与分页表格，打通 Bean Validation 与前端校验的一致性，给出复杂表单落点选择与服务端化表格的通用抽象。</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate><category>JHipster</category><category>系列</category></item><item><title>JHipster 开发 17：测试全景——单元到端到端</title><link>http://localhost:4321/posts/jhipster/jhipster-17-testing/</link><guid isPermaLink="true">http://localhost:4321/posts/jhipster/jhipster-17-testing/</guid><description>在 JHipster 中落地测试金字塔：从 Mockito 单测、DataJpaTest 切片、Testcontainers 真库到 Vitest 与 Cypress E2E，附 CI 分层策略与提速手段。</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate><category>JHipster</category><category>系列</category></item><item><title>JHipster 开发 18：CI/CD——从零到自动发布</title><link>http://localhost:4321/posts/jhipster/jhipster-18-cicd/</link><guid isPermaLink="true">http://localhost:4321/posts/jhipster/jhipster-18-cicd/</guid><description>用 jhipster ci-cd 子生成器生成流水线，解读构建、测试、jib 镜像与部署各阶段，覆盖版本策略、环境推进、迁移时机、回滚与 secrets 管理。</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate><category>JHipster</category><category>系列</category></item><item><title>JHipster 开发 19：容器化与 Kubernetes</title><link>http://localhost:4321/posts/jhipster/jhipster-19-kubernetes/</link><guid isPermaLink="true">http://localhost:4321/posts/jhipster/jhipster-19-kubernetes/</guid><description>解读 jhipster kubernetes 子生成器产物（Deployment/Service/Ingress/HPA），覆盖 jib 无 Dockerfile 构建、探针与资源限制、Helm 选项与滚动更新回滚。</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate><category>JHipster</category><category>系列</category></item><item><title>JHipster 开发 20：可观测性——日志、指标、链路</title><link>http://localhost:4321/posts/jhipster/jhipster-20-observability/</link><guid isPermaLink="true">http://localhost:4321/posts/jhipster/jhipster-20-observability/</guid><description>三大支柱在 JHipster 的落地：Logback 结构化日志与 profile 差异、Micrometer 与 Prometheus/Grafana 大盘、micrometer-tracing 链路与健康探针、慢 SQL 定位。</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate><category>JHipster</category><category>系列</category></item><item><title>JHipster 开发 21：多环境配置管理</title><link>http://localhost:4321/posts/jhipster/jhipster-21-config-profiles/</link><guid isPermaLink="true">http://localhost:4321/posts/jhipster/jhipster-21-config-profiles/</guid><description>围绕 Spring profile 与 application-*.yml 的组织方式，讲清敏感信息不进 git 的三种手段、微服务下的 Spring Cloud Config，以及配置优先级与各环境上线前清单。</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate><category>JHipster</category><category>系列</category></item><item><title>JHipster 开发 22：升级策略——JHipster 版本怎么跟</title><link>http://localhost:4321/posts/jhipster/jhipster-22-upgrade-strategy/</link><guid isPermaLink="true">http://localhost:4321/posts/jhipster/jhipster-22-upgrade-strategy/</guid><description>拆解 JHipster 半年一个大版本的节奏与升级成本来源，对比 upgrade 子生成器、migrate blueprint、手动重生成三条路线，讲清事实源纪律与何时放弃升级。</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate><category>JHipster</category><category>系列</category></item><item><title>JHipster 开发 23：自定义业务模块——不改生成代码的哲学</title><link>http://localhost:4321/posts/jhipster/jhipster-23-custom-modules/</link><guid isPermaLink="true">http://localhost:4321/posts/jhipster/jhipster-23-custom-modules/</guid><description>讲透业务代码与生成代码的隔离：新包与 Maven module 组织、组合优先于修改的 Service 扩展、@Primary 覆盖 Bean、目录纪律与每次 review 的自检清单。</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate><category>JHipster</category><category>系列</category></item><item><title>JHipster 开发 24：子生成器二次开发与蓝图机制</title><link>http://localhost:4321/posts/jhipster/jhipster-24-blueprints/</link><guid isPermaLink="true">http://localhost:4321/posts/jhipster/jhipster-24-blueprints/</guid><description>讲清 blueprint 的本质（npm 包 generator-jhipster-xxx 与 --blueprints 选项）与 composability 原理，手把手开发一个最小 blueprint，并盘点官方生态与维护成本。</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate><category>JHipster</category><category>系列</category></item><item><title>JHipster 开发 25：微服务拆分实战</title><link>http://localhost:4321/posts/jhipster/jhipster-25-microservice-split/</link><guid isPermaLink="true">http://localhost:4321/posts/jhipster/jhipster-25-microservice-split/</guid><description>从部署频率、团队规模、故障隔离三个信号判断拆分时机，按模块化先行、按域抽服务、数据拆分、网关鉴权下沉四步走完从单体到微服务的演进，附代价表与反模式。</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate><category>JHipster</category><category>系列</category></item><item><title>JHipster 开发 26：性能调优实战</title><link>http://localhost:4321/posts/jhipster/jhipster-26-performance-tuning/</link><guid isPermaLink="true">http://localhost:4321/posts/jhipster/jhipster-26-performance-tuning/</guid><description>一套分层调优方法论：先测量后动手，从连接池、Hibernate 批处理与 N+1、缓存命中、JVM 与 GraalVM，到前端 bundle 与 Zoneless，最后附数据库索引与压测 checklist。</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate><category>JHipster</category><category>系列</category></item><item><title>JHipster 开发 27：国际化与本地化</title><link>http://localhost:4321/posts/jhipster/jhipster-27-i18n/</link><guid isPermaLink="true">http://localhost:4321/posts/jhipster/jhipster-27-i18n/</guid><description>JHipster 前后端 i18n 全链路：后端 MessageSource 与 Accept-Language、前端 i18n JSON 结构与翻译 key 约定、date-fns/Intl 本地化格式、新增语言步骤与升级冲突处理。</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate><category>JHipster</category><category>系列</category></item><item><title>JHipster 开发 29：踩坑全集——我们交过的学费</title><link>http://localhost:4321/posts/jhipster/jhipster-29-pitfalls/</link><guid isPermaLink="true">http://localhost:4321/posts/jhipster/jhipster-29-pitfalls/</guid><description>按升级、Liquibase、JWT、前端、K8s、协作六类盘点团队五年真实踩过的 13 个坑，每个坑从现象、根因到解法与预防，多数坑背后另有专篇展开。</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate><category>JHipster</category><category>系列</category></item><item><title>JHipster 开发 30：复盘——JHipster 三年使用总结</title><link>http://localhost:4321/posts/jhipster/jhipster-30-retrospective/</link><guid isPermaLink="true">http://localhost:4321/posts/jhipster/jhipster-30-retrospective/</guid><description>三年、四个项目、一百多个实体的 JHipster 实践复盘：收益与代价对账、团队数据回顾、浓缩成十条建议，附全系列 30 篇知识地图与结语致谢。</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate><category>JHipster</category><category>系列</category></item><item><title>JHipster 开发 28：生产上线 Checklist</title><link>http://localhost:4321/posts/jhipster/jhipster-28-production-checklist/</link><guid isPermaLink="true">http://localhost:4321/posts/jhipster/jhipster-28-production-checklist/</guid><description>一份打过四次生产发布检验的全清单：安全、数据库、性能、可观测、K8s、回滚预案六大块表格化，重点讲 Liquibase 前滚兼容与镜像回滚的配套设计。</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate><category>JHipster</category><category>系列</category></item><item><title>Angular 22+ 教程 01：初识 Angular——框架定位与技术选型</title><link>http://localhost:4321/posts/angular/angular-01-intro/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-01-intro/</guid><description>本文介绍 Angular 的框架定位：Google 维护的全框架、TypeScript 优先、企业级适用性，以及 v22 时代被 signals 与 zoneless 重塑的六大核心概念。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>系列</category></item><item><title>Angular 22+ 教程 05：angular.json 配置详解</title><link>http://localhost:4321/posts/angular/angular-05-angular-json/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-05-angular-json/</guid><description>逐节拆解 angular.json：projects 与 targets 结构、configurations 生产/开发覆盖、budgets 体积预算、fileReplacements、assets/styles 数组语义与 v22 扁平化趋势。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>系列</category></item><item><title>Angular 22+ 教程 04：Angular CLI——工程化的瑞士军刀</title><link>http://localhost:4321/posts/angular/angular-04-cli/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-04-cli/</guid><description>系统讲解 Angular CLI：generate 蓝图、serve 与 PORT 环境变量、build 的默认 chunk 优化、ng test 的 --quiet/--isolate、ng update 自动迁移与自定义 schematics。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>系列</category></item><item><title>Angular 22+ 教程 13：组件生命周期钩子</title><link>http://localhost:4321/posts/angular/angular-13-lifecycle/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-13-lifecycle/</guid><description>本文梳理 Angular 组件生命周期钩子的执行顺序，以及信号时代 input()/effect()/afterRenderEffect() 对传统钩子的替代。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>系列</category></item><item><title>Angular 22+ 教程 03：环境搭建与 Getting Started（TS 6 / Node 22+）</title><link>http://localhost:4321/posts/angular/angular-03-getting-started/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-03-getting-started/</guid><description>本文带你搭建 Angular v22 开发环境：Node 22+ 与 TS 6 检查、npx @angular/cli@22 创建项目、读懂目录结构与 ng serve，并用计数器和待办 demo 串起核心概念。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>系列</category></item><item><title>Angular 22+ 教程 06：Angular Compiler 漫谈</title><link>http://localhost:4321/posts/angular/angular-06-compiler/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-06-compiler/</guid><description>从 JIT 到 AOT 的演进、增量编译与 strictTemplates 默认的意义、NG8023/NG1054 编译期检查、预编译产物的 tree-shaking，以及 Vite/Rolldown 构建链与 @boundary 展望。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>系列</category></item><item><title>Angular 22+ 教程 09：@let 模板局部变量</title><link>http://localhost:4321/posts/angular/angular-09-let/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-09-let/</guid><description>@let 是 v18.1 引入的模板局部变量：让表达式的求值结果在模板中复用，避免重复调用昂贵函数；本文讲清语法、作用域规则及与 #ref、computed 的分工。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>系列</category></item><item><title>Angular 22+ 教程 07：组件与模板——Template Binding Syntax</title><link>http://localhost:4321/posts/angular/angular-07-template-binding/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-07-template-binding/</guid><description>一文吃透 Angular 模板绑定语法：插值与属性/事件/双向绑定、[class] 与 [style]、input()/output()/model() 信号 API、$event 类型与绑定目标速查表。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>系列</category></item><item><title>Angular 22+ 教程 10：ng-template 与 TemplateRef</title><link>http://localhost:4321/posts/angular/angular-10-ng-template/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-10-ng-template/</guid><description>ng-template 与 TemplateRef 是模板体系的地基：#tpl 引用、ngTemplateOutlet 上下文、ViewContainerRef.createEmbeddedView 嵌入视图，以及它与新控制流的底层关系。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>系列</category></item><item><title>Angular 22+ 教程 11：属性型指令 Attribute Directives</title><link>http://localhost:4321/posts/angular/angular-11-attribute-directives/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-11-attribute-directives/</guid><description>本文讲解 Angular 属性型指令：@Directive 装饰器、host 对象与 HostBinding/HostListener 对照、input() 传参与实战示例。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>系列</category></item><item><title>Angular 22+ 教程 08：新的控制流 @if / @for / @switch</title><link>http://localhost:4321/posts/angular/angular-08-control-flow/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-08-control-flow/</guid><description>详解 v17+ 块状控制流：@if/@else 的类型收窄、@for 必须的 track 与隐含变量、@empty、@switch 的穷尽检查、@defer 触发器，以及与 *ngIf/*ngFor 的对照迁移。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>系列</category></item><item><title>Angular 22+ 教程 12：结构型指令与微语法</title><link>http://localhost:4321/posts/angular/angular-12-structural-directives/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-12-structural-directives/</guid><description>本文解析结构型指令与微语法：*ngIf/*ngFor 的脱糖原理、用 TemplateRef 与 ViewContainerRef 手写指令，以及新控制流时代的分工。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>系列</category></item><item><title>Angular 22+ 教程 14：组件查询——@ViewChild / @ContentChild 与信号查询</title><link>http://localhost:4321/posts/angular/angular-14-query-elements/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-14-query-elements/</guid><description>本文对比装饰器查询与 viewChild()/contentChildren() 信号查询，覆盖 required 查询、read 选项与内容投影场景。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>系列</category></item><item><title>Angular 22+ 教程 15：动态组件 Dynamic Components</title><link>http://localhost:4321/posts/angular/angular-15-dynamic-components/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-15-dynamic-components/</guid><description>本文讲解动态组件四种方案：NgComponentOutlet、createComponent、@defer 以及 injectAsync 配合动态 import 懒加载重组件。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>系列</category></item><item><title>Angular 22+ 教程 16：Angular 组件 vs Web Components</title><link>http://localhost:4321/posts/angular/angular-16-vs-web-components/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-16-vs-web-components/</guid><description>本文对比 Angular 组件与 Web Components：从自定义元素、@angular/elements 打包到编译时与运行时、DI 等本质差异与选型。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>系列</category></item><item><title>Angular 22+ 教程 17：Angular 组件 vs Shadow DOM 与样式隔离</title><link>http://localhost:4321/posts/angular/angular-17-vs-shadow-dom/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-17-vs-shadow-dom/</guid><description>本文对比 ViewEncapsulation.Emulated/None/ShadowDom 三种样式隔离模式，剖析 ::ng-deep 的坑与现代替代方案。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>系列</category></item><item><title>Angular 22+ 教程 18：依赖注入——注入器层级与注入上下文</title><link>http://localhost:4321/posts/angular/angular-18-di/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-18-di/</guid><description>本文讲解 Angular 依赖注入：注入器层级树、providers 注册方式、inject() 与构造器注入对比、注入上下文与 InjectionToken。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>系列</category></item><item><title>Angular 22+ 教程 19：DI 进阶——provide / inject / @Service / injectAsync</title><link>http://localhost:4321/posts/angular/angular-19-di-advanced/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-19-di-advanced/</guid><description>本文深入 Angular DI：@Service() 装饰器详解、provideApp 聚合、多 provider 与 factory provider、injectAsync 懒加载与树摇优化。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>系列</category></item><item><title>Angular 22+ 教程 20：Change Detection、OnPush 默认与 Zoneless</title><link>http://localhost:4321/posts/angular/angular-20-change-detection/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-20-change-detection/</guid><description>本文梳理 Angular 变更检测演进：从 zone.js 全量检查到信号驱动，v22 OnPush 默认的影响、Eager 回退与 Zoneless 心智模型。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>系列</category></item><item><title>Angular 22+ 教程 21：Signals——响应式编程新范式</title><link>http://localhost:4321/posts/angular/angular-21-signals/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-21-signals/</guid><description>讲解 signal、computed、effect 等核心 API，剖析信号如何驱动 Zoneless 变更检测。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>系列</category></item><item><title>Angular 22+ 教程 22：Signals 与 RxJS 的共存之道</title><link>http://localhost:4321/posts/angular/angular-22-signals-rxjs/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-22-signals-rxjs/</guid><description>状态归信号、事件流归 RxJS：toSignal、toObservable 与选型决策。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>系列</category></item><item><title>Angular 22+ 教程 02：Angular 与 React / Vue / ASP.NET Core 的比较</title><link>http://localhost:4321/posts/angular/angular-02-comparison/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-02-comparison/</guid><description>从心智模型、模板语法、响应式机制、生态整合、学习曲线与企业支持六个维度对比 Angular 与 React、Vue、ASP.NET Core，并给出务实的选型建议。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>系列</category></item><item><title>Angular 22+ 教程 23：HttpClient（Fetch 默认）与 resource / httpResource</title><link>http://localhost:4321/posts/angular/angular-23-httpclient/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-23-httpclient/</guid><description>Fetch 默认的 HttpClient，加上 resource、httpResource 与 chain 的稳定用法。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>系列</category></item><item><title>Angular 22+ 教程 24：路由原理篇</title><link>http://localhost:4321/posts/angular/angular-24-routing/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-24-routing/</guid><description>路由配置与匹配、懒加载、canMatch 守卫、输入绑定与预加载策略。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>系列</category></item><item><title>Angular 22+ 教程 25：Signal Forms——v22 起稳定的表单方案</title><link>http://localhost:4321/posts/angular/angular-25-reactive-forms/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-25-reactive-forms/</guid><description>v22 稳定：form 与 model、formField 绑定、异步验证、自定义控件与迁移建议。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>系列</category></item><item><title>Angular 22+ 教程 26：Animation 动画</title><link>http://localhost:4321/posts/angular/angular-26-animation/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-26-animation/</guid><description>trigger、transition 动画体系，:enter/:leave 用法，与 CSS/WAAPI 的取舍。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>系列</category></item><item><title>Angular 22+ 教程 27：内存泄漏、unsubscribe 与 takeUntilDestroyed</title><link>http://localhost:4321/posts/angular/angular-27-memory-leak/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-27-memory-leak/</guid><description>订阅、定时器、事件监听等泄漏场景，takeUntilDestroyed 与 effect 清理详解。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>系列</category></item><item><title>Angular 22+ 教程 28：NgModule 到 Standalone 的演进</title><link>http://localhost:4321/posts/angular/angular-28-ngmodule-standalone/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-28-ngmodule-standalone/</guid><description>NgModule 的历史与痛点，standalone 默认化过程与迁移策略。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>系列</category></item><item><title>Angular 22+ 教程 30：EventManagerPlugin 与手势事件</title><link>http://localhost:4321/posts/angular/angular-30-event-manager/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-30-event-manager/</guid><description>剖析 Angular 事件系统底层：EventManager 与插件机制，实现 long-press 手势插件，对比 zone.js 与 zoneless。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>系列</category></item><item><title>Angular 22+ 教程 31：编码风格指南与命名约定</title><link>http://localhost:4321/posts/angular/angular-31-coding-style/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-31-coding-style/</guid><description>基于 v20 重写后的官方 style guide：文件与类命名、目录结构、prefer signals 与 inject 的现代风格。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>系列</category></item><item><title>Angular 22+ 教程 32：工程化三件套——Prettier / ESLint / Stylelint</title><link>http://localhost:4321/posts/angular/angular-32-lint-format/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-32-lint-format/</guid><description>angular-eslint flat config、Prettier 统一格式、Stylelint 管住 scss，再配 husky 与 lint-staged 卡住提交。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>系列</category></item><item><title>Angular 22+ 教程 33：v14 到 v22 的重大改变盘点</title><link>http://localhost:4321/posts/angular/angular-33-version-changes/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-33-version-changes/</guid><description>一张时间线看懂 v14 到 v22：standalone、新控制流、Signals、zoneless、Signal Forms 的演进全景与迁移工具。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>系列</category></item><item><title>Angular 22+ 教程 34：框架的局限与边界</title><link>http://localhost:4321/posts/angular/angular-34-limitations/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-34-limitations/</guid><description>理性审视 Angular：包体积、学习曲线、动态模板、SSR 边界、移动生态位，以及何时不应选择它。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>系列</category></item><item><title>Angular Material 22+ 教程 38：Form Field 表单容器</title><link>http://localhost:4321/posts/angular/angular-38-material-form-field/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-38-material-form-field/</guid><description>mat-form-field 的结构与 appearance、hint 与 error 展示、与 Signal Forms 的 formField 配合、自定义控件要点。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>Material</category><category>系列</category></item><item><title>Angular Material 22+ 教程 39：Icon 与 Tooltip</title><link>http://localhost:4321/posts/angular/angular-39-material-icon-tooltip/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-39-material-icon-tooltip/</guid><description>mat-icon 的字体与 SVG 双模式、图标注册与 CSP 安全，mat-tooltip 的定位延迟与无障碍及手势冲突处理。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>Material</category><category>系列</category></item><item><title>CDK 22+ 教程 40：Overlay——浮层的基石</title><link>http://localhost:4321/posts/angular/angular-40-cdk-overlay/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-40-cdk-overlay/</guid><description>剖析 Overlay 脱离 DOM 层级的核心价值，详解 PositionStrategy、ScrollStrategy 与 backdrop，实现 dropdown 与 dialog。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>CDK</category><category>系列</category></item><item><title>Angular 22+ 教程 29：构建自己的 Library</title><link>http://localhost:4321/posts/angular/angular-29-library/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-29-library/</guid><description>ng generate library、secondary entry、peerDependencies 与发布策略。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>系列</category></item><item><title>CDK 22+ 教程 41：Portal——内容投射</title><link>http://localhost:4321/posts/angular/angular-41-cdk-portal/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-41-cdk-portal/</guid><description>理解 PortalOutlet 与两类 Portal 的抽象，掌握 attach/detach 生命周期，用 Injector 携带数据投射动态内容。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>CDK</category><category>系列</category></item><item><title>CDK 22+ 教程 42：Drag and Drop 拖拽</title><link>http://localhost:4321/posts/angular/angular-42-cdk-drag-drop/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-42-cdk-drag-drop/</guid><description>从单列表排序到跨列表拖放，掌握 CDKDragDrop 事件、moveItemInArray 与 transferArrayItem，实战看板与自由拖拽。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>CDK</category><category>系列</category></item><item><title>CDK 22+ 教程 43：Scrolling 虚拟滚动</title><link>http://localhost:4321/posts/angular/angular-43-cdk-scrolling/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-43-cdk-scrolling/</guid><description>理解渲染窗口与缓冲区原理，掌握 cdk-virtual-scroll-viewport、itemSize 与 FixedSizeVirtualScrollStrategy 的用法。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>CDK</category><category>系列</category></item><item><title>CDK 22+ 教程 44：Table 与 DataSource</title><link>http://localhost:4321/posts/angular/angular-44-cdk-table/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-44-cdk-table/</guid><description>拆解 cdk-table 的列定义模板结构，实现自定义 DataSource 抽象类，集成排序、trackBy 与虚拟滚动。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>CDK</category><category>系列</category></item><item><title>Angular 22+ 教程 35：学以致用——综合实战</title><link>http://localhost:4321/posts/angular/angular-35-apply/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-35-apply/</guid><description>串联前 34 篇：用 v22 的路由、@Service、httpResource、Signal Forms 与 CDK 拖拽完整实现一个 CRUD 任务看板。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>系列</category></item><item><title>Angular Material 22+ 教程 36：Get Started 与主题体系</title><link>http://localhost:4321/posts/angular/angular-36-material-start/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-36-material-start/</guid><description>安装与使用 Material 22，理解 M3 主题体系：system tokens、mat.theme、预建主题、明暗切换、typography 与 density。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>Material</category><category>系列</category></item><item><title>Angular Material 22+ 教程 37：自定义主题 Material Design 3</title><link>http://localhost:4321/posts/angular/angular-37-material-theme-m3/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-37-material-theme-m3/</guid><description>深入 M3 定制：theme-overrides 覆盖 token、品牌色精修、组件级变量、双主题的 Sass 组织与作用域主题。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>Material</category><category>系列</category></item><item><title>CDK 22+ 教程 45：Accessibility——FocusTrap 与焦点管理</title><link>http://localhost:4321/posts/angular/angular-45-cdk-a11y-focus/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-45-cdk-a11y-focus/</guid><description>从 Web 无障碍基础出发，掌握 FocusMonitor、FocusTrap、LiveAnnouncer 与 @angular/aria，构建可访问对话框。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>CDK</category><category>系列</category></item><item><title>CDK 22+ 教程 46：ListKeyManager 键盘导航</title><link>http://localhost:4321/posts/angular/angular-46-cdk-list-key-manager/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-46-cdk-list-key-manager/</guid><description>用 ActiveDescendantKeyManager 与 aria-activedescendant 实现列表键盘导航，掌握 type-ahead 与跳过禁用项。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>CDK</category><category>系列</category></item><item><title>CDK 22+ 教程 47：Layout 断点与 Observers 观察者</title><link>http://localhost:4321/posts/angular/angular-47-cdk-layout-observers/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-47-cdk-layout-observers/</guid><description>BreakpointObserver 响应式断点与 toSignal 包装技巧，ObserveContent 监听 DOM 变化，划分 CSS 与 TS 的职责。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>CDK</category><category>系列</category></item><item><title>Angular 全家桶 48：大杂烩——杂项技巧与经验合集</title><link>http://localhost:4321/posts/angular/angular-48-misc/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-48-misc/</guid><description>内容投影 select 技巧、host 类、Angular Elements、DevTools 调试、AI 工具链与性能优化清单、报错速查。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>系列</category></item><item><title>Angular 全家桶 49：总结与进阶路线图</title><link>http://localhost:4321/posts/angular/angular-49-summary/</link><guid isPermaLink="true">http://localhost:4321/posts/angular/angular-49-summary/</guid><description>49 篇全系列知识地图与核心思想回顾，梳理 signals、zoneless、新控制流的演进主线与进阶方向。</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>Angular</category><category>系列</category></item><item><title>龙虾终归被吃了（OpenClaw 最终还是会渐渐消失）</title><link>http://localhost:4321/posts/2026-04-01_openclaw-eaten/</link><guid isPermaLink="true">http://localhost:4321/posts/2026-04-01_openclaw-eaten/</guid><description>开源世界的食物链里，没有谁真的不可替代——包括那只龙虾。</description><pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate><category>开源</category><category>随笔</category></item><item><title>Manim 入门：把数学画成动画的造物快乐</title><link>http://localhost:4321/posts/2026-03-05_manim-visualization-intro/</link><guid isPermaLink="true">http://localhost:4321/posts/2026-03-05_manim-visualization-intro/</guid><description>3Blue1Brown 用来讲线性代数的那个动画引擎，你也可以拥有。从安装到第一个作品，一篇讲完。</description><pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate><category>Python</category><category>可视化</category><category>Manim</category></item><item><title>K8s 真的适合小型公司吗</title><link>http://localhost:4321/posts/2025-08-08_k8s-for-small-companies/</link><guid isPermaLink="true">http://localhost:4321/posts/2025-08-08_k8s-for-small-companies/</guid><description>先回答问题：大多数小型公司，不需要。但&quot;需不需要&quot;和&quot;该不该学&quot;是两回事。</description><pubDate>Fri, 08 Aug 2025 00:00:00 GMT</pubDate><category>架构</category><category>K8s</category></item><item><title>HTTP 协议详解：读后心得</title><link>http://localhost:4321/posts/2025-05-09_http-protocol-notes/</link><guid isPermaLink="true">http://localhost:4321/posts/2025-05-09_http-protocol-notes/</guid><description>重读 HTTP 协议，最大的收获不是报文格式，而是理解了&quot;约束如何成就扩展&quot;。</description><pubDate>Fri, 09 May 2025 00:00:00 GMT</pubDate><category>网络</category><category>HTTP</category></item><item><title>开发工具 001：常用开发库知识体系详解</title><link>http://localhost:4321/posts/dev_tools/dev_tools-001-devlib-overview/</link><guid isPermaLink="true">http://localhost:4321/posts/dev_tools/dev_tools-001-devlib-overview/</guid><description>正确使用开源第三方工具包可以极大提升开发效率。本系列介绍 Apache Commons、Guava、Hutool、Lombok、MapStruct、日志与 JSON 库等运用极为广泛的工具库。</description><pubDate>Tue, 31 Dec 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>常用开发库</category></item><item><title>网络协议 012：工具：netstat查看服务及监听端口详解</title><link>http://localhost:4321/posts/network/network-012-netstat/</link><guid isPermaLink="true">http://localhost:4321/posts/network/network-012-netstat/</guid><description>在Linux使用过程中，需要了解当前系统开放了哪些端口，并且要查看开放这些端口的具体进程和用户，可以通过netstat命令进行简单查询.</description><pubDate>Mon, 30 Dec 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>网络协议</category></item><item><title>网络协议 011：工具：网络抓包神器 tcpdump 使用详解</title><link>http://localhost:4321/posts/network/network-011-tcpdump/</link><guid isPermaLink="true">http://localhost:4321/posts/network/network-011-tcpdump/</guid><pubDate>Sun, 29 Dec 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>网络协议</category></item><item><title>网络协议 010：工具：Wireshark介绍及抓包分析</title><link>http://localhost:4321/posts/network/network-010-wireshark/</link><guid isPermaLink="true">http://localhost:4321/posts/network/network-010-wireshark/</guid><description>Wireshark（前称Ethereal）是一个网络封包分析软件.网络管理员使用Wireshark来检测网络问题，网络安全工程师使用Wireshark来检查资讯安全相关问题，开发者使用Wireshark来为新的通讯协定除错，普通使用者使用Wireshark来学习网络协定的相关知识</description><pubDate>Sat, 28 Dec 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>网络协议</category></item><item><title>网络协议 009：知识点串联：输入URL 到页面加载过程详解</title><link>http://localhost:4321/posts/network/network-009-url-to-page/</link><guid isPermaLink="true">http://localhost:4321/posts/network/network-009-url-to-page/</guid><description>本文主要两个目的:第一，将前面涉及网络协议特别是 TCP协议 和 HTTP协议 ， DNS解析 等等知识点贯穿；第二，在此基础上介绍 浏览器渲染过程 ，以及为 Web优化 提供基础</description><pubDate>Fri, 27 Dec 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>网络协议</category></item><item><title>网络协议 008：DNS 相关详解</title><link>http://localhost:4321/posts/network/network-008-dns/</link><guid isPermaLink="true">http://localhost:4321/posts/network/network-008-dns/</guid><description>DNS的核心工作就是将域名翻译成计算机IP地址, 它是基于UDP协议实现的，本文将具体阐述DNS相关的概念，解析，调度原理（负载均衡和区域调度）等DNS相关的所有知识点www.sina.com</description><pubDate>Thu, 26 Dec 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>网络协议</category></item><item><title>网络协议 007：HTTP 协议详解</title><link>http://localhost:4321/posts/network/network-007-http/</link><guid isPermaLink="true">http://localhost:4321/posts/network/network-007-http/</guid><pubDate>Wed, 25 Dec 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>网络协议</category></item><item><title>网络协议 006：UDP 协议详解</title><link>http://localhost:4321/posts/network/network-006-udp/</link><guid isPermaLink="true">http://localhost:4321/posts/network/network-006-udp/</guid><description>基于TCP和UDP的协议非常广泛，所以也有必要对UDP协议进行详解</description><pubDate>Tue, 24 Dec 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>网络协议</category></item><item><title>网络协议 005：TCP 协议详解</title><link>http://localhost:4321/posts/network/network-005-tcp/</link><guid isPermaLink="true">http://localhost:4321/posts/network/network-005-tcp/</guid><description>TCP是一个巨复杂的协议，关于TCP这个协议的细节，我还是推荐你去看W.Richard Stevens的《TCP/IP 详解 卷1：协议》 。全网上讲TCP/IP的文章众多，多数是皮毛；本文梳理自 左耳朵耗子的文章《TCP 的那些事儿》 ，来帮助大家理解TCP/IP, 其中引用的图片在这里</description><pubDate>Mon, 23 Dec 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>网络协议</category></item><item><title>网络协议 004：网络基础(3)：IP相关协议详解</title><link>http://localhost:4321/posts/network/network-004-ip-protocols/</link><guid isPermaLink="true">http://localhost:4321/posts/network/network-004-ip-protocols/</guid><description>本文是网络基础第三篇，主要阐述：IP协议 （在网络层）及其配套协议（在数据链路层的 ARP协议 ，在网络层的 ICMP，IGMP协议 ）等IPV6详解网络地址转换 NAT等</description><pubDate>Sun, 22 Dec 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>网络协议</category></item><item><title>网络协议 003：网络基础(2)：7层协议，4层，5层</title><link>http://localhost:4321/posts/network/network-003-osi-layers/</link><guid isPermaLink="true">http://localhost:4321/posts/network/network-003-osi-layers/</guid><description>本文是理解 网络基础的第二篇，我觉的一定要有全局框架观，构建全局观时建议分三步：第一步，理解全局的网络层次；第二步，理解每一层次中的常见的网络设备及功能；第三步，理解每一层中的常见协议。在此基础上，将其它知识点放置在相应的层次（很多网络上的零散知识点是没法帮你构筑完整的知识体系的，推荐你完整的看一本</description><pubDate>Sat, 21 Dec 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>网络协议</category></item><item><title>网络协议 002：网络基础(1)：计算机网络基础部分梳理</title><link>http://localhost:4321/posts/network/network-002-network-basics/</link><guid isPermaLink="true">http://localhost:4321/posts/network/network-002-network-basics/</guid><description>思考再三，决定在网络系列增加网络基础的章节, 因为它对网络部分的知识体系构建有很大的帮助。网络基础分三部分内容，本文是第一部分主要来源于大学的课程《计算机网络(第五版)》知识点梳理，内容整理自这里 , 但是作了调整和优化; 不得不说这本书作者谢希忍画的PPT还是挺棒的</description><pubDate>Fri, 20 Dec 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>网络协议</category></item><item><title>网络协议 001：网络协议和工具知识体系详解</title><link>http://localhost:4321/posts/network/network-001-overview/</link><guid isPermaLink="true">http://localhost:4321/posts/network/network-001-overview/</guid><description>网络基础尤其是网络协议（TCP/IP 协议栈为主）在网络开发中极为重要，本系列带你五步梳理网络基础和协议相关的知识体系。</description><pubDate>Thu, 19 Dec 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>网络协议</category></item><item><title>开源合规 009：能力成熟度模型集成认证 - CMMI</title><link>http://localhost:4321/posts/compliance/compliance-009-cmmi/</link><guid isPermaLink="true">http://localhost:4321/posts/compliance/compliance-009-cmmi/</guid><pubDate>Wed, 18 Dec 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>企业认证</category></item><item><title>开源合规 008：信息安全管理认证 - ISO27001</title><link>http://localhost:4321/posts/compliance/compliance-008-iso27001/</link><guid isPermaLink="true">http://localhost:4321/posts/compliance/compliance-008-iso27001/</guid><description>信息安全管理认证 - ISO27001详解</description><pubDate>Tue, 17 Dec 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>企业认证</category></item><item><title>开源合规 007：信息安全等级保护认证</title><link>http://localhost:4321/posts/compliance/compliance-007-classified-protection/</link><guid isPermaLink="true">http://localhost:4321/posts/compliance/compliance-007-classified-protection/</guid><description>随着国内对网络安全的逐步重视，以及《网络安全法》的出台， 在金融、电力、广电、医疗、教育等行业，主管单位明确要求从业机构的信息系统（APP）要开展等级保护工作。落实到企业，包含等级保护认证和每年的护网活动等</description><pubDate>Mon, 16 Dec 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>企业认证</category></item><item><title>开源合规 006：常见企业开发和系统认证</title><link>http://localhost:4321/posts/compliance/compliance-006-certification-overview/</link><guid isPermaLink="true">http://localhost:4321/posts/compliance/compliance-006-certification-overview/</guid><pubDate>Sun, 15 Dec 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>企业认证</category></item><item><title>开源合规 005：知识共享许可协议文本</title><link>http://localhost:4321/posts/compliance/compliance-005-cc-license/</link><guid isPermaLink="true">http://localhost:4321/posts/compliance/compliance-005-cc-license/</guid><description>本文主要介绍知识共享许可协议，及本站遵守的多数站点会采用的知识共享协议CC BY-NC-SA 4.0协议，即署名-非商业性使用-相同方式共享协议</description><pubDate>Sat, 14 Dec 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>开源协议</category></item><item><title>开源合规 004：国产开源：木兰许可协议系列</title><link>http://localhost:4321/posts/compliance/compliance-004-mulan-license/</link><guid isPermaLink="true">http://localhost:4321/posts/compliance/compliance-004-mulan-license/</guid><description>伴随着国际形势的变迁，越来越多组织申明将遵循美国出口管制法律的约束，并且蔓延到了开源领域；关于国内开源生态如何自立，做到在逼不得已无法与国际接轨的情况下能够健康发展的措施也被提上议程，木兰系列许可证系列由此诞生。木兰系列许可证系列（包含“木兰宽松许可证”和“木兰公共许可证”等），均由北京大学作为牵头</description><pubDate>Fri, 13 Dec 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>开源协议</category></item><item><title>开源合规 003：AGPL v3 开源协议（慎用）</title><link>http://localhost:4321/posts/compliance/compliance-003-agpl-v3/</link><guid isPermaLink="true">http://localhost:4321/posts/compliance/compliance-003-agpl-v3/</guid><pubDate>Thu, 12 Dec 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>开源协议</category></item><item><title>开源合规 002：常见软件开源协议详解</title><link>http://localhost:4321/posts/compliance/compliance-002-licenses-compare/</link><guid isPermaLink="true">http://localhost:4321/posts/compliance/compliance-002-licenses-compare/</guid><description>开源不等于免费！为了加速我们的开发，我们会使用开源的软件和源码； 为避免商业风险，需要在使用时了解第三方如软件协议，版本，和已知CVE风险等；本文旨在从开源软件再发布过程使用权限的角度入手，总结各个常见开源协议的异同，方便理解</description><pubDate>Wed, 11 Dec 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>开源协议</category></item><item><title>开源合规 001：开源协议知识体系详解</title><link>http://localhost:4321/posts/compliance/compliance-001-overview/</link><guid isPermaLink="true">http://localhost:4321/posts/compliance/compliance-001-overview/</guid><description>开源不等于免费。本系列梳理常见开源协议（GPL/AGPL/木兰/CC 等）的权限差异，以及企业常见的认证体系（等保、ISO27001、CMMI）。</description><pubDate>Tue, 10 Dec 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>开源协议</category></item><item><title>软件工程 020：Twitter Java Style Guide</title><link>http://localhost:4321/posts/engineering/engineering-020-twitter-java-style/</link><guid isPermaLink="true">http://localhost:4321/posts/engineering/engineering-020-twitter-java-style/</guid><pubDate>Mon, 09 Dec 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>代码规范</category></item><item><title>软件工程 019：Google Java 编程风格指南</title><link>http://localhost:4321/posts/engineering/engineering-019-google-java-style/</link><guid isPermaLink="true">http://localhost:4321/posts/engineering/engineering-019-google-java-style/</guid><description>Google 出品的 《Google Java Code Style 》，由fantasticmao 翻译，对应github仓库</description><pubDate>Sun, 08 Dec 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>代码规范</category></item><item><title>软件工程 018：阿里巴巴 Java 开发手册</title><link>http://localhost:4321/posts/engineering/engineering-018-alibaba-java-guide/</link><guid isPermaLink="true">http://localhost:4321/posts/engineering/engineering-018-alibaba-java-guide/</guid><description>看过很多公司的代码规范，阿里的最完善。本文来源 https://github.com/mysterin/alibaba-java-specification , 是1.2的markdown版本，基于这个版本添加了1.3中更新的安全规范， 后续将继续跟进完善</description><pubDate>Sat, 07 Dec 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>代码规范</category></item><item><title>软件工程 017：常见企业级代码规范</title><link>http://localhost:4321/posts/engineering/engineering-017-code-standards-overview/</link><guid isPermaLink="true">http://localhost:4321/posts/engineering/engineering-017-code-standards-overview/</guid><pubDate>Fri, 06 Dec 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>代码规范</category></item><item><title>软件工程 016：精益企业：集成精益、敏捷、DevOps 等</title><link>http://localhost:4321/posts/engineering/engineering-016-lean-enterprise/</link><guid isPermaLink="true">http://localhost:4321/posts/engineering/engineering-016-lean-enterprise/</guid><description>Lean Enterprise （精益企业）是指一个产品系列价值流的不同部门同心协力消除浪费，并且按照顾客要求，来拉动生产。本文主要基于Scaled Agile, Inc. (SAI)公司的SAFe的框架（SAFe for Lean Enterprises）向你介绍精益企业的7个核心，并站在更高的视</description><pubDate>Thu, 05 Dec 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>敏捷</category></item><item><title>软件工程 015：开发实践：领域驱动开发(DDD)</title><link>http://localhost:4321/posts/engineering/engineering-015-ddd/</link><guid isPermaLink="true">http://localhost:4321/posts/engineering/engineering-015-ddd/</guid><pubDate>Wed, 04 Dec 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>敏捷</category></item><item><title>软件工程 014：开发实践：测试驱动开发(TDD)</title><link>http://localhost:4321/posts/engineering/engineering-014-tdd/</link><guid isPermaLink="true">http://localhost:4321/posts/engineering/engineering-014-tdd/</guid><description>测试驱动开发(Test Driven Development, 简称TDD)是敏捷开发中的一项核心实践和技术，也是一种设计方法论。TDD的原理是在开发功能代码之前，先编写单元测试用例代码，测试代码确定需要编写什么产品代码。TDD的基本思路就是通过测试来推动整个开发的进行，但测试驱动开发并不只是单纯的</description><pubDate>Tue, 03 Dec 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>敏捷</category></item><item><title>软件工程 013：面向工程管理：极限编程（XP）</title><link>http://localhost:4321/posts/engineering/engineering-013-xp/</link><guid isPermaLink="true">http://localhost:4321/posts/engineering/engineering-013-xp/</guid><description>极限编程（ExtremeProgramming，简称XP）是由KentBeck在1996年提出的，是一种软件工程方法学，是敏捷软件开发中可能是最富有成效的几种方法学之一。XP是一种近螺旋式的开发方法，它将复杂的开发过程分解为一个个相对比较简单的小周期；通过积极的交流、反馈以及其它一系列的方法，开发人</description><pubDate>Mon, 02 Dec 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>敏捷</category></item><item><title>软件工程 012：面向过程管理：Kanban方式</title><link>http://localhost:4321/posts/engineering/engineering-012-kanban/</link><guid isPermaLink="true">http://localhost:4321/posts/engineering/engineering-012-kanban/</guid><description>看板本身源于日本丰田公司对精益制造的实践，后延伸到敏捷开发领域；它的核心是JIT（Just In Tme）: “让正确的物资，在正确的时间，流动到正确的地方，数量是刚刚好的数量” 本文主要介绍看板的定义，核心实践以及在研发领域的实践等</description><pubDate>Sun, 01 Dec 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>敏捷</category></item><item><title>软件工程 011：面向过程管理：Scrum方式</title><link>http://localhost:4321/posts/engineering/engineering-011-scrum/</link><guid isPermaLink="true">http://localhost:4321/posts/engineering/engineering-011-scrum/</guid><pubDate>Sat, 30 Nov 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>敏捷</category></item><item><title>软件工程 010：敏捷软件开发理论及流程</title><link>http://localhost:4321/posts/engineering/engineering-010-agile-overview/</link><guid isPermaLink="true">http://localhost:4321/posts/engineering/engineering-010-agile-overview/</guid><pubDate>Fri, 29 Nov 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>敏捷</category></item><item><title>软件工程 009：典型的中小团队开发流程详解</title><link>http://localhost:4321/posts/engineering/engineering-009-small-team-process/</link><guid isPermaLink="true">http://localhost:4321/posts/engineering/engineering-009-small-team-process/</guid><description>一直想总结一个比较完善的开发流程，但是各个公司的规模，文化和开发方式有很大的差异；后期会加入其它公司的研发流程</description><pubDate>Thu, 28 Nov 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>开发模型</category></item><item><title>软件工程 008：传统模式：结合软件测试的过程模型演化:V模型,W模型,X</title><link>http://localhost:4321/posts/engineering/engineering-008-test-process-models/</link><guid isPermaLink="true">http://localhost:4321/posts/engineering/engineering-008-test-process-models/</guid><description>模型等对于前文软件开发生命周期的实现，为保障软件质量，将测试工作凸显出来（通过前文介绍的线性（linear）、迭代（iterative）、演进（evolutionary）和平行（parallel）等方式），结合测试又演化出了针对测试的过程模型，主要有V模型,W模型,X模型,H模型等</description><pubDate>Wed, 27 Nov 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>开发模型</category></item><item><title>软件工程 007：传统模式：软件开发生命周期与过程模型(瀑布模型，原型</title><link>http://localhost:4321/posts/engineering/engineering-007-sdlc-models/</link><guid isPermaLink="true">http://localhost:4321/posts/engineering/engineering-007-sdlc-models/</guid><pubDate>Tue, 26 Nov 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>开发模型</category></item><item><title>软件工程 006：软件开发模式知识体系详解</title><link>http://localhost:4321/posts/engineering/engineering-006-dev-model-overview/</link><guid isPermaLink="true">http://localhost:4321/posts/engineering/engineering-006-dev-model-overview/</guid><pubDate>Mon, 25 Nov 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>开发模型</category></item><item><title>软件工程 005：微服务：康威定律</title><link>http://localhost:4321/posts/engineering/engineering-005-conways-law/</link><guid isPermaLink="true">http://localhost:4321/posts/engineering/engineering-005-conways-law/</guid><description>微服务这个概念很早就提出了， 真正火起来是在2016年左右，而康威定律(Conway&apos;s Law)就是微服务理论基础。本文整理自肥侠的文章, 帮助大家理解微服务理论体系</description><pubDate>Sun, 24 Nov 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>开发理论</category></item><item><title>软件工程 004：分布式理论 - BASE</title><link>http://localhost:4321/posts/engineering/engineering-004-base/</link><guid isPermaLink="true">http://localhost:4321/posts/engineering/engineering-004-base/</guid><description>BASE是“Basically Available, Soft state, Eventually consistent(基本可用、软状态、最终一致性)”的首字母缩写。其中的软状态和最终一致性这两种技巧擅于对付存在分区的场合，并因此提高了可用性</description><pubDate>Sat, 23 Nov 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>开发理论</category></item><item><title>软件工程 003：分布式理论 - CAP</title><link>http://localhost:4321/posts/engineering/engineering-003-cap/</link><guid isPermaLink="true">http://localhost:4321/posts/engineering/engineering-003-cap/</guid><description>CAP理论是分布式系统、特别是分布式存储领域中被讨论的最多的理论。其中C代表一致性 (Consistency)，A代表可用性 (Availability)，P代表分区容错性 (Partition tolerance)。CAP理论告诉我们C、A、P三者不能同时满足，最多只能满足其中两个</description><pubDate>Fri, 22 Nov 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>开发理论</category></item><item><title>软件工程 002：事务理论 - ACID</title><link>http://localhost:4321/posts/engineering/engineering-002-acid/</link><guid isPermaLink="true">http://localhost:4321/posts/engineering/engineering-002-acid/</guid><pubDate>Thu, 21 Nov 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>开发理论</category></item><item><title>软件工程 001：常见开发理论</title><link>http://localhost:4321/posts/engineering/engineering-001-theory-overview/</link><guid isPermaLink="true">http://localhost:4321/posts/engineering/engineering-001-theory-overview/</guid><description>软件开发中的经典理论与原则总览：SOLID、ACID、CAP、BASE 与康威定律，后续各篇逐一展开。</description><pubDate>Wed, 20 Nov 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>开发理论</category></item><item><title>设计模式 026：访问者(Visitor)</title><link>http://localhost:4321/posts/design_patterns/design_patterns-026-visitor/</link><guid isPermaLink="true">http://localhost:4321/posts/design_patterns/design_patterns-026-visitor/</guid><description>访问者模式(visitor pattern): 当你想要为一个对象的组合增加新的能力, 且封装并不重要时, 就使用访问者模式</description><pubDate>Tue, 19 Nov 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>设计模式</category></item><item><title>设计模式 025：模板方法(Template Method)</title><link>http://localhost:4321/posts/design_patterns/design_patterns-025-template-method/</link><guid isPermaLink="true">http://localhost:4321/posts/design_patterns/design_patterns-025-template-method/</guid><description>模板方法模式(Template pattern): 在一个方法中定义一个算法的骨架, 而将一些步骤延迟到子类中.模板方法使得子类可以在不改变算法结构的情况下, 重新定义算法中的某些步骤</description><pubDate>Mon, 18 Nov 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>设计模式</category></item><item><title>设计模式 024：策略(Strategy)</title><link>http://localhost:4321/posts/design_patterns/design_patterns-024-strategy/</link><guid isPermaLink="true">http://localhost:4321/posts/design_patterns/design_patterns-024-strategy/</guid><description>策略模式(strategy pattern): 定义了算法族, 分别封闭起来, 让它们之间可以互相替换, 此模式让算法的变化独立于使用算法的客户</description><pubDate>Sun, 17 Nov 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>设计模式</category></item><item><title>设计模式 023：状态(State)</title><link>http://localhost:4321/posts/design_patterns/design_patterns-023-state/</link><guid isPermaLink="true">http://localhost:4321/posts/design_patterns/design_patterns-023-state/</guid><pubDate>Sat, 16 Nov 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>设计模式</category></item><item><title>设计模式 022：观察者(Observer)</title><link>http://localhost:4321/posts/design_patterns/design_patterns-022-observer/</link><guid isPermaLink="true">http://localhost:4321/posts/design_patterns/design_patterns-022-observer/</guid><description>观察者模式(observer pattern): 在对象之间定义一对多的依赖, 这样一来, 当一个对象改变状态, 依赖它的对象都会收到通知, 并自动更新</description><pubDate>Fri, 15 Nov 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>设计模式</category></item><item><title>设计模式 021：备忘录(Memento)</title><link>http://localhost:4321/posts/design_patterns/design_patterns-021-memento/</link><guid isPermaLink="true">http://localhost:4321/posts/design_patterns/design_patterns-021-memento/</guid><description>备忘录模式(Memento pattern): 当你需要让对象返回之前的状态时(例如, 你的用户请求&apos;撤销&apos;), 你使用备忘录模式</description><pubDate>Thu, 14 Nov 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>设计模式</category></item><item><title>设计模式 020：中介者(Mediator)</title><link>http://localhost:4321/posts/design_patterns/design_patterns-020-mediator/</link><guid isPermaLink="true">http://localhost:4321/posts/design_patterns/design_patterns-020-mediator/</guid><pubDate>Wed, 13 Nov 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>设计模式</category></item><item><title>设计模式 019：迭代器(Iterator)</title><link>http://localhost:4321/posts/design_patterns/design_patterns-019-iterator/</link><guid isPermaLink="true">http://localhost:4321/posts/design_patterns/design_patterns-019-iterator/</guid><description>迭代器模式(iterator pattern): 提供一种方法顺序访问一个聚合对象中的各个元素, 而又不暴露其内部的表示</description><pubDate>Tue, 12 Nov 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>设计模式</category></item><item><title>设计模式 018：解释器(Interpreter)</title><link>http://localhost:4321/posts/design_patterns/design_patterns-018-interpreter/</link><guid isPermaLink="true">http://localhost:4321/posts/design_patterns/design_patterns-018-interpreter/</guid><description>解释器模式(Interpreter pattern): 使用解释器模式为语言创建解释器，通常由语言的语法和语法分析来定义</description><pubDate>Mon, 11 Nov 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>设计模式</category></item><item><title>设计模式 017：命令模式(Command)</title><link>http://localhost:4321/posts/design_patterns/design_patterns-017-command/</link><guid isPermaLink="true">http://localhost:4321/posts/design_patterns/design_patterns-017-command/</guid><description>命令模式(Command pattern): 将&apos;请求&apos;封闭成对象, 以便使用不同的请求,队列或者日志来参数化其他对象. 命令模式也支持可撤销的操作</description><pubDate>Sun, 10 Nov 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>设计模式</category></item><item><title>设计模式 016：责任链(Chain Of Responsibility)</title><link>http://localhost:4321/posts/design_patterns/design_patterns-016-chain-of-responsibility/</link><guid isPermaLink="true">http://localhost:4321/posts/design_patterns/design_patterns-016-chain-of-responsibility/</guid><description>责任链模式(Chain of responsibility pattern): 通过责任链模式, 你可以为某个请求创建一个对象链. 每个对象依序检查此请求并对其进行处理或者将它传给链中的下一个对象</description><pubDate>Sat, 09 Nov 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>设计模式</category></item><item><title>设计模式 015：代理(Proxy)</title><link>http://localhost:4321/posts/design_patterns/design_patterns-015-proxy/</link><guid isPermaLink="true">http://localhost:4321/posts/design_patterns/design_patterns-015-proxy/</guid><description>代理模式(Proxy pattern): 为另一个对象提供一个替身或占位符以控制对这个对象的访问</description><pubDate>Fri, 08 Nov 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>设计模式</category></item><item><title>设计模式 014：享元(Flyweight)</title><link>http://localhost:4321/posts/design_patterns/design_patterns-014-flyweight/</link><guid isPermaLink="true">http://localhost:4321/posts/design_patterns/design_patterns-014-flyweight/</guid><description>享元模式利用共享的方式来支持大量细粒度的对象，它让某个类的一个实例能用来提供许多&apos;虚拟实例&apos;。</description><pubDate>Thu, 07 Nov 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>设计模式</category></item><item><title>设计模式 013：外观(Facade)</title><link>http://localhost:4321/posts/design_patterns/design_patterns-013-facade/</link><guid isPermaLink="true">http://localhost:4321/posts/design_patterns/design_patterns-013-facade/</guid><description>外观模式提供了一个统一的接口，用来访问子系统中的一群接口，从而让子系统更容易使用。</description><pubDate>Wed, 06 Nov 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>设计模式</category></item><item><title>设计模式 012：装饰(Decorator)</title><link>http://localhost:4321/posts/design_patterns/design_patterns-012-decorator/</link><guid isPermaLink="true">http://localhost:4321/posts/design_patterns/design_patterns-012-decorator/</guid><description>装饰者模式动态地将责任附加到对象上。若要扩展功能，装饰者提供了比继承更有弹性的替代方案。</description><pubDate>Tue, 05 Nov 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>设计模式</category></item><item><title>设计模式 011：组合(Composite)</title><link>http://localhost:4321/posts/design_patterns/design_patterns-011-composite/</link><guid isPermaLink="true">http://localhost:4321/posts/design_patterns/design_patterns-011-composite/</guid><description>组合模式允许你将对象组合成树形结构来表现&apos;整体/部分&apos;层次结构，组合能让客户以一致的方式处理个别对象以及对象组合。</description><pubDate>Mon, 04 Nov 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>设计模式</category></item><item><title>设计模式 010：桥接(Bridge)</title><link>http://localhost:4321/posts/design_patterns/design_patterns-010-bridge/</link><guid isPermaLink="true">http://localhost:4321/posts/design_patterns/design_patterns-010-bridge/</guid><description>桥接模式通过将实现和抽象放在两个不同的类层次中，而使它们可以独立改变。</description><pubDate>Sun, 03 Nov 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>设计模式</category></item><item><title>设计模式 009：适配器(Adapter)</title><link>http://localhost:4321/posts/design_patterns/design_patterns-009-adapter/</link><guid isPermaLink="true">http://localhost:4321/posts/design_patterns/design_patterns-009-adapter/</guid><description>适配器模式将一个类的接口转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。对象适配器使用组合，类适配器使用多重继承。</description><pubDate>Sat, 02 Nov 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>设计模式</category></item><item><title>设计模式 008：单例模式(Singleton)</title><link>http://localhost:4321/posts/design_patterns/design_patterns-008-singleton/</link><guid isPermaLink="true">http://localhost:4321/posts/design_patterns/design_patterns-008-singleton/</guid><description>单例模式确保一个类只有一个实例，并提供该实例的全局访问点。本文介绍 6 种常用实现方式及其线程安全分析。</description><pubDate>Fri, 01 Nov 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>设计模式</category></item><item><title>设计模式 007：原型模式(Prototype)</title><link>http://localhost:4321/posts/design_patterns/design_patterns-007-prototype/</link><guid isPermaLink="true">http://localhost:4321/posts/design_patterns/design_patterns-007-prototype/</guid><description>原型模式使用原型实例指定要创建对象的类型，通过复制这个原型来创建新对象。</description><pubDate>Thu, 31 Oct 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>设计模式</category></item><item><title>设计模式 006：生成器(Builder)</title><link>http://localhost:4321/posts/design_patterns/design_patterns-006-builder/</link><guid isPermaLink="true">http://localhost:4321/posts/design_patterns/design_patterns-006-builder/</guid><description>生成器封装一个对象的构造过程，并允许按步骤构造。</description><pubDate>Wed, 30 Oct 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>设计模式</category></item><item><title>设计模式 005：抽象工厂(Abstract Factory)</title><link>http://localhost:4321/posts/design_patterns/design_patterns-005-abstract-factory/</link><guid isPermaLink="true">http://localhost:4321/posts/design_patterns/design_patterns-005-abstract-factory/</guid><description>抽象工厂模式创建的是对象家族，也就是很多对象而不是一个对象，并且这些对象是相关的，必须一起创建出来。而工厂方法模式只是用于创建一个对象，这和抽象工厂模式有很大不同。</description><pubDate>Tue, 29 Oct 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>设计模式</category></item><item><title>设计模式 004：工厂方法(Factory Method)</title><link>http://localhost:4321/posts/design_patterns/design_patterns-004-factory-method/</link><guid isPermaLink="true">http://localhost:4321/posts/design_patterns/design_patterns-004-factory-method/</guid><description>工厂方法定义了一个创建对象的接口，但由子类决定要实例化哪个类。工厂方法把实例化操作推迟到子类。</description><pubDate>Mon, 28 Oct 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>设计模式</category></item><item><title>设计模式 003：简单工厂(Simple Factory)</title><link>http://localhost:4321/posts/design_patterns/design_patterns-003-simple-factory/</link><guid isPermaLink="true">http://localhost:4321/posts/design_patterns/design_patterns-003-simple-factory/</guid><description>简单工厂把实例化的操作单独放到一个类中，让工厂类决定应该用哪个具体子类来实例化，从而把客户类和具体子类的实现解耦。</description><pubDate>Sun, 27 Oct 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>设计模式</category></item><item><title>设计模式 002：SOLID 设计原则</title><link>http://localhost:4321/posts/design_patterns/design_patterns-002-solid/</link><guid isPermaLink="true">http://localhost:4321/posts/design_patterns/design_patterns-002-solid/</guid><description>面向对象的基本原则 SOLID 五原则，加上迪米特法则与合成复用原则，是所有设计模式的灵魂。本文逐一阐述定义、分析与经典例子。</description><pubDate>Sat, 26 Oct 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>设计模式</category></item><item><title>设计模式 001：设计模式知识体系详解</title><link>http://localhost:4321/posts/design_patterns/design_patterns-001-overview/</link><guid isPermaLink="true">http://localhost:4321/posts/design_patterns/design_patterns-001-overview/</guid><description>在软件开发中，前人对软件系统的设计和开发总结了一些原则和模式，不管用什么语言做开发，都将对系统设计和开发提供指导意义。本文对 24 种设计模式和 7 个设计原则进行总结。</description><pubDate>Fri, 25 Oct 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>设计模式</category></item><item><title>算法 045：头脑风暴题目</title><link>http://localhost:4321/posts/algorithms/algorithms-045-brainstorm/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-045-brainstorm/</guid><description>通常大公司招人的的时候除了考察专业知识，算法之外，还会通过智力题来考察面试者的智力和潜力； 本章节主要收集常见的头脑风暴题</description><pubDate>Thu, 24 Oct 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>Java</category></item><item><title>算法 044：一些领域算法知识体系</title><link>http://localhost:4321/posts/algorithms/algorithms-044-domain-algorithms-overview/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-044-domain-algorithms-overview/</guid><pubDate>Wed, 23 Oct 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>Java</category></item><item><title>算法 043：大数据处理：Bitmap &amp; Bloom Filter</title><link>http://localhost:4321/posts/algorithms/algorithms-043-bitmap-bloom-filter/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-043-bitmap-bloom-filter/</guid><description>布隆过滤器有着广泛的应用，对于大量数据的“存不存在”的问题在空间上有明显优势，但是在判断存不存在是有一定的错误率(false positive)，也就是说，有可能把不属于这个集合的元素误认为属于这个集合(False Positive)，但不会把属于这个集合的元素误认为不属于这个集合(False Ne</description><pubDate>Tue, 22 Oct 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>大数据处理</category></item><item><title>算法 042：大数据处理：双层桶划分</title><link>http://localhost:4321/posts/algorithms/algorithms-042-bigdata-two-level-bucket/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-042-bigdata-two-level-bucket/</guid><pubDate>Mon, 21 Oct 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>大数据处理</category></item><item><title>算法 041：大数据处理：分治、Hash、排序</title><link>http://localhost:4321/posts/algorithms/algorithms-041-bigdata-hash-sort/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-041-bigdata-hash-sort/</guid><description>大数据处理思路: 分而治之/Hash映射 + Hash_map统计 + 堆/快速/归并排序</description><pubDate>Sun, 20 Oct 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>大数据处理</category></item><item><title>算法 040：大数据处理：Overview</title><link>http://localhost:4321/posts/algorithms/algorithms-040-bigdata-overview/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-040-bigdata-overview/</guid><pubDate>Sat, 19 Oct 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>大数据处理</category></item><item><title>算法 039：字符串匹配：文本预处理：后缀树（Suffix Tree）</title><link>http://localhost:4321/posts/algorithms/algorithms-039-suffix-tree/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-039-suffix-tree/</guid><description>上述字符串匹配算法(朴素的字符串匹配算法, KMP 算法, Boyer-Moore算法)均是通过对模式（Pattern）字符串进行预处理的方式来加快搜索速度。对 Pattern 进行预处理的最优复杂度为 O(m)，其中m 为 Pattern 字符串的长度。那么，有没有对文本（Text）进行预处理的算</description><pubDate>Fri, 18 Oct 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>字符串匹配</category></item><item><title>算法 038：字符串匹配：模式预处理：BM 算法 (Boyer-Moore)</title><link>http://localhost:4321/posts/algorithms/algorithms-038-boyer-moore/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-038-boyer-moore/</guid><pubDate>Thu, 17 Oct 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>字符串匹配</category></item><item><title>算法 037：字符串匹配：模式预处理：KMP 算法（Knuth-Morris-</title><link>http://localhost:4321/posts/algorithms/algorithms-037-kmp/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-037-kmp/</guid><description>Pratt）Knuth-Morris-Pratt算法（简称KMP）是最常用的字符串匹配算法之一</description><pubDate>Wed, 16 Oct 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>字符串匹配</category></item><item><title>算法 036：字符串匹配：模式预处理：朴素算法（Naive)(暴力破解)</title><link>http://localhost:4321/posts/algorithms/algorithms-036-naive-string-match/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-036-naive-string-match/</guid><description>朴素的字符串匹配算法又称为暴力匹配算法（Brute Force Algorithm），最为简单的字符串匹配算法</description><pubDate>Tue, 15 Oct 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>字符串匹配</category></item><item><title>算法 035：字符串匹配：Overview</title><link>http://localhost:4321/posts/algorithms/algorithms-035-string-matching-overview/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-035-string-matching-overview/</guid><pubDate>Mon, 14 Oct 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>字符串匹配</category></item><item><title>算法 034：算法思想：搜索算法</title><link>http://localhost:4321/posts/algorithms/algorithms-034-search-algorithms/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-034-search-algorithms/</guid><description>本文主要介绍算法中搜索算法的思想，主要包含BFS，DFS</description><pubDate>Sun, 13 Oct 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>算法思想</category></item><item><title>算法 033：算法思想：动态规划算法</title><link>http://localhost:4321/posts/algorithms/algorithms-033-dp/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-033-dp/</guid><description>动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中，可能会有许多可行解。每一个解都对应于一个值，我们希望找到具有最优值的解。动态规划算法与分治法类似，其基本思想也是将待求解问题分解成若干个子问题，先求解子问题，然后从这些子问题的解得到原问题的解。动态规划算法在算法思想中是极为重要的，需要重</description><pubDate>Sat, 12 Oct 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>算法思想</category></item><item><title>算法 032：算法思想：回溯算法</title><link>http://localhost:4321/posts/algorithms/algorithms-032-backtracking/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-032-backtracking/</guid><description>Backtracking(回溯)属于 DFS, 本文主要介绍算法中Backtracking算法的思想。回溯算法实际上一个类似枚举的搜索尝试过程，主要是在搜索尝试过程中寻找问题的解，当发现已不满足求解条件时就“回溯”返回，尝试别的路径。回溯法是一种选优搜索法，按选优条件向前搜索，以达到目标。但当探索到</description><pubDate>Fri, 11 Oct 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>算法思想</category></item><item><title>算法 031：算法思想：分治算法</title><link>http://localhost:4321/posts/algorithms/algorithms-031-divide-and-conquer/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-031-divide-and-conquer/</guid><description>分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题，这些子问题相互独立且与原问题性质相同。求出子问题的解，就可得到原问题的解</description><pubDate>Thu, 10 Oct 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>算法思想</category></item><item><title>算法 030：算法思想：贪心算法</title><link>http://localhost:4321/posts/algorithms/algorithms-030-greedy/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-030-greedy/</guid><description>本文主要介绍算法中贪心算法的思想: 保证每次操作都是局部最优的，并且最后得到的结果是全局最优的</description><pubDate>Wed, 09 Oct 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>算法思想</category></item><item><title>算法 029：算法思想：二分法</title><link>http://localhost:4321/posts/algorithms/algorithms-029-binary-search/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-029-binary-search/</guid><description>本文主要介绍算法思想中分治算法重要的二分法，比如二分查找；二分查找也称折半查找（BinarySearch），它是一种效率较高的查找方法。但是，折半查找要求线性表必须采用顺序存储结构，而且表中元素按关键字有序排列</description><pubDate>Tue, 08 Oct 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>算法思想</category></item><item><title>算法 028：算法思想知识体系详解</title><link>http://localhost:4321/posts/algorithms/algorithms-028-thinking-overview/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-028-thinking-overview/</guid><pubDate>Mon, 07 Oct 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>Java</category></item><item><title>算法 027：图：AOE &amp; 关键路径</title><link>http://localhost:4321/posts/algorithms/algorithms-027-aoe-critical-path/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-027-aoe-critical-path/</guid><description>关键路径在项目管理计算工期等方面有广泛等应用，提升工期就是所见缩减所有关键路径上的工期，并且在实现时需要应用到之前拓扑排序的算法(前提: 有向无环图，有依赖关系)</description><pubDate>Sun, 06 Oct 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>图</category></item><item><title>算法 026：图：最短路径(Dijkstra &amp; Floyd)</title><link>http://localhost:4321/posts/algorithms/algorithms-026-shortest-path/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-026-shortest-path/</guid><description>最短路径有着广泛的应用，比如地图两点间距离计算，公交查询系统，路由选择等</description><pubDate>Sat, 05 Oct 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>图</category></item><item><title>算法 025：图：最小生成树(Prim &amp; Kruskal)</title><link>http://localhost:4321/posts/algorithms/algorithms-025-mst/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-025-mst/</guid><description>Kruskal算法是从最小权重边着手，将森林里的树逐渐合并；prim算法是从顶点出发，在根结点的基础上建起一棵树</description><pubDate>Fri, 04 Oct 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>图</category></item><item><title>算法 024：图：拓扑排序(Topological sort)</title><link>http://localhost:4321/posts/algorithms/algorithms-024-topological-sort/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-024-topological-sort/</guid><description>拓扑排序主要用来解决有向图中的依赖解析(dependency resolution)问题</description><pubDate>Thu, 03 Oct 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>图</category></item><item><title>算法 023：图：遍历(BFS &amp; DFS)</title><link>http://localhost:4321/posts/algorithms/algorithms-023-bfs-dfs/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-023-bfs-dfs/</guid><description>图的深度优先搜索(Depth First Search)，和树的先序遍历比较类似; 广度优先搜索算法(Breadth FirstSearch)，又称为&apos;宽度优先搜索&apos;或&apos;横向优先搜索&apos;</description><pubDate>Wed, 02 Oct 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>图</category></item><item><title>算法 022：图：基础和Overview</title><link>http://localhost:4321/posts/algorithms/algorithms-022-graph-basics/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-022-graph-basics/</guid><description>图(Graph)是由顶点和连接顶点的边构成的离散结构。在计算机科学中，图是最灵活的数据结构之一，很多问题都可以使用图模型进行建模求解。例如: 生态环境中不同物种的相互竞争、人与人之间的社交与关系网络、化学上用图区分结构不同但分子式相同的同分异构体、分析计算机网络的拓扑结构确定两台计算机是否可以通信、</description><pubDate>Tue, 01 Oct 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>图</category></item><item><title>算法 021：树：前缀树(Trie Tree)</title><link>http://localhost:4321/posts/algorithms/algorithms-021-trie/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-021-trie/</guid><description>Trie，又称字典树、单词查找树或键树，是一种树形结构，是一种哈希树的变种。典型应用是用于统计，排序和保存大量的字符串（但不仅限于字符串），所以经常被搜索引擎系统用于文本词频统计。它的优点是：利用字符串的公共前缀来减少查询时间，最大限度地减少无谓的字符串比较，查询效率比哈希树高</description><pubDate>Mon, 30 Sep 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>树</category></item><item><title>算法 020：树：哈夫曼树(Huffman Tree)</title><link>http://localhost:4321/posts/algorithms/algorithms-020-huffman-tree/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-020-huffman-tree/</guid><description>哈夫曼又称最优二叉树, 是一种带权路径长度最短的二叉树。(注意带权路径WPL是指叶子节点，很多网上的文章有误导)</description><pubDate>Sun, 29 Sep 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>树</category></item><item><title>算法 019：树：红黑树(R-B Tree)</title><link>http://localhost:4321/posts/algorithms/algorithms-019-red-black-tree/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-019-red-black-tree/</guid><description>红黑树（Red Black Tree） 是一种自平衡二叉查找树，是在计算机科学中用到的一种数据结构，典型的用途是实现关联数组，是平衡二叉树和AVL树的折中</description><pubDate>Sat, 28 Sep 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>树</category></item><item><title>算法 018：树：平衡二叉树(AVL)</title><link>http://localhost:4321/posts/algorithms/algorithms-018-avl-tree/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-018-avl-tree/</guid><description>平衡二叉树（Balanced Binary Tree）具有以下性质：它是一棵空树或它的左右两个子树的高度差的绝对值不超过1，并且左右两个子树都是一棵平衡二叉树。平衡二叉树的常用实现方法有红黑树、AVL、替罪羊树、Treap、伸展树等。 最小二叉平衡树的节点的公式如下 F(n)=F(n-1)+F(n-</description><pubDate>Fri, 27 Sep 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>树</category></item><item><title>算法 017：树：二叉搜索树(BST)</title><link>http://localhost:4321/posts/algorithms/algorithms-017-bst/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-017-bst/</guid><description>本文主要介绍 二叉树中最基本的二叉查找树（Binary Search Tree）（又：二叉搜索树，二叉排序树）它或者是一棵空树，或者是具有下列性质的二叉树： 若它的左子树不空，则左子树上所有结点的值均小于它的根结点的值； 若它的右子树不空，则右子树上所有结点的值均大于它的根结点的值； 它的左、右子树</description><pubDate>Thu, 26 Sep 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>树</category></item><item><title>算法 016：树：基础和Overview</title><link>http://localhost:4321/posts/algorithms/algorithms-016-tree-basics/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-016-tree-basics/</guid><description>树在数据结构中至关重要，这里展示树的整体知识体系结构和几种常见树类型</description><pubDate>Wed, 25 Sep 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>树</category></item><item><title>算法 015：基数排序(Radix Sort)</title><link>http://localhost:4321/posts/algorithms/algorithms-015-radix-sort/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-015-radix-sort/</guid><description>基数排序(Radix Sort)是桶排序的扩展.</description><pubDate>Tue, 24 Sep 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>排序</category></item><item><title>算法 014：桶排序(Bucket Sort)</title><link>http://localhost:4321/posts/algorithms/algorithms-014-bucket-sort/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-014-bucket-sort/</guid><description>桶排序(Bucket Sort)的原理很简单，将数组分到有限数量的桶子里。每个桶子再个别排序（有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序）</description><pubDate>Mon, 23 Sep 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>排序</category></item><item><title>算法 013：堆排序(Heap Sort)</title><link>http://localhost:4321/posts/algorithms/algorithms-013-heap-sort/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-013-heap-sort/</guid><description>堆排序是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构，并同时满足堆积的性质：即子结点的键值或索引总是小于（或者大于）它的父节点</description><pubDate>Sun, 22 Sep 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>排序</category></item><item><title>算法 012：快速排序(Quick Sort)</title><link>http://localhost:4321/posts/algorithms/algorithms-012-quick-sort/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-012-quick-sort/</guid><description>快速排序(Quick Sort)使用分治法算法思想</description><pubDate>Sat, 21 Sep 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>排序</category></item><item><title>算法 011：归并排序(Merge Sort)</title><link>http://localhost:4321/posts/algorithms/algorithms-011-merge-sort/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-011-merge-sort/</guid><description>将两个的有序数列合并成一个有序数列，我们称之为&apos;归并&apos;。归并排序(Merge Sort)就是利用归并思想对数列进行排序</description><pubDate>Fri, 20 Sep 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>排序</category></item><item><title>算法 010：Shell排序(Shell Sort)</title><link>http://localhost:4321/posts/algorithms/algorithms-010-shell-sort/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-010-shell-sort/</guid><description>希尔排序(Shell Sort)是插入排序的一种，它是针对直接插入排序算法的改进</description><pubDate>Thu, 19 Sep 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>排序</category></item><item><title>算法 009：插入排序(Insertion Sort)</title><link>http://localhost:4321/posts/algorithms/algorithms-009-insertion-sort/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-009-insertion-sort/</guid><pubDate>Wed, 18 Sep 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>排序</category></item><item><title>算法 008：选择排序(Selection sort)</title><link>http://localhost:4321/posts/algorithms/algorithms-008-selection-sort/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-008-selection-sort/</guid><description>选择排序(Selection sort)是一种简单直观的排序算法</description><pubDate>Tue, 17 Sep 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>排序</category></item><item><title>算法 007：冒泡排序(Bubble Sort)</title><link>http://localhost:4321/posts/algorithms/algorithms-007-bubble-sort/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-007-bubble-sort/</guid><pubDate>Mon, 16 Sep 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>排序</category></item><item><title>算法 006：常见排序算法知识体系详解</title><link>http://localhost:4321/posts/algorithms/algorithms-006-sorting-overview/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-006-sorting-overview/</guid><pubDate>Sun, 15 Sep 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>Java</category></item><item><title>算法 005：散列表：哈希表</title><link>http://localhost:4321/posts/algorithms/algorithms-005-hash-table/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-005-hash-table/</guid><description>散列表（Hash table，也叫哈希表），是根据关键码值(Key value)而直接进行访问的数据结构。也就是说，它通过把关键码值映射到表中一个位置来访问记录，以加快查找的速度。这个映射函数叫做散列函数，存放记录的数组叫做散列表</description><pubDate>Sat, 14 Sep 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>数据结构</category></item><item><title>算法 004：线性表：栈和队列</title><link>http://localhost:4321/posts/algorithms/algorithms-004-stack-queue-ds/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-004-stack-queue-ds/</guid><description>数组和链表都是线性存储结构的基础，栈和队列都是线性存储结构的应用</description><pubDate>Fri, 13 Sep 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>数据结构</category></item><item><title>算法 003：线性表：链表</title><link>http://localhost:4321/posts/algorithms/algorithms-003-linked-list/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-003-linked-list/</guid><description>n个节点离散分配，彼此通过指针相连，每个节点只有一个前驱节点，每个节点只有一个后续节点，首节点没有前驱节点，尾节点没有后续节点。确定一个链表我们只需要头指针，通过头指针就可以把整个链表都能推出来</description><pubDate>Thu, 12 Sep 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>数据结构</category></item><item><title>算法 002：线性表：数组和矩阵</title><link>http://localhost:4321/posts/algorithms/algorithms-002-array-matrix/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-002-array-matrix/</guid><description>数组是一种连续存储线性结构，元素类型相同，大小相等，数组是多维的，通过使用整型索引值来访问他们的元素，数组尺寸不能改变</description><pubDate>Wed, 11 Sep 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>数据结构</category></item><item><title>算法 001：数据结构基础知识体系详解</title><link>http://localhost:4321/posts/algorithms/algorithms-001-ds-overview/</link><guid isPermaLink="true">http://localhost:4321/posts/algorithms/algorithms-001-ds-overview/</guid><description>构建数据结构知识体系时要避免自己造轮子，需要站在更高层次整体理解：了解算法思想、性能及适用场景，善用工具和别人梳理的结果帮助自己构建知识体系。</description><pubDate>Tue, 10 Sep 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>数据结构</category></item><item><title>集合源码 009：WeakHashMap源码解析</title><link>http://localhost:4321/posts/java_collections/java_collections-009-weakhashmap/</link><guid isPermaLink="true">http://localhost:4321/posts/java_collections/java_collections-009-weakhashmap/</guid><description>本文主要对Map - WeakHashMap源码解析 源码解析</description><pubDate>Mon, 09 Sep 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>集合源码</category></item><item><title>集合源码 008：TreeSet &amp; TreeMap 源码解析</title><link>http://localhost:4321/posts/java_collections/java_collections-008-treemap/</link><guid isPermaLink="true">http://localhost:4321/posts/java_collections/java_collections-008-treemap/</guid><description>本文主要对Map - TreeSet &amp; TreeMap 源码解析</description><pubDate>Sun, 08 Sep 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>集合源码</category></item><item><title>集合源码 007：LinkedHashSet&amp;Map源码解析</title><link>http://localhost:4321/posts/java_collections/java_collections-007-linkedhashmap/</link><guid isPermaLink="true">http://localhost:4321/posts/java_collections/java_collections-007-linkedhashmap/</guid><description>本文主要对Map - LinkedHashSet&amp;Map 源码解析</description><pubDate>Sat, 07 Sep 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>集合源码</category></item><item><title>集合源码 006：HashSet &amp; HashMap 源码解析</title><link>http://localhost:4321/posts/java_collections/java_collections-006-hashmap/</link><guid isPermaLink="true">http://localhost:4321/posts/java_collections/java_collections-006-hashmap/</guid><description>本文主要对Map - HashSet &amp; HashMap进行源码解析</description><pubDate>Fri, 06 Sep 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>集合源码</category></item><item><title>集合源码 005：PriorityQueue源码解析</title><link>http://localhost:4321/posts/java_collections/java_collections-005-priority-queue/</link><guid isPermaLink="true">http://localhost:4321/posts/java_collections/java_collections-005-priority-queue/</guid><description>本文主要对Collection - PriorityQueue进行源码解析</description><pubDate>Thu, 05 Sep 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>集合源码</category></item><item><title>集合源码 004：Stack &amp; Queue 源码解析</title><link>http://localhost:4321/posts/java_collections/java_collections-004-stack-queue/</link><guid isPermaLink="true">http://localhost:4321/posts/java_collections/java_collections-004-stack-queue/</guid><description>本文主要对Collection - Stack &amp; Queue进行源码解析</description><pubDate>Wed, 04 Sep 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>集合源码</category></item><item><title>集合源码 003：LinkedList源码解析</title><link>http://localhost:4321/posts/java_collections/java_collections-003-linkedlist/</link><guid isPermaLink="true">http://localhost:4321/posts/java_collections/java_collections-003-linkedlist/</guid><description>本文主要对Collection - LinkedList进行源码解析</description><pubDate>Tue, 03 Sep 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>集合源码</category></item><item><title>集合源码 002：ArrayList 源码解析</title><link>http://localhost:4321/posts/java_collections/java_collections-002-arraylist/</link><guid isPermaLink="true">http://localhost:4321/posts/java_collections/java_collections-002-arraylist/</guid><description>本文主要对Collection - ArrayList进行源码解析</description><pubDate>Mon, 02 Sep 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>集合源码</category></item><item><title>集合源码 001：类关系图（Overview）</title><link>http://localhost:4321/posts/java_collections/java_collections-001-collection-overview/</link><guid isPermaLink="true">http://localhost:4321/posts/java_collections/java_collections-001-collection-overview/</guid><description>本文主要介绍 JDK 中 Collection 和 Map 相关知识体系，后续章节将对主要类进行源码解读。</description><pubDate>Sun, 01 Sep 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>集合源码</category></item><item><title>Java 基础 010：去除多余的if else</title><link>http://localhost:4321/posts/java_basics/java_basics-010-refactor-remove-if-else/</link><guid isPermaLink="true">http://localhost:4321/posts/java_basics/java_basics-010-refactor-remove-if-else/</guid><pubDate>Sat, 31 Aug 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>重构</category></item><item><title>Java 基础 009：去除不必要的!=</title><link>http://localhost:4321/posts/java_basics/java_basics-009-refactor-remove-ne/</link><guid isPermaLink="true">http://localhost:4321/posts/java_basics/java_basics-009-refactor-remove-ne/</guid><description>项目中会存在大量判空代码，多么丑陋繁冗！如何避免这种情况？我们是否滥用了判空呢？</description><pubDate>Fri, 30 Aug 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>重构</category></item><item><title>Java 基础 008：SPI机制详解</title><link>http://localhost:4321/posts/java_basics/java_basics-008-spi/</link><guid isPermaLink="true">http://localhost:4321/posts/java_basics/java_basics-008-spi/</guid><description>SPI（Service Provider Interface），是JDK内置的一种 服务提供发现机制，可以用来启用框架扩展和替换组件，主要是被框架的开发人员使用</description><pubDate>Thu, 29 Aug 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>Java基础</category></item><item><title>Java 基础 007：异常机制详解</title><link>http://localhost:4321/posts/java_basics/java_basics-007-exception/</link><guid isPermaLink="true">http://localhost:4321/posts/java_basics/java_basics-007-exception/</guid><description>Java异常是Java提供的一种识别及响应错误的一致性机制，java异常机制可以使程序中异常处理代码和正常业务代码分离，保证程序代码更加优雅，并提高程序健壮性。本文综合多篇文章后，总结了Java 异常的相关知识，希望可以提升你对Java中异常的认知效率</description><pubDate>Wed, 28 Aug 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>Java基础</category></item><item><title>Java 基础 006：反射机制详解</title><link>http://localhost:4321/posts/java_basics/java_basics-006-reflection/</link><guid isPermaLink="true">http://localhost:4321/posts/java_basics/java_basics-006-reflection/</guid><description>JAVA反射机制是在运行状态中，对于任意一个类，都能够知道这个类的所有属性和方法；对于任意一个对象，都能够调用它的任意一个方法和属性；这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。Java反射机制在框架设计中极为广泛，需要深入理解。本文综合多篇文章后总结了Java 反射的</description><pubDate>Tue, 27 Aug 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>Java基础</category></item><item><title>Java 基础 005：注解机制详解</title><link>http://localhost:4321/posts/java_basics/java_basics-005-annotation/</link><guid isPermaLink="true">http://localhost:4321/posts/java_basics/java_basics-005-annotation/</guid><description>注解是JDK1.5版本开始引入的一个特性，用于对代码进行说明，可以对包、类、接口、字段、方法参数、局部变量等进行注解。它是框架学习和设计者必须掌握的基础</description><pubDate>Mon, 26 Aug 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>Java基础</category></item><item><title>Java 基础 004：泛型机制详解</title><link>http://localhost:4321/posts/java_basics/java_basics-004-generics/</link><guid isPermaLink="true">http://localhost:4321/posts/java_basics/java_basics-004-generics/</guid><description>Java泛型这个特性是从JDK 1.5才开始加入的，因此为了兼容之前的版本，Java泛型的实现采取了“伪泛型”的策略，即Java在语法上支持泛型，但是在编译阶段会进行所谓的“类型擦除”（Type Erasure），将所有的泛型表示（尖括号中的内容）都替换为具体的类型（其对应的原生态类型），就像完全没</description><pubDate>Sun, 25 Aug 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>Java基础</category></item><item><title>Java 基础 003：图谱 &amp; Q/A</title><link>http://localhost:4321/posts/java_basics/java_basics-003-basics-qa/</link><guid isPermaLink="true">http://localhost:4321/posts/java_basics/java_basics-003-basics-qa/</guid><description>本文主要对Java基础知识体系小结，同时结合一些Q&amp;A进行理解</description><pubDate>Sat, 24 Aug 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>Java基础</category></item><item><title>Java 基础 002：知识点</title><link>http://localhost:4321/posts/java_basics/java_basics-002-basics/</link><guid isPermaLink="true">http://localhost:4321/posts/java_basics/java_basics-002-basics/</guid><pubDate>Fri, 23 Aug 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>Java基础</category></item><item><title>Java 基础 001：面向对象</title><link>http://localhost:4321/posts/java_basics/java_basics-001-oop/</link><guid isPermaLink="true">http://localhost:4321/posts/java_basics/java_basics-001-oop/</guid><description>本文主要介绍 Java OOP 面向对象基础：封装、继承、多态三大特性，以及 UML 类图中的六种类关系。</description><pubDate>Thu, 22 Aug 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>Java基础</category></item><item><title>开发安全 012：渗透测试流程示例</title><link>http://localhost:4321/posts/security/security-012-pentest-process/</link><guid isPermaLink="true">http://localhost:4321/posts/security/security-012-pentest-process/</guid><description>在应用程序上线之前，都会进行多次内部或者外部的渗透测试。对于开发而言，有必要了解下渗透测试的整体流程，从而知己知彼，避免一些开发中的问题</description><pubDate>Tue, 30 Jan 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>渗透测试</category></item><item><title>开发安全 011：Web安全测试平台(DVWA)</title><link>http://localhost:4321/posts/security/security-011-dvwa/</link><guid isPermaLink="true">http://localhost:4321/posts/security/security-011-dvwa/</guid><description>DVWA（Damn Vulnerable Web Application）是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用，旨在为安全专业人员测试自己的专业技能和工具提供合法的环境，帮助web开发者更好的理解web应用安全防范的过程</description><pubDate>Mon, 29 Jan 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>渗透测试</category></item><item><title>开发安全 010：国密算法</title><link>http://localhost:4321/posts/security/security-010-chinese-crypto/</link><guid isPermaLink="true">http://localhost:4321/posts/security/security-010-chinese-crypto/</guid><pubDate>Sun, 28 Jan 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>安全算法</category></item><item><title>开发安全 009：摘要算法</title><link>http://localhost:4321/posts/security/security-009-digest/</link><guid isPermaLink="true">http://localhost:4321/posts/security/security-009-digest/</guid><description>本文主要介绍安全算法 - 摘要算法相关的内容。消息摘要算法的主要特征是加密过程不需要密钥并且经过加密的数据无法被解密，目前可以解密逆向的只有CRC32算法，只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文。消息摘要算法不存在密钥的管理与分发问题，适合于分布式网络上使用</description><pubDate>Sat, 27 Jan 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>安全算法</category></item><item><title>开发安全 008：加密算法</title><link>http://localhost:4321/posts/security/security-008-encryption/</link><guid isPermaLink="true">http://localhost:4321/posts/security/security-008-encryption/</guid><description>本文主要介绍安全算法之加密算法。 数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理，使其成为不可读的一段代码为“密文”，使其只能在输入相应的密钥之后才能显示出原容，通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。 该过程的逆过程为解密，即将该编码信息转化为其原来数据的过程</description><pubDate>Fri, 26 Jan 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>安全算法</category></item><item><title>开发安全 007：DDoS 详解</title><link>http://localhost:4321/posts/security/security-007-ddos/</link><guid isPermaLink="true">http://localhost:4321/posts/security/security-007-ddos/</guid><description>分布式拒绝服务攻击(英文意思是Distributed Denial of Service，简称DDoS)是指处于不同位置的多个攻击者同时向一个或数个目标发动攻击，或者一个攻击者控制了位于不同位置的多台机器并利用这些机器对受害者同时实施攻击。由于攻击的发出点是分布在不同地方的，这类攻击称为分布式拒绝服</description><pubDate>Thu, 25 Jan 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>Web安全</category></item><item><title>开发安全 006：点击劫持详解</title><link>http://localhost:4321/posts/security/security-006-clickjacking/</link><guid isPermaLink="true">http://localhost:4321/posts/security/security-006-clickjacking/</guid><description>点击劫持其实是一种视觉上的欺骗手段，攻击者将一个透明的、不可见的iframe覆盖在一个网页上，通过调整iframe页面位置，诱使用户在页面上进行操作，在不知情的情况下用户的点击恰好是点击在iframe页面的一些功能按钮上或  。iframe用于将第三方内容嵌入并隔离到网站中。使用if</description><pubDate>Wed, 24 Jan 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>Web安全</category></item><item><title>开发安全 005：注入攻击详解</title><link>http://localhost:4321/posts/security/security-005-injection/</link><guid isPermaLink="true">http://localhost:4321/posts/security/security-005-injection/</guid><description>注入攻击最为常见的攻击方式，作为开发而言必须完全避免; 本文会介绍常见的几种注入方式，比如： SQL 注入 , xPath 注入 , 命令注入 , LDAP注入 , CLRF注入 , Host头注入 , Email头注入 等等，总结来看其本质其实是一样的，且防御措施也大同小异，具体看下面的内容</description><pubDate>Tue, 23 Jan 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>Web安全</category></item><item><title>开发安全 004：CSRF 详解</title><link>http://localhost:4321/posts/security/security-004-csrf/</link><guid isPermaLink="true">http://localhost:4321/posts/security/security-004-csrf/</guid><description>CSRF(Cross-site request forgery跨站请求伪造，也被称成为“one click attack”或者session riding通常缩写为CSRF或者XSRF，是一种对网站的恶意利用</description><pubDate>Mon, 22 Jan 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>Web安全</category></item><item><title>开发安全 003：XSS 详解</title><link>http://localhost:4321/posts/security/security-003-xss/</link><guid isPermaLink="true">http://localhost:4321/posts/security/security-003-xss/</guid><description>XSS是跨站脚本攻击(Cross Site Scripting)，为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆，故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码，当用户浏览该页之时，嵌入其中Web里面的Script代码会被执行，从</description><pubDate>Sun, 21 Jan 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>Web安全</category></item><item><title>开发安全 002：OWASP Top 10</title><link>http://localhost:4321/posts/security/security-002-owasp-top10/</link><guid isPermaLink="true">http://localhost:4321/posts/security/security-002-owasp-top10/</guid><description>在学习安全需要总体了解安全趋势和常见的Web漏洞，首推了解OWASP，因为它代表着业内Web安全漏洞的趋势</description><pubDate>Sat, 20 Jan 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>Web安全</category></item><item><title>开发安全 001：开发安全相关知识体系详解</title><link>http://localhost:4321/posts/security/security-001-overview/</link><guid isPermaLink="true">http://localhost:4321/posts/security/security-001-overview/</guid><description>开发安全是极为重要的话题。本系列四步走：OWASP 趋势 → 常见攻击详解 → DVWA 实践 → 渗透测试流程。</description><pubDate>Fri, 19 Jan 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>安全</category></item><item><title>开发工具 019：Linux：ab压力测试</title><link>http://localhost:4321/posts/dev_tools/dev_tools-019-ab-benchmark/</link><guid isPermaLink="true">http://localhost:4321/posts/dev_tools/dev_tools-019-ab-benchmark/</guid><pubDate>Thu, 18 Jan 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>Linux</category></item><item><title>开发工具 018：Linux：创建自建服务</title><link>http://localhost:4321/posts/dev_tools/dev_tools-018-systemd-service/</link><guid isPermaLink="true">http://localhost:4321/posts/dev_tools/dev_tools-018-systemd-service/</guid><description>以打包自己开发的Java应用到Linux服务器，作为一个服务启动，并开启自启</description><pubDate>Wed, 17 Jan 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>Linux</category></item><item><title>开发工具 017：Linux：Curl使用</title><link>http://localhost:4321/posts/dev_tools/dev_tools-017-curl/</link><guid isPermaLink="true">http://localhost:4321/posts/dev_tools/dev_tools-017-curl/</guid><description>主要总结Linux Curl的一些常见用法</description><pubDate>Tue, 16 Jan 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>Linux</category></item><item><title>开发工具 016：开发百宝箱 New</title><link>http://localhost:4321/posts/dev_tools/dev_tools-016-dev-toolbox/</link><guid isPermaLink="true">http://localhost:4321/posts/dev_tools/dev_tools-016-dev-toolbox/</guid><pubDate>Mon, 15 Jan 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>Java</category></item><item><title>开发工具 015：正则表达式：在线工具汇总</title><link>http://localhost:4321/posts/dev_tools/dev_tools-015-regex-tools/</link><guid isPermaLink="true">http://localhost:4321/posts/dev_tools/dev_tools-015-regex-tools/</guid><description>本文主要总结常用的在线正则表达式相关的工具，从而高效的写出正确的表达式</description><pubDate>Sun, 14 Jan 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>正则表达式</category></item><item><title>开发工具 014：正则表达式：常用正则表达式</title><link>http://localhost:4321/posts/dev_tools/dev_tools-014-regex-common/</link><guid isPermaLink="true">http://localhost:4321/posts/dev_tools/dev_tools-014-regex-common/</guid><description>在学习了正则表达式知识点之后，通常使用正则表达式推荐你本文总结的常用的正则表达式，能覆盖80%的应用场景，如果没有通过再下一篇的工具自己写和校验</description><pubDate>Sat, 13 Jan 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>正则表达式</category></item><item><title>开发工具 013：正则表达式：知识点学习</title><link>http://localhost:4321/posts/dev_tools/dev_tools-013-regex-basics/</link><guid isPermaLink="true">http://localhost:4321/posts/dev_tools/dev_tools-013-regex-basics/</guid><description>正则表达式用于文本内容的查找和替换, 通常了解下，具体使用的时候查看下即可</description><pubDate>Fri, 12 Jan 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>正则表达式</category></item><item><title>开发工具 012：Maven项目构建</title><link>http://localhost:4321/posts/dev_tools/dev_tools-012-maven/</link><guid isPermaLink="true">http://localhost:4321/posts/dev_tools/dev_tools-012-maven/</guid><pubDate>Thu, 11 Jan 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>构建工具</category></item><item><title>开发工具 011：Git 详解</title><link>http://localhost:4321/posts/dev_tools/dev_tools-011-git/</link><guid isPermaLink="true">http://localhost:4321/posts/dev_tools/dev_tools-011-git/</guid><pubDate>Wed, 10 Jan 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>构建工具</category></item><item><title>开发工具 010：其它常用类库</title><link>http://localhost:4321/posts/dev_tools/dev_tools-010-misc-libraries/</link><guid isPermaLink="true">http://localhost:4321/posts/dev_tools/dev_tools-010-misc-libraries/</guid><description>其它常用类库体系很庞大，但是工具类的原则是只需要查找会使用即可</description><pubDate>Tue, 09 Jan 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>常用开发库</category></item><item><title>开发工具 009：日志类库详解</title><link>http://localhost:4321/posts/dev_tools/dev_tools-009-logging-libraries/</link><guid isPermaLink="true">http://localhost:4321/posts/dev_tools/dev_tools-009-logging-libraries/</guid><description>Java日志库是最能体现Java库在进化中的渊源关系的，在理解时重点理解日志框架本身和日志门面，以及比较好的实践等。要关注其历史渊源和设计（比如桥接），而具体在使用时查询接口即可， 否则会陷入JUL(Java Util Log), JCL(Commons Logging), Log4j, SLF4J</description><pubDate>Mon, 08 Jan 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>常用开发库</category></item><item><title>开发工具 008：Spring常用工具类</title><link>http://localhost:4321/posts/dev_tools/dev_tools-008-spring-utils/</link><guid isPermaLink="true">http://localhost:4321/posts/dev_tools/dev_tools-008-spring-utils/</guid><description>Spring作为常用的开发框架，在Spring框架应用中，排在ApacheCommon，Guava, Huool等通用库后，第二优先级可以考虑使用Spring-core-xxx.jar中的util包（提醒读者：对于工具类，要站在高一点的角度知道有哪些，而不是只看到代码... 用的时候具体看下即可)</description><pubDate>Sun, 07 Jan 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>常用开发库</category></item><item><title>开发工具 007：MapStruct工具库详解</title><link>http://localhost:4321/posts/dev_tools/dev_tools-007-mapstruct/</link><guid isPermaLink="true">http://localhost:4321/posts/dev_tools/dev_tools-007-mapstruct/</guid><description>MapStruct是一款非常实用Java工具，主要用于解决对象之间的拷贝问题，比如PO/DTO/VO/QueryParam之间的转换问题。区别于BeanUtils这种通过反射，它通过编译器编译生成常规方法，将可以很大程度上提升效率。全面的官方手册可以参考官方文档PDF</description><pubDate>Sat, 06 Jan 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>常用开发库</category></item><item><title>开发工具 006：Lombok工具库详解</title><link>http://localhost:4321/posts/dev_tools/dev_tools-006-lombok/</link><guid isPermaLink="true">http://localhost:4321/posts/dev_tools/dev_tools-006-lombok/</guid><description>Lombok是一款非常实用Java工具，可用来帮助开发人员消除Java的冗长代码，尤其是对于简单的Java对象（POJO）。实际上我并不推荐使用Lombok（不主动使用它）, 但是因为它有着很大的使用量，我们仍然有必要掌握它，不仅知道如何使用和它解决的问题，还要知道它的坑</description><pubDate>Fri, 05 Jan 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>常用开发库</category></item><item><title>开发工具 005：JSON库详解</title><link>http://localhost:4321/posts/dev_tools/dev_tools-005-json-libraries/</link><guid isPermaLink="true">http://localhost:4321/posts/dev_tools/dev_tools-005-json-libraries/</guid><description>JSON应用非常广泛，对于Java常用的JSON库要完全掌握; 其中考虑到FastJson代码质量，漏洞，坑等等，应该尽量避免使用</description><pubDate>Thu, 04 Jan 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>常用开发库</category></item><item><title>开发工具 004：Hutool包</title><link>http://localhost:4321/posts/dev_tools/dev_tools-004-hutool/</link><guid isPermaLink="true">http://localhost:4321/posts/dev_tools/dev_tools-004-hutool/</guid><description>Hutool作为后起之秀，功能上也比较全。但是要注意一点，它的开源协议是：中国第一个开源协议木兰宽松许可证, 第1版 ，对此在商业项目中需要谨慎些，在个人项目无所谓</description><pubDate>Wed, 03 Jan 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>常用开发库</category></item><item><title>开发工具 003：Google Guava包</title><link>http://localhost:4321/posts/dev_tools/dev_tools-003-guava/</link><guid isPermaLink="true">http://localhost:4321/posts/dev_tools/dev_tools-003-guava/</guid><description>Google出品的common包，我比较常用的比如Guava缓存等</description><pubDate>Tue, 02 Jan 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>常用开发库</category></item><item><title>开发工具 002：Apache Common包</title><link>http://localhost:4321/posts/dev_tools/dev_tools-002-apache-commons/</link><guid isPermaLink="true">http://localhost:4321/posts/dev_tools/dev_tools-002-apache-commons/</guid><description>Apache common不仅被成千上万开源工具使用，更是学习Java编程比较好的代码参考工具，效率工具</description><pubDate>Mon, 01 Jan 2024 00:00:00 GMT</pubDate><category>Java</category><category>系列</category><category>常用开发库</category></item></channel></rss>