diff --git a/.obsidian/bookmarks.json b/.obsidian/bookmarks.json index 001c587..08d6356 100644 --- a/.obsidian/bookmarks.json +++ b/.obsidian/bookmarks.json @@ -5,12 +5,6 @@ "ctime": 1736742940138, "path": "work/移动杭研/业务梳理/接口收纳.md" }, - { - "type": "file", - "ctime": 1768964533760, - "path": "work/移动杭研/开发记录/7.18.0/开发笔记.md", - "title": "7.18.0 开发笔记" - }, { "type": "file", "ctime": 1772680366639, diff --git a/.obsidian/community-plugins.json b/.obsidian/community-plugins.json index a42302d..f6b446b 100644 --- a/.obsidian/community-plugins.json +++ b/.obsidian/community-plugins.json @@ -1,11 +1,11 @@ [ - "obsidian-paste-image-rename", "update-relative-links", "quickadd", "calendar", - "recent-files-obsidian", "oz-clear-unused-images", "obsidian-excalidraw-plugin", "templater-obsidian", - "obsidian-linter" + "obsidian-linter", + "obsidian-paste-image-rename", + "recent-files-obsidian" ] \ No newline at end of file diff --git a/.obsidian/daily-notes.json b/.obsidian/daily-notes.json index d2329b3..fed649a 100644 --- a/.obsidian/daily-notes.json +++ b/.obsidian/daily-notes.json @@ -1,5 +1,5 @@ { "folder": "calendar/diary", - "template": "attachment/templates/日记模板", + "template": "attachment/templates/日常记录-日记模板", "autorun": false } \ No newline at end of file diff --git a/.obsidian/plugins/quickadd/data.json b/.obsidian/plugins/quickadd/data.json index be9f5c4..b21d402 100644 --- a/.obsidian/plugins/quickadd/data.json +++ b/.obsidian/plugins/quickadd/data.json @@ -5,7 +5,7 @@ "name": "日常记录-闪念笔记", "type": "Template", "command": false, - "templatePath": "attachment/templates/时间戳笔记.md", + "templatePath": "attachment/templates/日常记录-闪念笔记.md", "fileNameFormat": { "enabled": true, "format": "{{DATE:YYYYMMDDHHmmSS}}" diff --git a/.obsidian/plugins/recent-files-obsidian/data.json b/.obsidian/plugins/recent-files-obsidian/data.json index d3b8238..4c1c15f 100644 --- a/.obsidian/plugins/recent-files-obsidian/data.json +++ b/.obsidian/plugins/recent-files-obsidian/data.json @@ -1,28 +1,48 @@ { "recentFiles": [ { - "basename": "如何成为一个 React 工程师呢?", - "path": "resource/前端/如何成为一个 React 工程师呢?.md" + "basename": "20260324090682", + "path": "000-Inbox/20260324090682.md" }, { - "basename": "TG 备忘录", - "path": "personal/TG 备忘录.md" + "basename": "Docker 核心知识与实战笔记", + "path": "000-inbox/Docker 核心知识与实战笔记.md" + }, + { + "basename": "20260324085410", + "path": "000-Inbox/20260324085410.md" + }, + { + "basename": "20260324085466", + "path": "000-Inbox/20260324085466.md" + }, + { + "basename": "20260324084778", + "path": "000-Inbox/20260324084778.md" + }, + { + "basename": "开发笔记", + "path": "work/移动杭研/开发记录/7.18.0/开发笔记.md" + }, + { + "basename": "tg-bot", + "path": "000-inbox/tg-bot.md" + }, + { + "basename": "0323-邮件发送异常", + "path": "work/移动杭研/问题处理/2026-03/0323-邮件发送异常.md" + }, + { + "basename": "如何成为一个 React 工程师呢?", + "path": "resource/前端/如何成为一个 React 工程师呢?.md" }, { "basename": "开发笔记", "path": "work/移动杭研/开发记录/7.19.0/开发笔记.md" }, { - "basename": "20260321211989", - "path": "000-Inbox/20260321211989.md" - }, - { - "basename": "20260320234712", - "path": "000-Inbox/20260320234712.md" - }, - { - "basename": "20260320124131", - "path": "000-Inbox/20260320124131.md" + "basename": "TG 备忘录", + "path": "personal/TG 备忘录.md" }, { "basename": "IBS 智能体具体落实技术方案", @@ -112,10 +132,6 @@ "basename": "Anolis 系统 Redis 安装", "path": "resource/组件/Anolis 系统 Redis 安装.md" }, - { - "basename": "tg-bot", - "path": "000-inbox/tg-bot.md" - }, { "basename": "常用命令", "path": "resource/常用命令.md" @@ -139,58 +155,6 @@ { "basename": "0316-配管任务限流问题", "path": "work/移动杭研/问题处理/2026-03/0316-配管任务限流问题.md" - }, - { - "basename": "0316-配管任务限流问题", - "path": "000-Inbox/0316-配管任务限流问题.md" - }, - { - "basename": "1107-试用单删除问题", - "path": "work/移动杭研/问题处理/2025-11/1107-试用单删除问题.md" - }, - { - "basename": "20260313151563", - "path": "000-Inbox/20260313151563.md" - }, - { - "basename": "BUSI_REQUIREMENT_COSMIC", - "path": "resource/ai/prompts/cosmic 业务版本/BUSI_REQUIREMENT_COSMIC.md" - }, - { - "basename": "BUSI_REQUIREMENT_FLOWCHART", - "path": "resource/ai/prompts/cosmic 业务版本/BUSI_REQUIREMENT_FLOWCHART.md" - }, - { - "basename": "Prompt 高级彩虹屁", - "path": "resource/ai/prompts/Prompt 高级彩虹屁.md" - }, - { - "basename": "Prompt 考勤数据规整助手 小杨", - "path": "resource/ai/prompts/Prompt 考勤数据规整助手 小杨.md" - }, - { - "basename": "开发备注", - "path": "work/移动杭研/AI 项目/开发备注.md" - }, - { - "basename": "Prompt 公司智能体", - "path": "resource/ai/prompts/临时/Prompt 公司智能体.md" - }, - { - "basename": "Prompt 需求-考勤转换-小杨", - "path": "resource/ai/prompts/临时/Prompt 需求-考勤转换-小杨.md" - }, - { - "basename": "Prompt 专家模板", - "path": "resource/ai/prompts/Prompt 专家模板.md" - }, - { - "basename": "Prompt ChatBI 查询规划器", - "path": "resource/ai/prompts/Prompt ChatBI 查询规划器.md" - }, - { - "basename": "Prompt Linus", - "path": "resource/ai/prompts/Prompt Linus.md" } ], "omittedPaths": [ diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index dde05d3..9f00dd2 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -4,11 +4,11 @@ "type": "split", "children": [ { - "id": "67738bd5acdbd7ce", + "id": "efd0ccfc8a82680d", "type": "tabs", "children": [ { - "id": "00649b8cd88fe2b8", + "id": "f15a0d12f6a0fcdf", "type": "leaf", "state": { "type": "empty", @@ -29,7 +29,6 @@ { "id": "6836caf2765d7139", "type": "tabs", - "dimension": 69.27016645326505, "children": [ { "id": "c8718c0c63702202", @@ -50,7 +49,7 @@ "state": { "type": "search", "state": { - "query": "sk-839b2fd5ec74530fe339c6640a7c2d486428101fbfdafc4c38824f9970d33046", + "query": "20260324082116", "matchingCase": false, "explainSearch": true, "collapseAll": false, @@ -74,12 +73,11 @@ ] }, { - "id": "729e97c586d5eaa9", + "id": "467278b27553fb8c", "type": "tabs", - "dimension": 30.72983354673495, "children": [ { - "id": "4c0b938080320781", + "id": "c7138b775f1dd80e", "type": "leaf", "state": { "type": "recent-files", @@ -92,7 +90,7 @@ } ], "direction": "horizontal", - "width": 242.5 + "width": 288.5 }, "right": { "id": "ca733f6d5936ae40", @@ -123,7 +121,6 @@ "state": { "type": "backlink", "state": { - "file": "000-Inbox/20260305103657.md", "collapseAll": false, "extraContext": false, "sortOrder": "alphabetical", @@ -133,7 +130,7 @@ "unlinkedCollapsed": false }, "icon": "links-coming-in", - "title": "20260305103657 的反向链接列表" + "title": "反向链接" } }, { @@ -142,12 +139,11 @@ "state": { "type": "outgoing-link", "state": { - "file": "000-Inbox/20260305103657.md", "linksCollapsed": false, "unlinkedCollapsed": true }, "icon": "links-going-out", - "title": "20260305103657 的出链列表" + "title": "出链" } }, { @@ -191,7 +187,8 @@ "title": "脚注" } } - ] + ], + "currentTab": 2 }, { "id": "ea8a40d57ef90e62", @@ -212,7 +209,7 @@ } ], "direction": "horizontal", - "width": 287.5 + "width": 286.5 }, "left-ribbon": { "hiddenItems": { @@ -226,34 +223,42 @@ "obsidian-excalidraw-plugin:New drawing": false } }, - "active": "00649b8cd88fe2b8", + "active": "f15a0d12f6a0fcdf", "lastOpenFiles": [ - "resource/前端/如何成为一个 React 工程师呢?.md", - "calendar/diary/2026-03-21.md", - "000-inbox/20260321211989.md", - "000-inbox/20260320234712.md", - "000-inbox/20260320124131.md", - "000-inbox/20260319165480.md", - "000-inbox/20260318101127.md", - "000-inbox/20260318100374.md", - "calendar/diary/2026-03-20.md", - "calendar/diary/2026-03-19.md", - "calendar/diary/2026-03-18.md", - "personal/TG 备忘录.md", - "work/移动杭研/开发记录/7.19.0/开发笔记.md", - "000-Inbox/20260321211989.md", - "000-Inbox/20260320234712.md", - "000-Inbox/20260320124131.md", - "work/移动杭研/AI 项目/IBS 智能体具体落实技术方案.md", - "work/移动杭研/AI 项目/CLAUDE.md.md", - "work/移动杭研/AI 项目/图纸-IBS 智能体-v3-项目架构.md", - "work/移动杭研/AI 项目/图纸-IBS 智能体-v1-流量查询 demo 对象存储.md", - "work/移动杭研/AI 项目/图纸-IBS 智能体-v1-流量查询 demo.md", - "work/移动杭研/AI 项目/ibs-ai 项目梳理.md", - "resource/ai/prompts/cosmic/Prompt 01 COSMIC 需求扩写.md", - "resource/ai/prompts/cosmic/Prompt 06 COSMIC 锐评.md", - "resource/ai/prompts/cosmic/Prompt 05 COSMIC 时序图.md", - "resource/ai/prompts/cosmic/Prompt 04 COSMIC PRD 文档.md", + "000-inbox/20260324090682.md", + "000-Inbox/20260324090682.md", + "000-inbox/20260324085410.md", + "000-inbox/20260324085482.md", + "000-inbox/20260324085466.md", + "000-Inbox/20260324085482.md", + "000-Inbox/20260324085410.md", + "000-Inbox/20260324085466.md", + "attachment/templates/日常记录-日记模板.md", + "attachment/templates/日常记录-闪念笔记.md", + "000-inbox/20260324084778.md", + "000-Inbox/20260324084778.md", + "work/移动杭研/开发记录/7.18.0/开发笔记.md", + "calendar/diary/2026-03-24.md", + "000-inbox/tg-bot.md", + "000-inbox/Docker 核心知识与实战笔记.md", + "attachment/Pasted image 20260324082116.png", + "000-inbox/0323-1.md", + "000-Inbox/20260324082507.md", + "000-inbox/20260324082570.md", + "000-inbox/202603232149292.md", + "000-inbox/20260324082507.md", + "000-inbox/20260324081861.md", + "000-inbox/20260323215788.md", + "000-inbox/20260323215783.md", + "000-Inbox/20260324082570.md", + "attachment/templates/时间戳笔记 1.md", + "attachment/image-20260324081512980.png", + "attachment/Pasted image 20260323220004.png", + "attachment/Pasted image 20260323214940.png", + "attachment/image-20260323215003621.png", + "attachment/images-uuid/3284aebc70ac4b04bed34178af47de22.png", + "attachment/images-uuid/44afb467c5294b4ea0a437b3b3258f5c.png", + "attachment/images-paste/image-20260323102328859.png", "work/移动杭研/问题处理/2026-03", "resource/ai/prompts/cosmic 业务版本", "resource/ai/prompts/cosmic", @@ -265,15 +270,7 @@ "resource/前端", "resource/英语", "attachment/images-paste/image-20260305082403915.png", - "attachment/image-20260305103708566.png", - "attachment/Pasted image 20260305103645.png", - "attachment/Pasted image 20260305103633.png", "000-inbox/未命名.canvas", - "attachment/images-uuid/dd32291e71724c52a904aa80ce1fc59a.png", - "attachment/images-uuid/e9d6d33cd6a44bd0ab62b5999e04c7be.png", - "attachment/image-20260302225213302.png", - "attachment/Pasted image 20260302225154.png", - "resource/mermaid", - "attachment/images-uuid/1b6c8b1c84064481ac7c72347ba8e259.png" + "resource/mermaid" ] } \ No newline at end of file diff --git a/000-inbox/Docker 核心知识与实战笔记.md b/000-inbox/Docker 核心知识与实战笔记.md new file mode 100644 index 0000000..95d3296 --- /dev/null +++ b/000-inbox/Docker 核心知识与实战笔记.md @@ -0,0 +1,123 @@ +# 🐳 Docker 核心知识与实战笔记 + +## 一、 Docker 核心工作流与常用命令速查表 + +### 1. 自定义镜像与分享工作流 + +- **流程**:下载镜像 -> 启动容器 -> 修改页面/配置 -> 保存镜像 (`commit`) -> 导出镜像 (`save`) -> 分享/加载 (`load`) +- `docker commit`:将修改后的容器提交为新的本地镜像。 +- `docker save`:将镜像保存为 tar 归档文件(用于离线传输)。 +- `docker load`:从 tar 归档文件中加载镜像。 + +### 2. 常用命令分类速查 (Cheat Sheet) + +| 分类 | 命令示例 | 功能说明 | +| :--- | :--- | :--- | +| **镜像 (Image)** | `docker search` | 检索 Docker Hub 上的镜像 | +| | `docker pull` | 下载镜像到本地 | +| | `docker images` | 列出本地所有镜像 | +| | `docker rmi` | 删除本地镜像 | +| **容器 (Container)**| `docker run` | 创建并运行一个新容器 | +| | `docker ps` | 查看当前正在运行的容器 (`-a` 查看所有) | +| | `docker stop` / `start`| 停止 / 启动 容器 | +| | `docker restart` | 重启容器 | +| | `docker stats` | 查看容器资源实时使用状态 | +| | `docker logs` | 查看容器内部日志(排错必备) | +| | `docker exec` | 进入正在运行的容器内部执行命令 | +| | `docker rm` | 删除已停止的容器 | +| **分享与管理** | `docker login` | 登录 Docker 镜像仓库 | +| | `docker tag` | 给镜像打标签(重命名,准备推送) | +| | `docker push` | 将镜像推送到远程仓库 | + +--- + +## 二、 数据持久化:目录挂载 vs 卷映射 + +Docker 提供了两种主要的数据持久化方式,通过 `-v` 参数实现: + +### 1. 目录挂载 (Bind Mounts) + +将宿主机的**绝对路径**直接挂载到容器内。 + +- **语法**:`-v /宿主机绝对路径:/容器内路径` +- **示例**:`-v /app/nghtml:/usr/share/nginx/html` +- **特点**:路径完全由用户掌控,适合挂载需要频繁修改的代码或配置文件。 + +### 2. 卷映射 (Named Volumes) + +由 Docker 自动管理宿主机的存储目录,只需提供一个“卷名”。 + +- **语法**:`-v 卷名:/容器内路径` +- **示例**:`-v ngconf:/etc/nginx` +- **底层路径**:Docker 默认会将命名卷存放在宿主机的 `/var/lib/docker/volumes//_data` 目录下。 +- **特点**:Docker 统一管理,不用担心宿主机路径权限问题,适合持久化数据库数据等。 + +### 3. Volume 常用管理命令 + +- `docker volume ls`:列出所有由 Docker 管理的卷。 +- `docker volume create <卷名>`:提前创建一个数据卷。 +- `docker volume inspect <卷名>`:查看卷的详细信息(包含具体的 `Mountpoint` 宿主机物理路径)。 + +> ⚠️ **排错注意**:在挂载配置文件(如 nginx.conf)时,如果宿主机对应路径下没有该文件,直接挂载会导致容器内部找不到配置文件而启动失败(如截图中 `Exited (1)` 且日志报错 `open() "/etc/nginx/nginx.conf" failed`)。 + +--- + +## 三、 容器网络机制与自定义网络 + +### 1. 默认网络 (`docker0`) 的局限性 + +- Docker 会为每个容器分配一个唯一的内网 IP。 +- **痛点**:由于容器重启等原因,**容器的 IP 是动态变化的**。默认的 `docker0` 桥接网络**不支持通过容器名(域名)进行内部互相解析**。 + +### 2. 解决方案:创建自定义网络 + +- **核心优势**:在自定义网络(如命名为 `mynet`)中,**容器名就是稳定的域名**。即使 IP 变了,容器之间依然可以通过容器名互相访问。 + +### 3. 实战案例:Redis 主从同步集群(通过容器名通信) + +使用自定义网络,让从节点通过主节点的**容器名**进行连接,实现读写分离。 + +- **Master (主节点 - redis01)**: + - 宿主机端口: `6379` + - 环境变量: `REDIS_REPLICATION_MODE=master`, `REDIS_PASSWORD=123456` +- **Slave (从节点 - redis02)**: + - 宿主机端口: `6380` + - 环境变量: + - `REDIS_REPLICATION_MODE=slave` + - `REDIS_MASTER_HOST=redis01` (**重点:直接使用主节点的容器名**) + - `REDIS_MASTER_PORT_NUMBER=6379` (主节点内部端口) + - `REDIS_MASTER_PASSWORD=123456` + - `REDIS_PASSWORD=123456` + +--- + +## 四、 Docker Compose 容器编排 + +当项目包含多个容器(如 App + MySQL + Redis)时,单个单个 `run` 非常繁琐,此时需要使用 Docker Compose。 + +### 1. 核心概念 + +通过一个 `compose.yaml` (或 `docker-compose.yml`) 声明式文件,一键管理整个项目的多个服务。 + +### 2. 常用操作命令 + +- `docker compose up -d`:**上线**(解析 yaml,创建网络/数据卷,后台启动所有容器)。 +- `docker compose down`:**下线**(停止并删除 yaml 中定义的所有容器、网络)。 +- `docker compose start [服务名1 服务名2]`:单独启动定义好的服务。 +- `docker compose stop [服务名1 服务名2]`:单独停止服务。 +- *(扩展)* `docker compose scale <服务名>=<数量>`:对某个服务进行扩缩容(注:新版语法多推荐使用 `up --scale`)。 + +### 3. `compose.yaml` 顶级元素构成 + +编写 yaml 文件时,主要包含以下几个顶级块(Top-level elements): + +- `name`:项目名称 +- `services`:**【核心】** 定义各个服务(如 web, db, cache),每个服务包含镜像、端口映射、环境变量等。 +- `networks`:定义项目使用的自定义网络。 +- `volumes`:定义项目使用的数据卷。 +- `configs`:定义配置信息。 +- `secrets`:定义敏感信息(如密码密钥)。 + +**官方参考文档查阅地址**: + +`https://docs.docker.com/compose/compose-file/` (编写 yaml 遇到属性不会写时,随时查阅 Reference 官方文档)。 diff --git a/attachment/images-paste/image-20260323102328859.png b/attachment/images-paste/image-20260323102328859.png new file mode 100644 index 0000000..3c56f9a Binary files /dev/null and b/attachment/images-paste/image-20260323102328859.png differ diff --git a/attachment/images-uuid/3284aebc70ac4b04bed34178af47de22.png b/attachment/images-uuid/3284aebc70ac4b04bed34178af47de22.png new file mode 100644 index 0000000..a8f0496 Binary files /dev/null and b/attachment/images-uuid/3284aebc70ac4b04bed34178af47de22.png differ diff --git a/attachment/images-uuid/44afb467c5294b4ea0a437b3b3258f5c.png b/attachment/images-uuid/44afb467c5294b4ea0a437b3b3258f5c.png new file mode 100644 index 0000000..e2d57f5 Binary files /dev/null and b/attachment/images-uuid/44afb467c5294b4ea0a437b3b3258f5c.png differ diff --git a/attachment/templates/日记模板.md b/attachment/templates/日常记录-日记模板.md similarity index 100% rename from attachment/templates/日记模板.md rename to attachment/templates/日常记录-日记模板.md diff --git a/attachment/templates/日常记录-闪念笔记.md b/attachment/templates/日常记录-闪念笔记.md new file mode 100644 index 0000000..e69de29 diff --git a/attachment/templates/时间戳笔记.md b/attachment/templates/时间戳笔记.md deleted file mode 100644 index 467334d..0000000 --- a/attachment/templates/时间戳笔记.md +++ /dev/null @@ -1 +0,0 @@ -<% tp.file.cursor() %> \ No newline at end of file diff --git a/calendar/diary/2026-03-22.md b/calendar/diary/2026-03-22.md new file mode 100644 index 0000000..0895905 --- /dev/null +++ b/calendar/diary/2026-03-22.md @@ -0,0 +1,17 @@ +# 任务 + +# 日志 + +# 总结 + +今天早晨起来之后,我们打算带田宝去白浮泉公园玩。 + +我们先去了上次那个有攀爬项目的一侧。发现田宝其实比较胆小,他在看到一些比较危险的东西后,是不会去做任何尝试的。我感觉这其实非常好,对他这个年龄段来说,这种性格能起到很好的保护作用。 + +后面我们去玩了滑梯。白浮泉这个滑梯有一个很大的问题,就是大人不能快速地上下看护小孩。看到好多老人自己带孩子,在那儿就很无力,因为小朋友从滑梯滑下去后,老人再下去会非常费劲。不过今天在外边吹风感觉很舒服,白浮泉那边的整体环境也要好很多。 + +中午 12 点左右,我们回家去肯德基吃了一个冰淇淋。田宝吃完饭之后就去睡觉了。 + +下午起床后,我看了一些 React 的课程,田宝则去公园找他的好朋友瑞瑞和凯凯玩。他们一直疯狂地跑到 7 点钟才回家,吃完饭后明显感觉他今天累坏了。 + +晚上我跟着 React 课程完成了那个“井字棋”的游戏。我感觉这个 React 课程真的让我眼前一亮,老师经常能预料到学习者会遇到什么问题以及如何去解决,没有站在高位者的姿态去讲课。 diff --git a/calendar/diary/2026-03-23.md b/calendar/diary/2026-03-23.md new file mode 100644 index 0000000..a05de91 --- /dev/null +++ b/calendar/diary/2026-03-23.md @@ -0,0 +1,73 @@ +# 任务 + +- [x] 开发:参加 IBS 项目晨会,同步昨日问题跟进事项。明确外协人员 AI 代码提交规范。(李春良 0.5) +- [x] 开发:支撑 IBS V7.19.0 版本测试。新业务平面引入与系统集成实施。运营管理/统计分析/数据统计,全部的其他五个选项分别选择后查询,可以得出结论数据来源于新增平面(李春良 1) +- [x] 客响:每周一信安信息更新通知未发送。Mail rejected because email has 钓鱼网站2(张鹏豪 3) +- [x] 项目:外协日报通报问题。2026.03.01-2026.03.22 这段时间一直在做 IBS 7.19.0 需求梳理、开发、自测,还有 IBS 智能体方案调研,工作内容连续性比较强。有些内容写得比较像,所以被判定为重复雷同。后面我会按每天实际完成的工作分别写明白,尽量写清当天处理了什么、进展到哪一步,避免再出现类似情况。(张鹏豪 1) +- [x] 项目:IBS 7.19.0 能力引入。NRWLXT-30741 BYOC 接口幂等核心代码能力输出,实现接口调用的稳定性和可重复执行能力。NRWLXT-30742 BYOC 文件管理核心代码能力输出,支持文件上传、下载、存储及访问全流程管理。NRWLXT-30743 BYOC 报表导出核心代码能力输出,实现报表数据高效生成、格式化与导出,支持多种格式和大数据量处理。(李春良 1) +- [x] 项目:BIS 7.19.0 AI 代码。Add NRWLXT-30729 BYAC CSPID-2026-00AQ1M AI 优化 新业务平面引入与系统集成实施。Add NRWLXT-30729 BYRC CLID-00ABRP 代码复用 新业务平面引入与系统集成实施。(李春良 0.5) +- [x] 项目:CDN 智能体技术研讨。关于语义路由是否需要通过 mcp 去决定方向。(张鹏豪 1) + +# 日志 + +[关注点分离](https://zh.wikipedia.org/wiki/%E5%85%B3%E6%B3%A8%E7%82%B9%E5%88%86%E7%A6%BB) + +[一次且仅一次](https://zh.wikipedia.org/wiki/%E4%B8%80%E6%AC%A1%E4%B8%94%E4%BB%85%E4%B8%80%E6%AC%A1) + +每个需求必须有一次提交。 + +由于连续多天进行测试,所以出现XX天日报重复的情况 + +问题:2026-03-01至2026-03-22日存在10条日报异常记录 + +导向: + +``` +提醒:外协如有持续一段时间进行相同测试或者开发工作,请通知外协,日报中不要复制黏贴,会造成异常。有重复的工作,请每天展开描述一下,具体的工作内容和进展,降低重复率。如已经造成异常了,请在台账上备案,并确保下不为例 +``` + +表格: + +![](../../attachment/images-paste/image-20260323102328859.png) + +序号 外协姓名 直属上级 自查问题分类 日报时间 原因说明 附件(截图) 备注 + +例 张三 李四 格式不规范/缺少归档路径/出现外链/重复雷同 2025.03.01-2025.03.05 由于连续多天进行测试,所以出现XX天日报重复的情况 截图 + +日报: + +2026-03-16 的 归档地址 归档地址问题我写了。根据我的日报给我一份:重复雷同。原因说明。 + +这段时间一直在做 IBS 7.19.0 需求梳理、开发、自测,还有 IBS 智能体方案调研,工作内容连续性比较强。有些内容写得比较像,所以被判定为重复雷同。后面我会按每天实际完成的工作分别写明白,尽量写清当天处理了什么、进展到哪一步,避免再出现类似情况。 + +``` + +Add NRWLXT-30741 BYOC 接口幂等核心代码能力输出,实现接口调用的稳定性和可重复执行能力。 + +Add NRWLXT-30742 BYOC 文件管理核心代码能力输出,支持文件上传、下载、存储及访问全流程管理。 + +Add NRWLXT-30743 BYOC 报表导出核心代码能力输出,实现报表数据高效生成、格式化与导出,支持多种格式和大数据量处理。 + +``` + +``` + +Add NRWLXT-30729 BYAC CSPID-2026-00AQ1M AI 优化 新业务平面引入与系统集成实施 + +CSPID-2026-00AQ1M + +Add NRWLXT-30729 BYRC CLID-00ABRP 代码复用 新业务平面引入与系统集成实施 + +``` + +``` + +ps -ef | grep xinan + + 1983 2025-12-08 18:13:12 root kill -9 25856 + + 1984 2025-12-08 18:13:15 root nohup java -jar xinan-ibs-mock.jar > xinan.log & + +``` + +# 总结 diff --git a/calendar/diary/2026-03-24.md b/calendar/diary/2026-03-24.md new file mode 100644 index 0000000..0ab4c26 --- /dev/null +++ b/calendar/diary/2026-03-24.md @@ -0,0 +1,8 @@ +# 任务 + +- [ ] 开发:参加 IBS 项目晨会,同步昨日问题跟进事项。(李春良) +- [ ] 开发:支撑 IBS V7.19.0 版本测试。新业务平面引入与系统集成实施。(李春良) + +# 日志 + +# 总结 diff --git a/calendar/weeks/2026-W12.md b/calendar/weeks/2026-W12.md new file mode 100644 index 0000000..ce7c96b --- /dev/null +++ b/calendar/weeks/2026-W12.md @@ -0,0 +1 @@ +cosmic ai 工具部署、Dify、割接、Java 枚举问题、李虎 rag、四六级、龙抬头、小寨、张泽、全季、白浮泉、react diff --git a/resource/前端/如何成为一个 React 工程师呢?.md b/resource/前端/如何成为一个 React 工程师呢?.md index 1f6346e..fd0e2a6 100644 --- a/resource/前端/如何成为一个 React 工程师呢?.md +++ b/resource/前端/如何成为一个 React 工程师呢?.md @@ -708,6 +708,15 @@ export default function App() { ``` +--- + +| 模式 | 英文 | 中文 | 类比 | 特点 | SEO | +| --- | ----------------------- | ----------- | ---------------- | -------------------- | -------- | +| CSR | Client-Side Rendering | 客户端渲染 | 外卖(现点+等) | 慢启动,但灵活 | ❌ | +| SSR | Server-Side Rendering | 服务端渲染 | 餐厅现做 | 平衡(快+动态) | ✅ | +| SSG | Static Site Generation | 静态站点生成 | 预制菜 | 极快,但不灵活 | ✅ | +| RSC | React Server Components | React 服务端组件 | 后厨分工(部分菜在厨房直接处理) | 组件在服务器执行,不进浏览器,减少 JS | ⚠️(间接有利) | + # CSS 顶级作用域 diff --git a/work/移动杭研/问题处理/2026-03/0323-邮件发送异常.md b/work/移动杭研/问题处理/2026-03/0323-邮件发送异常.md new file mode 100644 index 0000000..9b0bc43 --- /dev/null +++ b/work/移动杭研/问题处理/2026-03/0323-邮件发送异常.md @@ -0,0 +1,95 @@ +--- +日期: 2026-03-23 14:45 +来源: 客响 +--- + +# 问题详情 + +最后一次发送 3.9 日。 + +![](../../../../attachment/images-uuid/3284aebc70ac4b04bed34178af47de22.png) + +# 处理过程 + +``` +功能可用 +2026-03-19 07:05:16 [61524c5bc039452b] [61524c5bc039452b] [] [portal-116] [http-nio-8080-exec-243] INFO com.cmcc.cdn.platform.portal.service.impl.EmailServiceImpl 705 sendGenericTemplateEmail - 【通用模板邮件发送】邮件的内容: + + + + cache+需求变更工单(005-20240424001)配置失败 + + + + + +
+

您好!您申请的cache+需求变更工单(005-20240424001)配置失败,您可登陆IBS系统查看详细工单配置信息。

+
+ + + + +2026-03-19 07:05:17 [61524c5bc039452b] [61524c5bc039452b] [] [portal-116] [http-nio-8080-exec-243] INFO com.cmcc.cdn.platform.portal.service.impl.EmailServiceImpl 708 sendGenericTemplateEmail - 【通用模板邮件发送】发送邮件结束 +``` + +可能 + +1. 邮件服务超时 - 26秒后连接断开 +2. 邮件内容过大 - 附件或HTML内容超限 +3. SMTP服务器拒绝 - 收件人过多(9个主送+7个密送=16个)或邮件大小限制 + +``` +hanqiyawl@chinamobile.com,luobingqing@chinamobile.com,zhaozibing@chinamobile.com;xuxuehan@cmhi.chinamobile.com,jigaofeng@cmhi.chinamobile.com,lichunliang@cmhi.chinamobile.com,zhangpenghao@cmhi.chinamobile.com,15033848944@163.com,zhaopuming@cmhi.chinamobile.com,13649508243@163.com + + +zhangpenghao@cmhi.chinamobile.com;15033848944@163.com + +``` + +``` +第二部分有、第一部分没有的(第二部分多出的): +download.vwan.com.cn + +play.vwan.com.cn + +po.xzalsx.cn + +to.xzalsx.cn + +llcdn.xzalsx.cn + +zzcdn.xzalsx.cn + +hw-rtc.ktwhymjzkj.cn + +hw-kuai-flv.ktwhymjzkj.cn + +hw-tui.ktwhymjzkj.cn +``` + +# 总结 + +Mail rejected because email has %E9%92%93%E9%B1%BC%E7%BD%91%E7%AB%992 + +Mail rejected because email has 钓鱼网站2 + +download.vwan.com.cn 60000016129 深圳华为云计算技术有限公司 + +play.vwan.com.cn 60000016129 深圳华为云计算技术有限公司 + +po.xzalsx.cn 60000016110 深圳华为云计算技术有限公司 + +to.xzalsx.cn 60000016110 深圳华为云计算技术有限公司 + +llcdn.xzalsx.cn 60000016110 深圳华为云计算技术有限公司 + +zzcdn.xzalsx.cn 60000016110 深圳华为云计算技术有限公司 + +hw-rtc.ktwhymjzkj.cn 60000016128 深圳华为云计算技术有限公司 + +hw-kuai-flv.ktwhymjzkj.cn 60000016128 深圳华为云计算技术有限公司 + +hw-tui.ktwhymjzkj.cn 60000016128 深圳华为云计算技术有限公司 + +![](../../../../attachment/images-uuid/44afb467c5294b4ea0a437b3b3258f5c.png)