标签: 实战

19 篇文章

用 Deno 写一个定时抓取脚本:权限、cron 与部署
要点 做一个每天定时跑的抓取脚本:抓 Hacker News 公开 API 的热门条目、按关键词过滤、落到本地 SQLite、把当日命中推到 webhook 群机器人。规模刻意压在"单机单文件"量级——定时任务这个约束会让每个设计决策都变重:权限要收口到无人值守也不出事、请求失败要自己重试、重复执行不能产生脏数据、部署要么长驻要么托管。开山篇(De…
用 Gleam 写一个小型 Web 服务:Mist 与 Wisp
要点 做一个书签收藏 API:POST /bookmarks 收一条 JSON、GET /bookmarks/:id 取一条、GET /bookmarks 列出全部,数据放内存里,多请求并发不丢不乱。这个"BEAM 上没有共享可变内存"的约束会让每个设计决策都变重——状态放哪个进程、请求怎么拿到它、崩了算谁的,一个都绕不开。技术底座是 mist 5…
用 Zig 写一个 TODO CLI:分配器与错误处理实战
先说清楚要做什么 做一个命令行 TODO 工具:add 记一条、list 列出、done 打勾、rm 删除,数据落在当前目录的 todo.txt 里,单文件 Zig 源码,编译后是一个无依赖的可执行文件。这个项目小,但"没有 GC"这条约束会让每一行涉及数据的代码都变重——每次分配都要回答两个问题:内存在哪来、谁负责还;每个可能失败的调用都要回答:…
用 Mojo 加速矩阵乘法:可复现的实验设计
先说清楚要做什么 用 Mojo 把矩阵乘法从朴素三重循环加速到 SIMD 加并行,是官方展示语言能力的第一案例;但网上流传的复现大多只有"我跑出了 xx 倍"的结论,没有可复现的实验设计。这篇反其道而行:倍数是结果,实验纪律才是主题。同一份代码走四步演进——朴素 ijk、循环重排、行级并行、SIMD 向量化——每一步都能在你自己的机器上复跑、验证、…
用 Node.js 写一个 WebSocket 实时协作服务
要做什么:一个人动,所有人几乎同时看到 多人实时协作(共同编辑文档、看板拖拽、共享光标)的核心诉求是低延迟双向推送:HTTP 轮询在这个场景里既慢又浪费。这篇用 ws 库从零写服务端——连接管理、心跳保活、房间广播,最后诚实地讨论横向扩展时最容易被忽略的坑。 指标目标值怎么测 死连接清理客户端异常掉线后 60 秒内被服务端剔除用防火墙丢包模拟半开连…
用 Python 搭一条每日数据管道:抓取、清洗、落库与告警
要做什么:每天凌晨自动跑一遍,跑完就退 数据管道是最常见也最容易被低估的实战题:每天把若干数据源的榜单抓回来,清洗成统一结构,落进 SQLite,供站内页面和分析脚本使用。它是一个跑批脚本,不是常驻服务——每天跑一次,跑完就退。"每日"这个约束会让每个设计决策都变重:数据源不可靠(超时、改版、限速),失败要隔夜才能被发现,而重跑是常态而不是事故,所…
用 Phoenix LiveView 做一个实时看板
要点 做一个小而完整的实时看板:每秒刷新一组吞吐指标,外加一条滚动的事件流,多浏览器标签同时在线且看到同一份数据。这个"多会话、同数据、秒级新鲜度"的约束会让每个设计决策都变重——缓存放在哪个进程、广播按什么粒度、列表怎么进 DOM,一个都绕不开。技术底座是 Phoenix LiveView 1.0(2024 年 12 月 GA)与《OTP 与进程…
用 PHP 写一个可靠的队列任务系统
要做什么:让任务在进程死了之后还能活着 发公告要调第三方接口、订单超时要关单、用户注册后要发邮件——这些"不能当场做完"的事都需要队列。"队列"这个约束会让每个设计决策都变重:任何"发出去就算完成"的写法,在进程被杀、数据库连接超时、业务侧重试面前都会丢任务。这篇用一张 MySQL 表加两段 PHP 脚本,做一个不丢、不重、可恢复的队列系统,不引入…
用 Wails 做一个剪贴板历史工具
要做什么 做一个剪贴板历史工具:后台自动记录每次复制的内容,历史列表可搜索,点条目把内容回填到剪贴板并收起窗口。三句话讲完,但"剪贴板"这个约束会让每个设计决策都变重——它没有变更通知,内容可能不是文本,甚至可能是刚复制的密码。工具形态定为常驻:点关闭不退出,再双击图标能把窗口唤回来。 验收指标先把丑话说在前面,每条都带测法: 指标目标值怎么测 复…