#115 example.com 改版原因
开发者 2026-10-10example.com 是 IANA 保留的示例域名,主要用于技术文档、教程和配置示例,避免开发者使用真实业务域名。它并不是专门提供可用性检测的测试服务器。
近日,开发者 Oliver Dunk 因为关注到 example.com 改版,向 IANA 发邮件询问原因,收到了 IANA 副总裁 Kim Davies 的亲自回复。
此次改版的重点不是增加功能,而是减少数据传输。页面采用基础 HTML,将额外内容放到 JavaScript 文件中。由于 example.com 存在大量自动化访问,其中许多请求不会加载 JavaScript,这种设计可以减少总体流量,降低带宽开销。
-> % curl www.example.com
<!doctype html><html lang=en><head><meta charset=utf-8><link rel=icon href=data:,><meta name=viewport content="width=device-width,initial-scale=1"><title>Example Domain</title><style>html{color-scheme:light dark;background:light-dark(#eee,#222)}body{font:16px/1.6 system-ui,sans-serif;max-width:26em;margin:auto;padding:25vh 2em 2em;text-align:center}</style></head><body><p>This domain is for use in documentation examples without needing permission. This is not a service; avoid relying on it for testing and monitoring purposes.</p><script src=/s.js></script></body></html>
一些系统使用 example.com 检测网络或 HTTP 服务是否正常,但这并非它的设计目的。它的核心价值是作为文档中的通用占位符,而不是保证持续可用的测试接口。提供网页只是额外的便利,并非其存在的必要条件。
#114 Headless CMS 清单
开发者 2026-09-25Headless CMS(无头内容管理系统)是一种将内容管理与前端展示分离的 CMS 架构。它只负责内容的创建、编辑、存储、管理和分发,不负责页面渲染,也不限定前端技术栈。前端应用通过 REST API 或 GraphQL 获取内容,自行完成展示。
其核心优势是内容与展示解耦,同一份内容可以同时分发到网站、移动应用、小程序、桌面应用等多个终端。典型功能包括内容模型管理、富文本编辑、媒体资源管理、用户权限控制、工作流管理、多语言支持、版本管理和 API 分发。
Headless CMS 适合多端内容分发、企业官网、内容平台以及需要灵活定制前端的项目。常见开源项目包括 Directus、Strapi、Payload CMS 和 Sanity。
与 Directus 定位相近的 Headless CMS 知名开源项目:
| 项目 | 开发语言 | GitHub Stars |
|---|---|---|
| Strapi | TypeScript | 73.4k |
| Payload CMS | TypeScript | 45.5k |
| Ghost | JavaScript | 55.6k |
| Wagtail | Python | 21k |
| KeystoneJS | TypeScript | 10k |
| Squidex | C# | 2.5k |
| Filament | PHP | 32k |
项目简介(每个约 100 字):
-
Strapi — GitHub。知名 Headless CMS,基于 Node.js,提供可视化内容模型、REST/GraphQL API、角色权限和插件扩展。适合企业官网、内容平台、移动应用后端。
-
Payload CMS — GitHub。基于 TypeScript 和 Next.js 的全栈 CMS,采用代码优先模式定义数据模型,自动生成管理后台和 API。适合 Next.js 项目及需要深度定制业务逻辑的应用。
-
Ghost — GitHub。专注于博客和专业内容出版的平台,内置文章管理、会员订阅、Newsletter 邮件发送及 Headless API。适合媒体网站、独立博客和付费内容业务。
-
Wagtail — GitHub。基于 Django 的 Python CMS,提供丰富的内容编辑体验、权限管理、版本控制和 API。适合 Python 技术栈下的企业内容管理和大型网站。
-
KeystoneJS — GitHub。TypeScript 开发的可编程 CMS 和后端框架,通过代码定义数据模型,自动生成 GraphQL API 和管理界面。适合开发者主导、需要灵活数据结构的业务系统。
-
Squidex — GitHub。基于 ASP.NET Core 的 Headless CMS,提供结构化内容管理、REST API、GraphQL、版本控制和多语言支持。适合 .NET 技术栈及企业级内容管理。
-
Filament — GitHub。基于 Laravel、Livewire 的后台管理 UI 框架,提供 CRUD、表单、数据表格、仪表盘等组件。适合快速开发企业内部管理系统,但它不是完整的 Headless CMS。
选型建议:
| 需求 | 优先考虑 |
|---|---|
| 已有 SQL 数据库,快速生成 API 和后台 | Directus |
| 内容管理、Headless CMS | Strapi |
| Next.js 全栈应用 | Payload |
| Laravel 管理后台 | Filament |
| Python/Django 内容平台 | Wagtail |
我的判断:如果目标是寻找 Directus 的直接替代品,优先比较 Strapi、Payload、KeystoneJS;如果目标是寻找通用业务后台和 API 平台,则应该把 PocketBase、Supabase、Appwrite 纳入比较。两类产品的架构定位并不完全相同。
#113 Directus Headless CMS
开发者 2026-09-25Directus 是一个开源的现代化后端数据平台,定位于 Headless CMS(无头内容管理系统)+ 自动化 API + 可视化数据管理后台。它可以直接连接现有 SQL 数据库,自动生成 REST、GraphQL API,并提供 Web 管理界面,无需从零开发数据管理后台。
#112 独立开发者 MVP 工具链
开发者 2026-09-07微信推送的两种图片中展示了一个“独立开发者穷鬼套餐(2026版)”,我让 GPT 重新给我整理了一个版本:
| 一级类型 | 二级类型 | 工具 | 价格 |
|---|---|---|---|
| 项目管理 | 项目管理 | GitHub Projects / Linear | - |
| 文档管理 | Notion / 飞书 | - | |
| 密码管理 | Bitwarden | - | |
| AI 开发 | AI 模型 | Claude / GPT / Gemini | $0–20/月 |
| AI IDE | VS Code + Cline / Roo Code | - | |
| UI 生成 | Step1 / v0 | - | |
| 设计素材 | 图标 | Iconify | - |
| 图片素材 | Unsplash / Pexels | - | |
| 图片压缩 | Squoosh / TinyPNG | - | |
| 软件开发 | 代码托管 | GitHub | - |
| API 调试 | Bruno | - | |
| 前端开发 | Vue / React | - | |
| UI 组件 | Element Plus / shadcn/ui | - | |
| 后端基础设施 | BaaS | Supabase | - |
| Serverless | Supabase Edge Functions / Cloudflare Workers | - | |
| 身份认证 | Supabase Auth | - | |
| 数据库 | PostgreSQL / Supabase | - | |
| 对象存储 | Cloudflare R2 | - | |
| KV / 缓存 | Cloudflare KV / Upstash Redis | - | |
| 邮件 | Resend | - | |
| 部署运维 | DNS / CDN | Cloudflare | - |
| 网站部署 | Cloudflare Pages | - | |
| CI/CD | GitHub Actions | - | |
| 错误监控 | Sentry | - | |
| 日志分析 | Axiom | - | |
| 产品运营 | 数据分析 | PostHog / Google Analytics | - |
| 热力图 / 录屏 | Microsoft Clarity | - | |
| Feature Flag | PostHog | - | |
| 市场趋势 | Appark | - | |
| 商业化 | 支付 | Stripe / Paddle | 按交易收费 |
| 自动化 | n8n / Make | - | |
| 域名 | Cloudflare / 阿里云 | ~$10/年 |
程序主要运行在 Serverless / Edge 环境,依赖的数据库、KV 等服务也基本都是白嫖。
#111 AI 时代程序员的未来
开发者 AI 2026-09-05AI 写代码已经越来越强,但截至目前,并没有出现有些人预言的大规模程序员失业潮。美国 BLS 数据显示,2025 年软件开发者就业人数约 168.8 万,预测 2025—2035 年软件开发者就业仍预计增长约 10%。
原因并不复杂:AI降低的是软件开发成本,而不一定降低软件需求。 当一个功能从过去需要3个人做一个月,变成一个程序员借助AI几天完成,公司未必选择裁掉3个人,也可能选择同时开发更多功能、尝试更多产品、服务更多客户。过去因为“开发成本太高”而放弃的需求,现在可能都变得值得做。
真正值得警惕的是,AI正在改变程序员内部的就业结构。
斯坦福数字经济实验室 2026 年 8 月基于数百万名员工的 ADP 工资数据发现,整体就业尚未出现大规模 AI 替代,但 22—25 岁、处于 AI 高暴露职业的年轻人,就业水平已经比低暴露职业同龄人低约 19%;而有经验的劳动者没有出现类似幅度的缺口。软件开发者属于 AI 暴露程度最高的职业之一,其中 22—25 岁开发者下降尤其明显。
这意味着,AI首先冲击的可能不是35岁以上的老程序员,而是原本负责简单CRUD、改页面、接接口、补测试的初级岗位。
那么,新老程序员应该何去何从?
-
新人不能再把“会写代码”当成核心竞争力。 AI已经可以承担大量基础编码工作,新人的价值必须从“执行任务”转向“理解问题”:
- 学习计算机基础、数据库、网络、操作系统、工程规范,
- 同时利用AI快速完成实现,并通过真实项目积累业务经验。
-
老程序员也不能躺在经验上。 AI确实放大了经验的价值,但前提是你能够驾驭AI。
- 未来更值钱的能力,是架构设计、复杂系统排障、业务理解、技术决策、风险控制,
- 以及把模糊需求转化成可靠系统的能力。
所以,AI时代真正危险的不是“老程序员”,也不是“年轻程序员”,而是只会写代码、却不知道为什么写,以及不会利用AI提高生产力的人。
三年前大家问的是“AI什么时候替代程序员”。现在更应该问的是:当代码越来越便宜之后,你还能解决什么过去解决不了的问题?这才是新老程序员真正需要回答的问题。
#110 Google Workspace 的域名校验:一个正则黑名单引发的误伤
开发者 2026-08-28注册 Google Workspace 时,作者输入公司域名后,却收到“请输入有效域名,而不是邮箱服务商”的提示。域名本身没有任何滥用记录,Google 官方也无法解释原因。联系客服后,经历了换浏览器、换设备、录屏、提交工程师等流程,最终得到的建议竟然是“换一个域名”。更离谱的是,社区中还有其他正常域名遭遇同样问题,甚至包括乌克兰经济部使用的 me.gov.ua。
#109 主流 PaaS 产品
开发者 云计算 2026-08-10#108 转载:布尔变量取名规则
开发者 2026-07-24传说中,编程有两大难题,一个是缓存失效,另一个是变量起名。
其中,布尔变量尤其难起名。怎样才能贴切地表达,这个变量是表示"真"(true)和"伪"(false)的布尔值呢?
我最近读到一篇文章《布尔变量起名的艺术》,提出使用四个前缀就能给布尔变量正确起名,我觉得很有启发。
is-:描述事物的状态,后面跟形容词,比如 isActive,isDeleted,isEmpty。has-:描述事物的所有权或包含关系,后面跟名词,比如 hasAccess,hasChildren,hasValidationErrors。can-:描述事物的能力或权限,比如 canEdit,canDelete,canRetry。should-:描述事物的意图或逻辑,比如 shouldRetry,shouldCacheResponse。
除了这四个前缀,起名还有另一条规则:永远不在布尔变量名中使用否定词。
比如,不使用 isDisabled,而要用 isEnabled = false。
#107 百度云 ICP 备案记录
WebDev 开发者 2026-07-16- 原备案信息(阿里云 · 2019):备案名称「码厩Markjour」,备案号 鄂ICP备15002462号。
- 迁移原因:不再使用虚拟主机,业务迁至百度云低成本主机,需在百度云重新提交接入/备案,备案名称变更为「码厩开发者笔记」。
初审被拒,原因:
- 应急联系电话校验:应急手机号不能与负责人手机号码相同,需提供另一位真实可联系人的号码(当年没有这个要求)。
- 前台菜单合规审核:初审要求网站不得出现“留言”和“给我写信”菜单,这算页面交互入口(推测当年备案时尚未增加这两个菜单)。
- 这两个功能从没用过,暂时屏蔽前端入口以通过核验,后面再看如何处理。
初审通过之后,备案进入 “管局审核中-短信校验中” 状态。
几分钟之后就会收到工信部短信验证码,需要进入指定链接输入验证码、手机号、身份证后六位进行核验。
短信核验之后过一会儿,备案进入 “管局审核中-人工审核中” 状态。