Andros

En.andros

HTML over WebSockets:用几乎零 JavaScript 构建实时 SPA

服务器直接发送已渲染好的 HTML 而非 JSON,客户端只需将其放置到正确位置。Phoenix LiveView 2019 年提出后,Elixir、Ruby、Python、C#、PHP 等语言均有实现。优势是单一渲染引擎、无需 API 契约、状态在服务端、天然防 XSS;代价是服务端资源消耗更大、不支持离线。双向实时通信选 WebSocket,仅需服务端推送则 SSE 更简单经济。
评论点赞收藏3 天前

我给博客加了实时聊天功能,结果被人用来攻击我

开发者给博客加了实时聊天功能,发批评 Tailwind CSS 的文章后,被攻击了一整天。 攻击方式包括种族歧视、死亡威胁、刷屏覆盖内容、冒充作者发垃圾链接,还有人尝试注入 JavaScript 但被服务端转义机制挡下。 防御手段:关键词过滤、大幅缩减字符上限、以及最重要的——不回应。 核心教训:实时广播的临时消息没有审核窗口,要么毫秒级自动过滤,要么就太晚了;消息自动消失反而削弱了喷子的动力,因为没有历史可留、没有 karma 可刷。
评论点赞收藏9 天前

我不推荐 Tailwind CSS

一位开发者系统列出不用 Tailwind 的理由:类名命名不一致、HTML 与样式耦合破坏结构分离、任意值绕过设计系统、调试困难,以及 HTML 中的类顺序无法决定优先级。作者认为现代原生 CSS(cascade layers、嵌套、:has、容器查询)已足够强大,Tailwind 的核心功能其实构建在这些原生特性之上。结论:不是 Tailwind 不好,而是代价在未来支付;先学 CSS,再决定。
评论点赞收藏14 天前

什么是真正符合规范的 RESTful API

作者指出大多数开发者对 RESTful 的理解停留在 Richardson Maturity Model 的 Level 2,真正的 RESTful 应达到 Level 3,即包含 HATEOAS(超媒体作为应用状态引擎)。文章详细列出 Roy Fielding 提出的六条约束,强调通过媒体类型而非 URI、客户端不硬编码路径、从根资源导航等原则构建自描述接口。 RESTful API 的核心是超媒体驱动,客户端通过响应中的链接动态发现操作,无需外部文档即可探索全部资源。作者举例说明 HAL 格式与 method 扩展,并给出版本协商、分页、错误处理的具体实践建议,引用 RFC 9457 标准问题详情格式。
评论点赞收藏16 天前

现代邮件可由借来的部件构建

作者提出用 HTTP 构建下一代邮件协议 HMTP,复用 WebFinger、ActivityPub、JMAP、Ed25519、HPKE 等成熟技术,解决 SMTP 40 年遗留问题。原型已实现端到端加密、去重、线程、密钥轮换和反垃圾层,GitHub 单文件可运行。 HTTP 替代 SMTP 后,身份验证基于.well-known 文档而非 SPF/DKIM,收件人服务器直接 GET 发送方公钥验签;消息体 HPKE 加密,服务器无法读取;附件按哈希引用存储,避免 base64 膨胀;首次联系需收件人同意,陌生发件人进入“请求箱”而非直接进入收件箱;可选 402 邮费机制增加滥发成本。作者强调不发明新技术,仅重新组装现有标准,协议本身只与同构节点通信,不兼容 Gmail 等传统邮箱。
评论点赞收藏19 天前

Emacs 是一块 Lisp 面包板:重构你的工作流环境

作者提出 Emacs 本质是“Lispboard”,即基于统一运行时和事件总线的跨平台工作流构建平台,而非单纯编辑器。通过邮件、终端、IDE 等模块共享配置与快捷键的深度集成案例,论证其作为“自有操作系统”的价值。文章将浏览器视为主要竞争对手,指出浏览器虽为通用虚拟机但模块隔离且受制于第三方,而 Emacs 允许用户完全掌控并定制工作环境。
评论点赞收藏23 天前

我加入了 IndieWeb,这是我的学习心得

作者分享加入 IndieWeb 的实践与心得,详细拆解了 microformats2、Webmention、IndieAuth 等核心协议的技术实现。文章对比了 IndieWeb 与 Fediverse 的理念差异,强调以自有域名作为身份锚点,对抗平台“围墙花园”导致的数据丢失风险。对于关注去中心化网络、个人网站构建及数据主权的开发者而言,这是一份兼具技术细节与哲学思考的一手经验指南。
评论点赞收藏27 天前

登录芦苇

登录后关注作者、收藏内容和参与讨论。