普通视图
美图宣布回购321.7万股,自2020年以来首次回购股票
Best Linux Distributions for Every Use Case
A Linux distribution (or “distro”) is an operating system built on the Linux kernel, combined with GNU tools, libraries, and software packages. Each distro includes a desktop environment, package manager, and preinstalled applications tailored to specific use cases.
With hundreds of Linux distributions available, choosing the right one can be overwhelming. This guide covers the best Linux distributions for different types of users, from complete beginners to security professionals.
How to Choose a Linux Distro
When selecting a Linux distribution, consider these factors:
- Experience level — Some distros are beginner-friendly, while others require technical knowledge
- Hardware — Older computers benefit from lightweight distros like Xubuntu and other Xfce-based systems
- Purpose — Desktop use, gaming, server deployment, or security testing all have ideal distros
- Software availability — Check if your required applications are available in the distro’s repositories
- Community support — Larger communities mean more documentation and help
Linux Distros for Beginners
These distributions are designed with user-friendliness in mind, featuring intuitive interfaces and easy installation.
Ubuntu
Ubuntu is the most popular Linux distribution and an excellent starting point for newcomers. Developed by Canonical, it offers a polished desktop experience with the GNOME environment and extensive hardware support.

Ubuntu comes in several editions:
- Ubuntu Desktop — Standard desktop with GNOME
- Ubuntu Server — For server deployments
- Kubuntu, Lubuntu, Xubuntu — Alternative desktop environments
Ubuntu releases new versions every six months, with Long Term Support (LTS) versions every two years receiving five years of security updates.
Website: https://ubuntu.com/
Linux Mint
Linux Mint is an excellent choice for users coming from Windows. Its Cinnamon desktop environment provides a familiar layout with a taskbar, start menu, and system tray.

Key features:
- Comes with multimedia codecs preinstalled
- LibreOffice productivity suite included
- Update Manager for easy system maintenance
- Available with Cinnamon, MATE, or Xfce desktops
Website: https://linuxmint.com/
Pop!_OS
Developed by System76, Pop!_OS is based on Ubuntu but optimized for productivity and gaming. It ships with the COSMIC desktop environment (built in Rust by System76), featuring built-in window tiling, a launcher for quick app access, and excellent NVIDIA driver support out of the box.

Pop!_OS is particularly popular among:
- Gamers (thanks to Steam and Proton integration)
- Developers (includes many development tools)
- Users with NVIDIA graphics cards
Website: https://pop.system76.com/
Zorin OS
Zorin OS is a beginner-focused distribution designed to make the move from Windows or macOS easier. It includes polished desktop layouts, strong hardware compatibility, and a simple settings experience for new users.
Zorin OS is a strong option when you want:
- A familiar desktop layout with minimal setup
- Stable Ubuntu-based package compatibility
- Good out-of-the-box support for everyday desktop tasks

Website: https://zorin.com/os/
elementary OS
elementary OS is a design-focused distribution with a macOS-like interface called Pantheon. It emphasizes simplicity, consistency, and a curated app experience through its AppCenter.

elementary OS is a good fit when you want:
- A clean, visually polished desktop out of the box
- A curated app store with native applications
- A macOS-like workflow on Linux
Website: https://elementary.io/
Lightweight Linux Distros
These distributions are designed for older hardware or users who prefer a minimal, fast system.
Xubuntu
Xubuntu combines Ubuntu’s reliability with the Xfce desktop environment, offering a good balance between performance and features. It is lighter than standard Ubuntu while remaining full-featured for daily desktop use.
Xubuntu is a practical choice when you need:
- Better performance on older hardware
- A traditional desktop workflow
- Ubuntu repositories and long-term support options

Website: https://xubuntu.org/
Lubuntu
Lubuntu uses the LXQt desktop environment, making it one of the lightest Ubuntu-based distributions available. It is designed for very old or resource-constrained hardware where even Xfce feels heavy.

Lubuntu works well when you need:
- Minimal memory and CPU usage
- A functional desktop on very old hardware
- Access to Ubuntu repositories and LTS support
Website: https://lubuntu.me/
Linux Distros for Advanced Users
These distributions offer more control and customization but require technical knowledge to set up and maintain.
Arch Linux
Arch Linux follows a “do-it-yourself” philosophy, providing a minimal base system that users build according to their needs. It uses a rolling release model, meaning you always have the latest software without major version upgrades.
Key features:
- Pacman package manager with access to vast repositories
- Arch User Repository (AUR) for community packages
- Excellent documentation in the Arch Wiki
- Complete control over every aspect of the system

Website: https://archlinux.org/
EndeavourOS
EndeavourOS is an Arch-based distribution that keeps the Arch philosophy while simplifying installation and initial setup. It is popular among users who want a near-Arch experience without doing a fully manual install.
EndeavourOS gives you:
- Rolling release updates
- Access to Arch repositories and AUR packages
- A cleaner onboarding path than a base Arch install

Website: https://endeavouros.com/
Fedora
Fedora is a cutting-edge distribution sponsored by Red Hat. It showcases the latest open-source technologies while maintaining stability, making it popular among developers and system administrators.

Fedora editions include:
- Fedora Workstation — Desktop with GNOME
- Fedora Server — For server deployments
- Fedora Silverblue — Immutable desktop OS
- Fedora Spins — Alternative desktops (KDE, Xfce, etc.)
Many Red Hat technologies debut in Fedora before reaching RHEL, making it ideal for learning enterprise Linux.
Website: https://fedoraproject.org/
openSUSE
openSUSE is a community-driven distribution known for its stability and powerful administration tools. It offers two main variants:
- openSUSE Leap — Regular releases based on SUSE Linux Enterprise
- openSUSE Tumbleweed — Rolling release with the latest packages
The YaST (Yet another Setup Tool) configuration utility makes system administration straightforward, handling everything from software installation to network configuration.

Website: https://www.opensuse.org/
Linux Distros for Gaming
Gaming-focused distributions prioritize current graphics stacks, controller support, and compatibility with modern Steam and Proton workflows.
Bazzite
Bazzite is an immutable Fedora-based desktop optimized for gaming and handheld devices. It ships with gaming-focused defaults and integrates well with Steam, Proton, and modern GPU drivers.
Bazzite is ideal when you want:
- A Steam-first gaming setup
- Reliable rollback and update behavior from an immutable base
- A distro tuned for gaming PCs and handheld hardware

Website: https://bazzite.gg/
Linux Distros for Servers
These distributions are optimized for stability, security, and long-term support in server environments.
Debian
Debian is one of the oldest and most influential Linux distributions. Known for its rock-solid stability and rigorous testing process, it serves as the foundation for Ubuntu, Linux Mint, Kali Linux, and many other distributions.

Debian offers three release channels:
- Stable — Thoroughly tested, ideal for production servers
- Testing — Upcoming stable release with newer packages
- Unstable (Sid) — Rolling release with the latest software
With over 59,000 packages in its repositories, Debian supports more hardware architectures than any other Linux distribution.
Website: https://www.debian.org/
Red Hat Enterprise Linux (RHEL)
RHEL is the industry standard for enterprise Linux deployments. It offers:
- 10-year support lifecycle
- Certified hardware and software compatibility
- Red Hat Insights for predictive analytics
- Professional support from Red Hat
RHEL runs on multiple architectures including x86_64, ARM64, IBM Power, and IBM Z.
Website: https://www.redhat.com/
Rocky Linux
After CentOS shifted to CentOS Stream, Rocky Linux emerged as a community-driven RHEL-compatible distribution. Founded by one of the original CentOS creators, it provides 1:1 binary compatibility with RHEL.

Rocky Linux is ideal for:
- Organizations previously using CentOS
- Production servers requiring stability
- Anyone needing RHEL compatibility without the cost
Website: https://rockylinux.org/
Ubuntu Server
Ubuntu Server is widely used for cloud deployments and containerized workloads. It powers a significant portion of public cloud instances on AWS, Google Cloud, and Azure.
Features include:
- Regular and LTS releases
- Excellent container and Kubernetes support
- Ubuntu Pro for extended security maintenance
- Snap packages for easy application deployment
Website: https://ubuntu.com/server
SUSE Linux Enterprise Server (SLES)
SUSE Linux Enterprise Server is designed for mission-critical workloads. It excels in:
- SAP HANA deployments
- High-performance computing
- Mainframe environments
- Edge computing
SLES offers a common codebase across different environments, simplifying workload migration.
Website: https://www.suse.com/products/server/
Linux Distros for Security and Privacy
These distributions focus on security testing, anonymity, and privacy protection.
Kali Linux
Kali Linux is the industry-standard platform for penetration testing and security research. Maintained by Offensive Security, it includes hundreds of security tools preinstalled.
Common use cases:
- Penetration testing
- Security auditing
- Digital forensics
- Reverse engineering

Website: https://www.kali.org/
Tails
Tails (The Amnesic Incognito Live System) is a portable operating system designed for privacy and anonymity. It runs from a USB drive and routes all traffic through the Tor network.
Key features:
- Leaves no trace on the host computer
- All connections go through Tor
- Built-in encryption tools
- Amnesic by design (forgets everything on shutdown)

Website: https://tails.net/
Qubes OS
Qubes OS takes a unique approach to security by isolating different activities in separate virtual machines called “qubes.” If one qube is compromised, others remain protected.
The Xen hypervisor runs directly on hardware, providing strong isolation between:
- Work applications
- Personal browsing
- Untrusted software
- Sensitive data
Website: https://www.qubes-os.org/
Parrot Security OS
Parrot Security is a Debian-based distribution for security testing, development, and privacy. It is lighter than Kali Linux and can serve as a daily driver.
Parrot offers several editions:
- Security Edition — Full security toolkit
- Home Edition — Privacy-focused daily use
- Cloud Edition — For cloud deployments
Website: https://parrotsec.org/
Getting Started
Once you have chosen a distro, the next steps are:
- Download the ISO from the official website
- Create a bootable USB drive — See our guide on creating a bootable Linux USB
- Try it live before installing (most distros support this)
- Install following the distro’s installation wizard
Quick Comparison
| Distro | Best For | Desktop | Package Manager | Based On |
|---|---|---|---|---|
| Ubuntu | Beginners | GNOME | APT | Debian |
| Linux Mint | Windows users | Cinnamon | APT | Ubuntu |
| Zorin OS | New Linux users | GNOME (Zorin desktop) | APT | Ubuntu |
| elementary OS | macOS-like experience | Pantheon | APT | Ubuntu |
| Fedora | Developers | GNOME | DNF | Independent |
| Debian | Stability/Servers | GNOME | APT | Independent |
| Arch Linux | Advanced users | Any | Pacman | Independent |
| EndeavourOS | Arch with easier setup | Xfce (default) | Pacman | Arch Linux |
| Pop!_OS | Gaming/Developers | COSMIC | APT | Ubuntu |
| Bazzite | Gaming | KDE/GNOME variants | RPM-OSTree | Fedora |
| Rocky Linux | Enterprise servers | None | DNF | RHEL |
| Xubuntu | Older hardware | Xfce | APT | Ubuntu |
| Lubuntu | Very old hardware | LXQt | APT | Ubuntu |
| Kali Linux | Security testing | Xfce | APT | Debian |
FAQ
Which Linux distro is best for beginners?
Ubuntu, Linux Mint, and Zorin OS are the best choices for beginners. Ubuntu has the largest community and most documentation, while Linux Mint and Zorin OS provide a familiar desktop experience.
Can I try a Linux distro without installing it?
Yes. Most distributions support “live booting” from a USB drive, allowing you to test the system without making any changes to your computer.
Is Linux free?
Most Linux distributions are completely free to download and use. Some enterprise distros like RHEL offer paid support subscriptions.
Can I run Windows software on Linux?
Many Windows applications run on Linux through Wine or Proton (for games via Steam). Native alternatives like LibreOffice, GIMP, and Firefox are also available.
What is a rolling release distro?
A rolling release distro (like Arch Linux or openSUSE Tumbleweed) delivers continuous updates instead of major version upgrades. You always have the latest software, but updates require more attention.
Conclusion
The best Linux distribution depends entirely on your needs and experience level. If you are new to Linux, start with Ubuntu, Linux Mint, or Zorin OS. If you want full control over your system, try Arch Linux, EndeavourOS, or Fedora. For gaming, Pop!_OS and Bazzite are strong options. For servers, Debian, Rocky Linux, Ubuntu Server, and RHEL are all solid choices. For security testing, Kali Linux and Parrot Security are the industry standards.
Most distributions are free to download and try. Create a bootable USB, test a few options, and find the one that fits your workflow.
If you have any questions, feel free to leave a comment below.
![]()
SCP Cheatsheet
Basic Syntax
Use this general form for scp commands.
| Command | Description |
|---|---|
scp SOURCE DEST
|
General scp syntax |
scp file.txt user@host:/path/ |
Copy local file to remote |
scp user@host:/path/file.txt . |
Copy remote file to current directory |
scp user@host:/path/file.txt /local/path/ |
Copy remote file to local directory |
Upload Files
Copy local files to a remote host.
| Command | Description |
|---|---|
scp file.txt user@host:/tmp/ |
Upload one file |
scp file1 file2 user@host:/tmp/ |
Upload multiple files |
scp *.log user@host:/var/log/archive/ |
Upload matching files |
scp -p file.txt user@host:/tmp/ |
Preserve modification times and mode |
Download Files
Copy files from a remote host to your local system.
| Command | Description |
|---|---|
scp user@host:/tmp/file.txt . |
Download to current directory |
scp user@host:/tmp/file.txt ~/Downloads/ |
Download to specific directory |
scp user@host:'/var/log/*.log' . |
Download remote wildcard (quoted) |
scp user@host:/tmp/file.txt ./new-name.txt |
Download and rename locally |
Copy Directories
Use -r for recursive directory transfers.
| Command | Description |
|---|---|
scp -r dir/ user@host:/tmp/ |
Upload directory recursively |
scp -r user@host:/var/www/ ./backup/ |
Download directory recursively |
scp -r dir1 dir2 user@host:/tmp/ |
Upload multiple directories |
scp -rp project/ user@host:/srv/ |
Recursive copy and preserve attributes |
Ports, Keys, and Identity
Connect with custom SSH settings.
| Command | Description |
|---|---|
scp -P 2222 file.txt user@host:/tmp/ |
Use custom SSH port |
scp -i ~/.ssh/id_ed25519 file.txt user@host:/tmp/ |
Use specific private key |
scp -o IdentityFile=~/.ssh/id_ed25519 file.txt user@host:/tmp/ |
Set key with -o option |
scp -o StrictHostKeyChecking=yes file.txt user@host:/tmp/ |
Enforce host key verification |
Performance and Reliability
Tune speed, verbosity, and resilience.
| Command | Description |
|---|---|
scp -C large-file.iso user@host:/tmp/ |
Enable compression |
scp -l 8000 file.txt user@host:/tmp/ |
Limit bandwidth (Kbit/s) |
scp -v file.txt user@host:/tmp/ |
Verbose output for debugging |
scp -q file.txt user@host:/tmp/ |
Quiet mode |
scp -o ConnectTimeout=10 file.txt user@host:/tmp/ |
Set connection timeout |
Remote to Remote Copy
Transfer files between two remote hosts.
| Command | Description |
|---|---|
scp user1@host1:/path/file user2@host2:/path/ |
Copy between remote hosts |
scp -3 user1@host1:/path/file user2@host2:/path/ |
Route transfer through local host |
scp -P 2222 user1@host1:/path/file user2@host2:/path/ |
Use custom port (applies to both hosts) |
Common Patterns
Frequently used command combinations.
| Command | Description |
|---|---|
scp -r ./site user@host:/var/www/ |
Deploy static site files |
scp -i ~/.ssh/id_ed25519 -P 2222 backup.sql user@host:/tmp/ |
Upload with key and custom port |
scp user@host:/etc/nginx/nginx.conf ./ |
Pull config for review |
scp -rp ./configs user@host:/etc/myapp/ |
Copy configs and keep metadata |
Troubleshooting
| Check | Command |
|---|---|
| Permission denied | Verify user has write access to the destination path |
Host key verification failed |
ssh-keygen -R hostname to remove old key, then retry |
| Connection refused on custom port |
scp -P PORT file user@host:/path/ (uppercase -P) |
| Transfer stalls or times out | scp -o ConnectTimeout=10 -o ServerAliveInterval=15 file user@host:/path/ |
Not a regular file error |
Add -r for directories: scp -r dir/ user@host:/path/
|
Protocol error on OpenSSH 9.0+ |
scp -O file user@host:/path/ to use legacy SCP protocol |
| Debug connection issues |
scp -v file user@host:/path/ for verbose SSH output |
Related Guides
Use these articles for detailed file transfer and SSH workflows.
| Guide | Description |
|---|---|
How to Use SCP Command to Securely Transfer Files
|
Full scp guide with practical examples |
SSH Command in Linux
|
SSH options, authentication, and connection examples |
How to Use Linux SFTP Command to Transfer Files
|
Interactive secure file transfer over SSH |
How to Use Rsync for Local and Remote Data Transfer
|
Incremental sync and directory transfer |
MOVA携全球智慧全生态产品登陆2026年央视春晚
2026春节档总票房破5亿
WebMCP 时代:在浏览器中释放 AI 的工作能力
随着 AI Agent 的广泛应用,传统的 Web 自动化与 Web 交互模式正在迎来根本性变化。WebMCP 是一个未来派的技术提案,它不仅改变了 AI 访问 Web 的方式,还为 AI 与前端应用之间建立起了 协议级的交互通道。本文从WebMCP架构分层解析这项技术及其工程意义。
面对 GEO 与 Agent 应用逐步弱化浏览器入口价值的趋势,浏览器厂商必须主动跟进,通过技术升级与生态重构来守住自身核心阵地。
一、WebMCP 是什么?
WebMCP(Web Model Context Protocol)是一种 客户端 JavaScript 接口规范,允许 Web 应用以结构化、可调用的形式向 AI Agent 暴露其功能(tools)。WebMCP 的核心目标是:
让 Web 应用拥有一组可被 AI Agents 调用的工具函数,避免 AI 通过截图 + DOM 模拟点击这样的低效方式去理解和操作页面。
WebMCP 允许开发者将 Web 应用的功能“以工具形式”公开,供 Agents、浏览器辅助技术等访问。页面将现有的 JavaScript 逻辑包装成与自然语言输入对应的“tools”,AI Agents 可以直接调用它们,而不是模拟用户行为。
换句话说:
WebMCP 是前端版的 MCP 工具协议:它让 Web 应用自己变成一个能被 AI 调用的、语义明确的接口服务器。
二、核心理念:让 Web App 成为 AI 可调用的工具集
WebMCP 的核心机制由三部分构成:
1. 工具注册与调用
页面通过 navigator.modelContext.registerTool() 或类似 API 把自己内部的 JS 功能(如搜索、筛选、提交、获取数据)注册为可调用的工具(tools)。这些 tools 带有:
- 名称
- 自然语言描述
- 输入/输出结构定义(JSON schema)
Agents 识别到这些 tools 后,就可以直接调用,而不需要重新解析 DOM。
2. 语义描述与结构化调用
WebMCP 的工具接口是结构化的,而不是 UI 操作序列:
filterTemplates(description: string) → UI 更新
getDresses(size, color) → 返回商品列表
orderPrints(copies, page_size, page_finish) → 下单
这比视觉模拟更可靠、更高效。
3. 人机协作而非全自动
WebMCP 不是为了让 AI 完全替代用户,而是为了让用户和 AI 协同完成任务。它强调:
- 共享上下文
- AI 与用户同时可见的执行状态
- 用户有权审查/接受 AI 的动作
不像纯后台机器人,WebMCP 是“在 UI 里协作”的模型。
三、基于 Browser + WebMCP 的 Agent 驱动架构
![]()
这张图展示了 WebMCP 在浏览器场景下的设计思路:
1)AI Platform(大模型)
- 负责理解用户意图
- 识别需要调用的 WebMCP 工具
- 并发送工具调用指令
2)Browser-integrated Agent(浏览器 Agent)
这个组件负责:
- 将 LLM 指令转为工具调用
- 与 WebMCP JS 进行交互
- 在当前网页上下文执行注册的 JavaScript 工具代码
它类似一个“中间控制层”,连接了一端的 AI 推理和另一端的前端工具。
3)WebMCP JS
运行在页面内部的代理代码:
- 负责注册和执行 tools
- 与 Agent 进行通信
- 在正常 Web 环境中执行定义好的工具函数
这意味着:
页面本身是一个 MCP Server ,但运行在客户端。
4)Third-Party HTTP 服务
仍然是页面自身依赖的服务端业务逻辑:
- 通常的业务 API
- 页面使用这些 API 完成任务
- 也可以在工具内部直接调用
核心意义总结
这张图的核心思想是:
在浏览器里增强 Web 应用,让 AI Agent 能调用前端定义好的交互能力,而不是模拟用户行为。
它是一个 “前端即服务的 MCP Server” 模式。
四、为什么这是一种范式级的变革?
1)结构良好的能力暴露
传统 Agents 访问网站靠:截图 +Vision 识别 + DOM 模拟
这是低效、易错且不稳定的。
WebMCP 直接告诉 AI:
你的工具是
filterTemplates(criteria)
不要再猜测页面结构
这意味着 AI 不再“模拟人”,而是“直接调用真实功能”。
2)前端逻辑复用
WebMCP 允许:
- 复用现有前端逻辑
- 业务功能无需写额外后端 API
- 使用现有组件构建工具
3)提升安全和用户控制
WebMCP 需要用户授权,且工具执行会明显提示用户,这符合“人机协作”设计,还能避免:
- 未授权数据泄露
- 无感知的全自动操作
这比无 UI 后端自动化更可控。
五、典型使用场景
使用WebMCP订奶茶
你说:
帮我找一家评分高、离我近一点的奶茶店,最好 20 元以内。
当前页面注册了一个 WebMCP 工具:
/**
* 根据自然语言描述搜索奶茶店
*
* description - 用户对店铺的需求描述(自然语言)
* max_price - 人均价格上限(单位:人民币)
*/
searchMilkTeaShops(description, max_price)
浏览器Agent判断这个工具最符合用户意图,于是调用:
searchMilkTeaShops(
"评分高,距离近,出餐快",
20
)
页面内部会把自然语言转为已有筛选条件,例如:
- 评分 ≥ 4.5
- 距离 ≤ 2km
- 人均 ≤ 20 元
然后刷新页面,只展示符合条件的店铺。
浏览器Agent回复:
我帮你筛选了几家评分高、距离近、价格合适的奶茶店,要不要限定品牌?
你说:
优先考虑喜茶或者蜜雪冰城,少糖。
页面还注册了一个工具:
/**
* 在当前结果中按品牌和口味偏好筛选
*
* brands - 品牌数组,例如 ["喜茶", "蜜雪冰城"]
* sweetness - 甜度偏好,例如 ["正常糖", "少糖", "无糖"]
*/
refineShops(brands, sweetness)
浏览器Agent调用:
refineShops(
["喜茶", "蜜雪冰城"],
["少糖"]
)
页面更新,只展示符合条件的店铺和推荐饮品。
你点进一家店铺页面。页面加载后注册了新的工具:
/**
* 根据口味偏好推荐饮品
*
* description - 对饮品口味的自然语言描述
* max_price - 单杯价格上限
*/
recommendDrinks(description, max_price)
你说:
给我推荐一杯清爽一点的水果茶,不要太甜,20 元以内。
调用:
recommendDrinks(
"清爽水果茶,少糖,不腻",
20
)
页面自动高亮并展示 2–3 款符合条件的饮品。
你选中其中一杯。
页面注册了下单相关工具:
/**
* 将指定饮品加入购物车
*
* product_id - 饮品 ID
* options - 规格选项,例如甜度、冰量
*/
addDrinkToCart(product_id, options)
/**
* 提交订单
*/
checkout()
浏览器Agent调用:
addDrinkToCart(
5567890,
{
sweetness: "少糖",
ice: "少冰"
}
)
页面提示“已加入购物车”。
浏览器Agent在界面上显示一个提示按钮:
<去结算>
你点击。
浏览器Agent调用:
checkout()
页面跳转到确认订单页,你确认地址并完成支付。
整个过程中,浏览器Agent并没有去“点击筛选按钮”或“模拟输入搜索框”,而是直接调用页面注册的结构化工具函数。页面把原有的搜索、筛选、推荐、加购、下单逻辑封装成 WebMCP 工具,让 AI 可以用更稳定、更语义化的方式操作。
这就是 WebMCP 的核心理念:
不是让 AI 像人一样操作页面,而是让页面主动把能力暴露出来,供 AI 调用。
六、demo
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>WebMCP Article Demo</title>
<style>
body { max-width: 800px; margin: auto; font-family: sans-serif; }
article { line-height: 1.6; }
</style>
</head>
<body>
<h1>WebMCP Article Demo</h1>
<article id="main-article">
<h2>示例文章标题</h2>
<p>这是第一段正文内容。</p>
<p>这是第二段正文内容。</p>
<p>这是第三段正文内容。</p>
</article>
<script>
function extractArticleText() {
// 优先找 article 标签
let article = document.querySelector("article");
// 如果没有 article,就尝试主内容容器
if (!article) {
article = document.querySelector("main") ||
document.querySelector("#content") ||
document.body;
}
// 清除 script/style
const clone = article.cloneNode(true);
clone.querySelectorAll("script, style, nav, footer").forEach(el => el.remove());
const text = clone.innerText.trim();
return {
title: document.title,
url: location.href,
content: text,
length: text.length
};
}
if (navigator.modelContext?.registerTool) {
console.log("[WebMCP] registering getArticleContent");
navigator.modelContext.registerTool({
name: "getArticleContent",
description: "获取当前页面的文章正文内容",
inputSchema: {
type: "object",
properties: {}
},
async execute() {
const data = extractArticleText();
return {
content: [
{
type: "text",
text: JSON.stringify(data, null, 2)
}
]
};
}
});
console.log("[WebMCP] tool registered");
} else {
console.warn("WebMCP not supported in this browser.");
}
</script>
</body>
</html>
国际贵金属继续走低:国内多家金饰价格回落 约1530元/克
阿里发布千问3.5,性能媲美Gemini 3, Token价格仅为其1/18
春节假期首日上海接待游客256万人次,同比增近40%
小鹏为什么这么“烦”L3
出品|虎嗅汽车组
作者|邢书博
头图|视觉中国
小鹏被L3逼急了。
年前何小鹏在不同场合都在说一件事,小鹏乃至中美两国,都会“跳过L3直接上L4。”
不仅仅是小鹏一家。由于L3在当前法律、安规等方面存在现实限制,多家车企也正在被掣肘。宣布今年3月上市的岚图泰山黑武士号称“中国首款量产 L3 级 SUV”;吉利、广汽也有新品,无一例外号称搭载“L3智驾”。然而——
“(L3级自动驾驶)硬件、软件都具备,就差法规允许。”岚图相关负责人表示。
数据显示,2025年中国自动驾驶领域总投入预计达700-750亿元,同比增长40%。但整个中国汽车行业利润率只有4.1%,处于历史低点。利润增长赶不上研发投入增长,尤其对于还在亏损中的车企来说,L3还是L4?曾经是两者都要、循序渐进,现在成了二选一的选择题。
但L3真的那么容易被跳过吗?
L3落地难,小鹏不想等
小鹏GX现在正在广州大马路上自己刹车加速打方向盘。没有安全员,真正的无人驾驶。
是的。小鹏在2月刚刚启动了L4级别道路测试。这款车本地算力3000TOPS,超过了刚刚宣发的理想新L9的2560TOPS。
![]()
这么高的算力只用来做辅助驾驶帮人类倒车入库有点浪费,小鹏索性直接上L4。
小鹏GX采用纯视觉方案,依靠强大算力计算路况,技术路线类似于特斯拉FSD。 不过后者已在美开启robotaxi试运营服务,预计26年底覆盖美国15个城市。
国内L4玩家中,小马智行实现“单车盈利”,萝卜快跑在武汉、亦庄两地试点扭亏为盈。文远知行在海外也取得了不错成绩。虽然绝对数量上不占优势,但证明了L4商用是可行的,是能赚到钱的。
![]()
实拍亦庄自动驾驶出租车
“现在L3的适用范围(ODD)过窄,无法快速普及。”国家新能源创新中心一位测试工程师表示,当前L3测试适用范围只是集中在市区跟车儒行和高速规定线路行驶,“更多适用范围需要等待法律法规扩充。”
也就是说,无论厂商在广告中告诉消费者他们的L3如何智能,目前能上路测试的唯二两款路试车,深蓝和极狐,也只有这两个场景落地。而这两个场景,哪怕是仅售15万的比亚迪也能完成得很好,不需要太高算力。厂商们准备的数千算力超级芯片没了用武之地,如何说服消费者花更多溢价购买?
答案或许是更安全。
“L3相比L2,多了更多安全冗余。”北汽一位路试人员表示,L3必须具备相应的安全冗余,比如双芯片并行。当一个芯片“死机”,另一个芯片也能接管车辆。“刹车转向也都是双传感器、双ECU、双电源的设计。”
简单理解,L3车辆,把车拆了还可以再拼出一台车辆。重要零部件都是多冗余设计。之所以如此,主要是为了合规,让出事概率降低,但成本也一定会水涨船高,遇到特殊情况,也依然需要有人类接管。
![]()
实拍L3路试车队
消费者是否愿意为了安全冗余付费是个未知数,否则沃尔沃应该是全球销量第一。
何况安全不一定要通过智驾,通过提升车辆刚性等工程设计能力和机械素质,也能提高车辆安全。智驾的海量投入如果不能转化为消费者可感知的获得感,就算法律将来允许L3普及,厂商也该讲新故事去吸引消费者。
显而易见,现在L3的故事并不性感,所以小鹏才急切地用L4来叙事。
“自动驾驶行业将跳过L3,直接从L2迈向L4级全自动驾驶”,何小鹏认为,L3的本质是“过渡性技术陷阱”,为规避风险而堆砌的大量规则,使其沦为“看似安全却限制进化”的存在。与其如此,不如集中攻克L4难题,以真正的技术创新来解决技术发展中的问题。
何小鹏有这个行业判断,理由有二。
一个是L4技术实现有了样板,一个是L4商业试点已有成效。
首先是纯视觉技术样板特斯拉。
作为特斯拉最好的学生之一,何小鹏在去硅谷体验过特斯拉新模型之后,惊讶的发现“特斯拉V14相同硬件、相同算力下实现的能力跃升,完全是另一重境界。没亲身体验过,就无法真切感受到一个全新时代即将开启的震撼。”
何小鹏所说的“能力跃迁”,指的是特斯拉FSD在软硬件几乎一致的情况,依靠大模型能力升级,可以让L2级别智驾直接具备L4的能力。
何小鹏着急了。当前L3迟迟无法大规模落地,小鹏销量在今年1月环比下跌46%。对于还在亏损中的小鹏汽车来说,与其等前途未卜的L3智驾,不如直接一步到位去把技术积累转向L4,才是更务实的办法。
第二个是L4商业化试点较为成熟。
事实上,在矿山机械、地铁等固定路线上,自动驾驶比例正在逐步提升。包括长安、蔚来在内的9家车企也早已拿到L4的试点牌照。robotaxi稳定运行,规模增长。另据一份研究报告显示,到2035年,商用自动驾驶车辆运力占比将超过80%,网约车岗位减少60%。
![]()
可以这样说,至少在商用车领域,L4级别无人驾驶自动驾驶不是科幻,而是有明确政策支持、商业化闭环、多家试点的进行时。
“无论是在中国还是美国,当前L4的推进速度都非常快。同时在2025年下半年,联合国交通法规对L2、L3的推进节奏也明显加快,尤其是L2的全面落地。”何小鹏说。
除了政策限制正在有序解除,促使整车厂转向L4的现实推手是供应链。硬件层面,激光雷达成本大幅下降、高算力芯片规模化应用,特别是大模型让智驾研发提速,厂商们发力L4的时机已经成熟。
看起来,还需要人类接管的L3智驾确实落后了。不过我们需要问——
跳过L3容易,就能上L4?
直接跳过L3显然没那么容易。
首先是数据积累问题。
“真正的L4需依靠L2++城市NOA大规模量产积累数据。当L2++覆盖绝大部分场景,用户在边界外才接管,这种体验本身就符合L3的描述。” 地平线首席生态官徐健说。
简单讲,要做L3,需要先做L2积累数据。那么要做L4,也一样依赖L3的数据。技术上他们是一脉相承的,不存在一口就能吃个胖子的技术路线。
其次还是老生常谈的合规问题。
“现行SAE分级是法律和责任的划分,非技术鸿沟。L3本质上是限定ODD运行范围的L4,因此跳过在技术上是个伪命题。“在公众号“电厂”的一篇文章中,原博世车载产品线负责人易强认为,L3是“缩小范围的L4”,区别主要是在法律法规上。法律人为限定了L3的使用范围。这才是当下L3和L4最大的不同。
L3因为是人车共驾,责任划分、保险赔付等方方面面都需要考虑到。而L4不存在这个问题,出了事就是厂家负责。因为责任明晰,所以落地争议也较少,这就是现状。但是只要法律层面解决L3的责任划分问题,大规模普及也并不是遥遥无期。
最后,L4落地条件并不成熟。
虽然小鹏L4已上路提速,但也不是一帆风顺。
小鹏原计划在2026年春节前推出的VLA2.0,最终决定延迟到3月。
按照小鹏的技术解读,称传统的VLA需要先把视觉信号翻译成机器语言,才能让机器识别。VLA2.0则省去了翻译这一过程,使得智驾链路缩短,当然技术难度也可想而知。
引用汽车媒体知瞭汽车评论里的话,“GX押注纯视觉。摄像头加图灵芯片,照明良好的高架没压力,广州测试视频里车流穿行也确实顺。但暴雨、浓雾、进隧道那一秒的白平衡切换、对面远光直射时的逆光——这些工况下,纯视觉的感知冗余天生低于激光雷达方案。“
有汽车媒体分析指出,尽管小鹏想要复刻特斯拉的技术路线,但特斯拉有无数影子模型提前给大模型喂了很多数据,因此应对极端天气有优势。所以才敢用纯视觉挑战L4。
小鹏如果只是为了控制成本不用激光雷达而用纯视觉,仅仅依靠VLA加世界模型推理训练L4,要么技术上有重大突破可以弥补数据不足的弱点,要么就只能停留在技术验证阶段的简单尝试。
真要拿这套方案去赌消费者是否认可,还是要看最后的路测报告,否则很难服众。
要知道现行的L4落地案例,无论小马智行还是萝卜快跑,都是车路云一体化交通中的一环。无论北京亦庄还是湖北武汉,在L4测试路段你会看到无数挂着激光雷达的路灯和红绿灯。
自动驾驶汽车每时每刻都在和整个城市的路网交互,数据计算是云端的服务器在拼命,而不是指望车内为数不多的摄像头和算力有限的车载芯片,无论算力还是雷达数量,车路云是单车智能的成百上千倍。
那么效果如何呢?
当我满心欢喜体验了亦庄的L4无人出租车,把目的地设置到地铁进站口,但它最后还是把我扔到了天桥对面,害得我最后多走几百米。
结论就是,技术上L3当然不能被跳过。但商业上,车企在资源分配上,可以选择发力点L3还是L4。他们在赌,看谁先等来政策松绑。
最尴尬的还是我们广大消费者。当你作为新手还在驾校为自动挡还是手动挡如何选择而头疼的时候,当你还没有体验过拉线油门、手刹漂移、小狗撒尿的驾驶乐趣的时候,厂商们却千方百计不想让你自己开车。
失去驾驶乐趣,是AI时代汽车消费者最大的悲哀。
下载虎嗅APP,第一时间获取深度独到的商业科技资讯,连接更多创新人群与线下活动
高盛:日本国债收益率曲线不再反映国家风险溢价
追觅AURORA手机亮相央视2026马年春晚官方节目
丹麦银行:芬兰-德国债券收益率差预计将收窄
2026 技术风向:为什么在 AI 时代,PostgreSQL 彻底成为了全栈工程师的首选数据库
在 Web 开发的黄金十年里,LAMP 架构(Linux, Apache, MySQL, PHP)奠定了 MySQL 不可撼动的霸主地位。那是互联网的草莽时代,业务逻辑相对简单,读多写少,开发者对数据库的诉求仅仅是“稳定存储”。
然而,时间来到 2026 年。随着 Node.js 与 TypeScript 生态的统治级渗透,以 Next.js、NestJS 为代表的现代全栈框架(Modern Stack)彻底改变了应用开发的范式。在这个由 Serverless、Edge Computing 和 AI 驱动的新时代,MySQL 逐渐显得力不从心。与此同时,PostgreSQL(下文简称 PG)凭借其惊人的演进速度,成为了全栈工程师事实上的“默认选项”。
这不仅仅是技术偏好的转移,更是架构复杂性倒逼下的必然选择。
建筑学的视角:预制板房 vs 模块化摩天大楼
要理解为什么 PG 在现代架构中胜出,我们必须从底层设计哲学说起。如果把数据库比作建筑:
MySQL 像是一栋“预制板搭建的经济适用房”。
它结构紧凑,开箱即用,对于标准的居住需求(基础 CRUD、简单事务)来说,它表现优异且成本低廉。但是,它的结构是固化的。如果你想在顶楼加建一个停机坪(向量搜索),或者把承重墙打通做成开放式空间(非结构化数据存储),你会发现极其困难。它的存储引擎(InnoDB)虽然优秀,但与上层逻辑耦合较紧,扩展性受限。
PostgreSQL 像是一座“钢结构模块化摩天大楼”。
它的底座(存储与事务引擎)极其坚固,严格遵循 SQL 标准与 ACID 原则。但它最核心的竞争力在于其可插拔的模块化设计(Extensibility) 。
- 你需要处理地理空间数据?插入 PostGIS 模块,它立刻变成专业的 GIS 数据库。
- 你需要做高频时序分析?插入 TimescaleDB 模块。
- 你需要 AI 向量搜索?插入 pgvector 模块。
PG 不仅仅是一个数据库,它是一个数据平台内核。这种“无限生长”的能力,完美契合了 2026 年复杂多变的业务需求。
全栈工程师偏爱 PG 的三大理由
在 Next.js/NestJS 的全栈生态中,Prisma 和 Drizzle ORM 的流行进一步抹平了数据库的方言差异,让开发者更能关注数据库的功能特性。以下是 PG 胜出的三个关键维度。
1. JSONB:终结 NoSQL 的伪需求
在电商系统中,我们经常面临一个棘手的问题:商品(SKU)属性的非结构化。
- 衣服:颜色、尺码、材质。
- 手机:屏幕分辨率、CPU型号、内存大小。
- 图书:作者、ISBN、出版社。
在 MySQL 时代,为了处理这些动态字段,开发者通常有两种痛苦的选择:要么设计极其复杂的 EAV(实体-属性-值)模型,要么引入 MongoDB 专门存储商品详情,导致需要维护两个数据库,并在应用层处理数据同步(Distributed Transaction 问题)。
MySQL 虽然支持 JSON 类型,但在索引机制和查询性能上一直存在短板。
PG 的解法是 JSONB(Binary JSON)。
PG 不仅仅是将 JSON 作为文本存储,而是在写入时将其解析为二进制格式。这意味着:
- 解析速度极快:读取时无需重新解析。
- 强大的索引支持:你可以利用 GIN(Generalized Inverted Index,通用倒排索引)对 JSON 内部的任意字段建立索引。
场景示例:
不需要引入 MongoDB,你可以直接在 PG 中查询:“查找所有红色且内存大于 8GB 的手机”。
SQL
-- 利用 @> 操作符利用 GIN 索引进行极速查询
SELECT * FROM products
WHERE attributes @> '{"color": "red"}'
AND (attributes->>'ram')::int > 8;
对于全栈工程师而言,这意味着架构的极度简化:One Database, All Data Types.
2. pgvector:AI 时代的“降维打击”
AI 应用的爆发,特别是 RAG(检索增强生成)技术的普及,催生了向量数据库(Vector Database)的需求。
传统的 AI 架构通常是割裂的:
- MySQL:存储用户、订单等元数据。
- Pinecone/Milvus:存储向量数据(Embeddings)。
- Redis:做缓存。
这种架构对全栈团队简直是噩梦。你需要维护三套基础设施,处理数据一致性,还要编写复杂的胶水代码来聚合查询结果。
PG 的解法是 pgvector 插件。
通过安装这个插件,PG 瞬间具备了存储高维向量和进行相似度搜索(Cosine Similarity, L2 Distance)的能力。更重要的是,它支持 HNSW(Hierarchical Navigable Small World)索引,查询性能足以应对绝大多数生产场景。
实战场景:AI 电商系统的“以图搜图”
用户上传一张图片,系统需要推荐相似商品,但同时必须满足“价格低于 1000 元”且“有库存”的硬性条件。
在 PG 中,这只是一个 SQL 查询:
SQL
SELECT id, name, price, attributes
FROM products
WHERE stock > 0 -- 关系型过滤
AND price < 1000 -- 关系型过滤
ORDER BY embedding <=> $1 -- 向量相似度排序($1 为用户上传图片的向量)
LIMIT 10;
这种混合查询(Hybrid Search)能力是 PG 对专用向量数据库的降维打击。它消除了数据搬运的成本,保证了事务的一致性(你肯定不希望搜出来的商品其实已经下架了)。
3. 生态与插件:长期主义的选择
MySQL 的功能迭代主要依赖于 Oracle 官方的发版节奏。而 PG 的插件机制允许社区在不修改核心代码的前提下扩展数据库功能。
在 Node.js 全栈项目中,我们经常会用到:
- pg_cron:直接在数据库层面运行定时任务,无需在 NestJS 里写 cron job。
- PostGIS:处理配送范围、地理围栏,这是目前地球上最强大的开源 GIS 引擎。
- zombodb:将 Elasticsearch 的搜索能力集成到 PG 索引中。
对于全栈工程师来说,PG 就像是一个拥有海量 npm 包的运行时环境,你总能找到解决特定问题的插件。
实战架构图谱:构建 Next-Gen AI 电商
基于上述分析,一个典型的 2026 年现代化全栈电商系统的后端架构可以被压缩得极其精简。我们不再需要“全家桶”式的中间件,一个 PostgreSQL 集群足矣。
架构设计
- 技术栈:Next.js (App Router) + Prisma ORM + PostgreSQL.
- 数据模型设计:
TypeScript
// Prisma Schema 示例
model Product {
id Int @id @default(autoincrement())
name String
price Decimal
stock Int
// 核心特性 1: 结构化数据与非结构化数据同表
attributes Json // 存储颜色、尺码等动态属性
// 核心特性 2: 原生向量支持 (通过 Prisma Unsupported 类型)
embedding Unsupported("vector(1536)")
// 核心特性 3: 强一致性关系
orders OrderItem[]
@@index([attributes(ops: JsonbPathOps)], type: Gin) // GIN 索引加速 JSON 查询
@@index([embedding], type: Hnsw) // HNSW 索引加速向量搜索
}
业务流转
- 商品录入:结构化字段存入 Column,非结构化规格存入 attributes (JSONB),同时调用 OpenAI API 生成 Embedding 存入 embedding 字段。
- 交易环节:利用 PG 成熟的 MVCC(多版本并发控制)和 ACID 事务处理高并发订单写入,无需担心锁竞争(相比 MySQL 的 Gap Lock,PG 在高并发写入下往往表现更优)。
- 搜索推荐:利用 pgvector 实现基于语义或图片的推荐,同时结合 attributes 中的 JSON 字段进行精准过滤。
结论:Simplicity is Scalability(简单即是扩展)。少维护一个 MongoDB 和一个 Pinecone,意味着系统故障点减少了 66%,开发效率提升了 100%。
结语:数据库的终局
在 2026 年的今天,我们讨论 PostgreSQL 时,已经不再仅仅是在讨论一个关系型数据库(RDBMS)。
PostgreSQL 已经演变成了一个通用多模态数据平台(General-Purpose Multi-Model Data Platform) 。它既是关系型数据库,也是文档数据库,更是向量数据库和时序数据库。
对于追求效率与掌控力的全栈工程师而言,MySQL 依然是 Web 1.0/2.0 时代的丰碑,但在构建 AI 驱动的复杂应用时,PostgreSQL 提供了更广阔的自由度和更坚实的底层支撑。
拥抱 PostgreSQL,不仅是选择了一个数据库,更是选择了一种“做减法”的架构哲学。
石药集团:罗哌卡因长效注射液获批开展临床试验
拒绝“盲盒式”编程:规范驱动开发(SDD)如何重塑 AI 交付
前言
在过去的一年里,每一位尝试将 AI 引入生产环境的开发者,大概都经历过从“极度兴奋”到“极度疲惫”的心路历程。
我们惊叹于 LLM(大型语言模型)在几秒钟内生成数百行代码的能力,但随后便陷入了无休止的调试与修正。这种现象被形象地称为“盲盒式编程(Gacha Coding)”:输入一个模糊的提示词,就像投下一枚硬币,得到的结果可能是令人惊喜的 SSR(超级稀有)代码,但更多时候是无法维护的 N 卡(废代码)。
为了修正这些错误,我们被迫化身为“保姆”,在对话框中喋喋不休地纠正 AI 的变量命名、UI 样式和逻辑漏洞。最终我们发现,Debug AI 代码的时间甚至超过了自己手写的时间。
这种困境的根源在于:AI 拥有极强的编码能力(How),但它完全缺乏对业务边界、上下文约束和系统设计的理解(What)。
为了打破这一僵局,软件工程领域正在经历一场从“提示词工程(Prompt Engineering)”向“规范驱动开发(Spec-Driven Development, SDD)”的范式跃迁。
一、核心概念:什么是 SDD?
规范驱动开发(Specification-Driven Development, SDD)并非一个全新的概念,但在 AI 时代,它被赋予了全新的生命力。
在传统的软件开发模式中,代码是唯一的真理(Source of Truth) 。文档(PRD、API 文档)往往只是开发的参考,随着项目的迭代,文档与代码必然发生脱节,最终沦为具文。
而在 SDD 模式下,规范(Specification)成为了唯一的真理。
The Product Requirements Document (PRD) isn't a guide for implementation; it's the source that generates implementation.
这是一个根本性的认知反转:
-
传统模式:想法
→→文档(参考)
→→人脑翻译
→→代码(真理)。
-
SDD 模式:想法
→→规范(真理)
→→AI 翻译
→→代码(衍生品)。
在这种架构下,AI 不再是一个需要你时刻盯着的“副驾驶(Copilot)”,它晋升为一个高效的“编译器(Compiler)”或“引擎”。它读取自然语言编写的、结构严密的规范,并将其确定性地转化为可执行代码。
二、从“聊天”到“契约”:普通提示词 vs. SDD
许多开发者误以为 SDD 就是写更长的 Prompt,这是一种误解。Prompt Engineering 与 SDD 在本质上存在维度级的差异。
1. 提示词工程(Prompt Engineering)
- 本质:基于对话的口头指令。
- 特征:线性、碎片化、易遗忘上下文。
- 痛点:由于缺乏全局约束,AI 容易产生幻觉。每次对话都是一次独立的“抽卡”,结果高度随机。
- 维护性:极低。一旦业务逻辑变更,需要重新进行多轮对话,且难以保证不破坏原有功能。
2. 规范驱动开发(SDD)
- 本质:基于文档的工程合同。
- 特征:结构化、持久化、可版本控制。
- 优势:通过预先定义的数据结构、状态机和接口规范,锁定了 AI 的解空间。
- 维护性:高。修改业务逻辑只需修改规范文档,然后让 AI 重新生成代码。
为什么 SDD 现在才爆发?
在过去 20 年(如 MDA 模型驱动架构时期),我们一直试图用 UML 或 DSL 生成代码,但失败了。因为传统的转换器太僵化,无法处理模糊的自然语言。
现在的 LLM 跨越了一个关键门槛:能够准确理解复杂的逻辑上下文,并将自然语言规范可靠地转化为工作代码。 AI 填补了从“非形式化规范”到“形式化代码”之间缺失的拼图。
三、实战方法论:如何构建“虚拟流水线”
要落地 SDD,不能指望一句通用的指令。我们需要在 Prompt 中构建一个“虚拟团队”,让 AI 分阶段产出规范,最后再执行编码。
这是一个分层约束的过程:
第一步:虚拟产品经理(The PM)——产出 PRD
AI 需要首先明确业务的边界。不要直接让它写代码,而是让它生成一份包含以下内容的 PRD:
- 用户故事:谁在什么场景下解决什么问题。
- 异常流程:断网了怎么办?输入负数怎么办?数据为空怎么显示?
- 数据闭环:数据从哪里来,存到哪里去,如何流转。
第二步:虚拟设计师(The Designer)——产出设计规范
禁止 AI 随意发挥审美。需要通过规范文件(如 JSON 或 Markdown 表格)定义:
- Design Tokens:色板、间距、字号的原子化定义。
- 交互状态:Hover、Active、Disabled 状态下的具体表现。
- 组件规范:复用哪些现有的 UI 库组件,而非手写 CSS。
第三步:虚拟架构师(The Architect)——产出技术方案
这是保证代码可维护性的关键。在编码前,必须强制约定:
- 目录结构:明确 /utils、/components、/hooks 的职责划分。
- 技术栈约束:强制使用特定的库(如 Tailwind, MobX, React Query)。
- 命名规范:文件命名、变量命名的具体规则。
第四步:执行者(The Coder)——执行合同
当且仅当上述三份文档(Spec)确认无误后,我们才向 AI 下达最终指令:
“作为资深工程师,请阅读上述 PRD、设计规范和技术方案,严格按照规范实现该系统。”
此时,AI 生成的代码将不再是随机的“盲盒”,而是严格遵循合同的工业级交付物。
四、角色重塑:从“码农”到“数字立法者”
随着 SDD 的普及,软件工程师的职业内核正在发生剧变。
生成代码的边际成本正在趋近于零。如果一个功能的实现只需要几秒钟,那么“写代码”本身就不再是核心竞争力。核心竞争力转移到了“定义问题”和“制定规则”上。
未来的开发者将进化为“意图工程师(Intent Engineer)”或“数字世界的立法者(Legislator)”。
- 立法(Legislating) :你需要具备极强的结构化思维,能够将模糊的业务需求拆解为严密、无歧义的 Spec 文档(即法律条文)。
- 执法(Executing) :AI 负责执行这些条文。如果系统运行结果不符合预期,你不需要去修改 AI 生成的代码(执法过程),而是应该去修改 Spec(法律条款),然后重新触发生成。
结语:回归创造的本质
软件工程界长久以来面临的“文档与代码不同步”的千古难题,极有可能在 SDD 范式下被彻底终结。
当规范成为真理,代码回归工具属性,我们终于可以从繁琐的语法细节和“保姆式纠错”中解放出来。这不是让开发者失业,而是对开发工作的高维升级。
请停止在 IDE 里漫无目的地“抽卡”。从今天起,试着写一份高质量的 Markdown 规范,定义好你的系统边界与意图。这才是 AI 时代开发者应有的姿态。
我写了个 code-review 的 Agent Skill, 没想到火了
前两天随手写了个 Claude Code 的 Skill,专门做 Code Review 的,发了条推之后就没太在意。
结果第二天醒来一看,GitHub Star 刷刷往上涨,评论区也炸了,不少人说"终于有个靠谱的 Code Review 工具了"。
![]()
说实话,有点意外。
倒不是说这个 Skill 有多了不起,而是它戳中了一个很真实的痛点——大部分团队的 Code Review,要么走过场,要么全靠人肉。
先说说为什么要做这个
做这个 Skill 的起因其实很简单。
我自己平时写代码,改完了之后经常想让 Claude Code 帮我 review 一下。直接跟它说"帮我看看代码有没有问题",它确实会给你一些反馈,但说实话,质量参差不齐。
这就跟新来的实习生做 Code Review 一样,不是他不想认真看,是他不知道该看什么、怎么看、按什么优先级来。
所以问题的本质是:模型需要一套结构化的 Review 框架,告诉它该检查什么、怎么分级、用什么格式输出。
这不就是 Skill 最擅长干的事吗?
code-review-expert 是什么
一句话概括:一个让 AI 用资深工程师的视角帮你做 Code Review 的 Skill。
安装方式就一行:
npx skills add sanyuan0704/code-review-expert
装好之后在 Claude Code 里输入 /code-review-expert,它就会自动 review 你当前的 git changes。
整个 review 流程我是精心设计过的,分成这么几步:
第一步:Preflight(了解改动范围)
它会先跑 git diff 看看你改了哪些文件、改了多少行。如果改动量超过 500 行,它会先按模块分批 review,不会一口气全看完然后给你一堆乱七八糟的反馈。
第二步:SOLID + 架构检查
这一步是我花了最多时间打磨的。我写了一份详细的 SOLID checklist,把每个原则对应的"坏味道"都列出来了。
比如检查 SRP(单一职责),它不会只是泛泛地说"这个文件职责太多了",而是会问一个很具体的问题:"这个模块有几个不同的修改理由?" 如果一个文件既管 HTTP 请求,又管数据库操作,还管业务逻辑,那它大概率违反了 SRP。
第三步:发现可以删掉的代码
这步其实挺有意思的。很多项目里都有一堆死代码——feature flag 关掉的、被废弃的 API、没人用的工具函数。它会帮你找出来,并且区分"可以直接删"和"需要制定计划再删"两种情况。
第四步:安全扫描
XSS、SQL 注入、SSRF、路径穿越、竞态条件、密钥泄露……这些它都会检查。
其中竞态条件(Race Condition)这块我写的特别详细,因为这是很多人在 review 时最容易忽略的。它会专门去找 check-then-act 模式、读-改-写操作、并发数据库访问这些容易出问题的场景。
第五步:代码质量扫描
错误处理有没有吞掉异常?有没有数据库的 N+1 查询?空值检查到不到位?这些"小问题"在生产环境里都可能变成大事故或者性能问题。
最后:结构化输出 + 确认
所有发现按严重程度分成四个等级:
| 等级 | 含义 | 怎么处理 |
|---|---|---|
| P0 | 严重 | 必须 block merge |
| P1 | 高危 | 应该在合并前修复 |
| P2 | 中等 | 这个 PR 修或者建个 follow-up |
| P3 | 低优 | 可选优化 |
输出之后,它不会自作主张去改代码。而是先问你:要修全部,还是只修 P0/P1,或者修指定的。
这个"先 review 再确认"的设计是我特意做的——Code Review 的价值不只是发现问题,更重要的是让你理解问题。如果 AI 直接帮你改了,你连有什么问题都不知道,那这个 review 就没意义了。
为什么我觉得它火了
发完推之后,仓库几天内涨到了 460+ Star,40+ Fork。
评论区和私信里,大家反馈最多的是两点:
第一,"终于有个体系化的 Review 方案了"
很多独立开发者和小团队,根本没有 Code Review 的流程。不是不想做,是没人帮你 review。有了这个 Skill,相当于随时有个资深工程师帮你把关。
这个需求其实比我想象的要大。我之前以为 Code Review 主要是大厂的需求,没想到独立开发者和小团队对这块的渴求更强烈——因为他们更没有犯错的资本。
第二,"终于不是 AI 味十足的泛泛建议了"
![]()
这要归功于那几份 checklist。我把 security-checklist、solid-checklist、code-quality-checklist 都放在了 references/ 目录下,每份都是实打实的检查清单,不是那种"注意安全问题"之类的废话。
比如安全检查那份,光竞态条件就列了四个子类:共享状态访问、TOCTOU(检查后使用)、数据库并发、分布式系统。每个子类下面都有具体的代码模式和需要问的问题。
这就是 Skill 的魅力——你把专业知识结构化地喂给模型,它的输出质量会有质的提升。
怎么做到的?聊聊 Skill 的设计思路
这个 Skill 的结构很简单:
code-review-expert/
├── SKILL.md # 主文件,定义整个 review 流程
├── agents/
│ └── agent.yaml # Agent 配置
└── references/
├── solid-checklist.md # SOLID 原则检查清单
├── security-checklist.md # 安全检查清单
├── code-quality-checklist.md # 代码质量检查清单
└── removal-plan.md # 代码清理计划模板
核心设计有几个关键点:
1. references 实现按需加载
这是 Skill 体系最优雅的地方。
四份 checklist 的内容加起来好几千字,如果全塞进 SKILL.md,一上来就会吃掉大量上下文窗口。所以我把它们放在 references/ 里,SKILL.md 里只在需要的步骤写 Load references/xxx.md。
模型执行到那个步骤时才会去读对应的文件,用完就可以"忘掉"了。这就是之前文章里讲过的 Progressive Disclosure(渐进式加载),Skills 最精妙的设计之一。
2. Workflow 要设计得有节奏感
我试过把所有检查点平铺在一起,效果很差——模型会东一榔头西一棒子,安全问题和命名规范混在一起说。
最后我按照真实的 Code Review 流程来编排:先看改动范围,再看架构设计,然后看安全,最后看代码质量。每一步之间是递进关系,从宏观到微观。
这个设计借鉴了人来做 Code Review 的习惯——好的 reviewer 不会上来就抠细节,而是先理解整体改动的意图和影响范围。
写在最后
你猜我写这个 skill 花了多久?
3,2,1,揭晓答案。
我只花了 10 分钟。不可思议吧。
怎么做到的?现在 claude 官方有一个叫 skill-creator 的 skill,帮你来写 skill,然后基于它可以很快搭出骨架来。后续,就是基于我的专业经验,引导 agent 帮我把一些关键的原则拆分为各个 checklist 文档,聊个几轮,这个高质量的 skill 就完工了。
回头看这件事,我觉得这也是 Skills 生态最让人兴奋的地方:每个有专业积累的开发者,都可以很快把自己的经验沉淀成一个 Skill,让 AI 帮更多人受益。
你不需要会写 MCP Server,不需要懂协议,不需要搞 OAuth 鉴权。就是一个 Markdown 文件 + 几份参考文档,仅此而已。
仓库在这里,欢迎 Star 和提 PR:
GitHub: sanyuan0704/code-review-expert
安装:
npx skills add sanyuan0704/code-review-expert
如果你也在做 Skill 开发,或者有什么好用的 Skill 推荐,评论区欢迎来聊。