Golang 从入门到放弃 -0x1C

用一个迷你博客 API 串起整套知识,把零散知识点收束成完整开发链路。

终于来到这个系列的收尾章。前面那些语法、并发、HTTP、数据库、测试、日志、部署,如果一直是分散的知识点,学到最后还是会有点飘。这一章不求你直接做出一个大而全的系统,只做一件事:把前面的东西串成一个能落地的迷你博客 API。

这个小项目最小需要什么

  • 文章列表接口
  • 文章详情接口
  • 登录接口
  • 发布文章接口
  • MySQL 存文章
  • JWT 保护发布接口

看到没有,真的不需要一上来就评论、点赞、分类、搜索、审核全都上。先做出最小闭环,比脑内做出完美蓝图有用得多。

一条完整链路会长这样

  1. HTTP 请求进来
  2. handler 解析参数
  3. service 处理业务
  4. repository 查库或写库
  5. 结果回到 handler,编码成 JSON 返回

如果这个过程你能在脑子里顺下来,说明前面那些章节已经开始真的长在一起了。

建议的实现顺序

  1. 先把文章列表接口跑通
  2. 再加文章详情
  3. 然后接数据库
  4. 接着写登录和 JWT
  5. 最后再上发布文章接口

这个顺序的好处是,每一步都能验证,而且每一步出错时你大概知道锅在哪儿。

你会真正用到前面的哪些知识

  • 结构体:定义请求、响应、数据库模型
  • 方法和接口:组织 service / repository
  • JSON:收发接口数据
  • net/http:搭服务
  • 数据库:存文章和用户
  • 错误处理:保证链路清晰
  • context:把请求生命周期往下传
  • 测试:保住核心逻辑
  • Docker:最后交付

也就是说,这个小项目不是额外的一章,而是前面内容的一次集中验收。

写到这里,系列真正想给你的是什么

不只是“会几个 Go 语法”,而是对 Go 开发一条完整路线有感觉:从环境、调试、语法,到并发、HTTP、数据库、部署,再到一个小项目落地。你当然还远谈不上“精通”,但至少已经过了“完全不知道从哪开始”的阶段。

收尾

如果你真一路看到这里,我更希望你现在做的不是继续囤教程,而是亲手把这个迷你项目敲一遍。哪怕写得笨一点,哪怕目录先不优雅,哪怕中间踩坑,也比继续收藏十篇“Go 最佳实践”更有用。

因为真正让人从入门走出去的,不是再多懂一点概念,而是开始做第一个完整的东西。

Read more

序章:长夜之后

后来的历史书把那一天称为“长夜之后”。 这个名字并不准确。事情发生在地球上的许多个白天和夜晚之间,发生在不同经度的清晨、午后、傍晚,发生在地下库房、山体掩体、海军基地、荒原试验场和无人值守的材料贮存井里。它既不是一场战争,也不是一次统一指挥的袭击。没有人按下那个能够解释一切的按钮。 但历史需要一个名称。 “长夜之后”最终被保留下来,是因为调查者在追溯事件源头时,不得不一次又一次回到海王星。回到那颗距离太阳太远、光照近乎吝啬的蓝色行星。回到六名中国宇航员死去的地方。回到一艘核动力科考船熄灭后的漫长黑暗。 在联合调查委员会公开的第一版报告中,事件时间线被压缩成了一页表格。 2030年9月,问海一号在海王星附近失联。 2034年11月,问海二号抵达失事区域,确认问海一号全员死亡。 2035年1月,问海二号完成样本封装,开始返航。 2038年6月,海王星样本进入地球高等级隔离实验室。 2038年7月,全球多个核材料设施发生不可逆事故,部分核电站进入最高级别应急。 2038年8月,所有已知核武库事实上失效,全球核电装机大规模停运。 这张表格后来被反复引用,因为它足够冷静,也

By Fuyu Jia

第一章:四小时以前的地球

林予舟第一次听见“问海一号”的最后通信,是在距离地面三百九十公里的轨道上。 那不是一个适合听遗言的地方。 舷窗外,地球从飞船腹侧缓慢转过去,云层像被谁铺平的白色金属屑,青藏高原的阴影压在晨昏线上。太阳还没有完全越出地平线,近地轨道的黑暗因此显得很薄,像一层马上要被擦掉的墨。 “链路稳定。”林予舟说。 他的声音被舱内麦克风收进去,压缩,打包,送进中继卫星,再落回海南深空任务中心。延迟不到一秒。这样奢侈的实时感,在他们离开地月系统后会迅速消失。等飞船抵达海王星附近,地球说一句话,要四个小时左右才能抵达;他们回一句,地球也要再等四个小时。 对话会变成考古。 控制台上方的状态灯一排排亮着,绿色多得几乎让人不安。问海二号还在近地轨道泊位上,推进舱、居住舱、通信桁架和补给舱刚完成最后一次组合检查。它不像公众宣传片里那样优雅。现实中的深空飞船更像一串被迫相互妥协的工程物:银灰色隔热层、外露管线、姿控喷口、展开到一半的高增益天线,所有东西都为了质量、功耗、散热和冗余让步。 它也不像一艘该去海王星的船。 至少不像一艘该去救援核动力深空飞船的船。 问海二号没有主反应堆。 这件事在公开报

By Fuyu Jia

第二章:没有核反应堆的船

发射前四十分钟,林予舟收到了一条来自地面的私人通信。 通信被压在任务数据包后面,标记为低优先级。它随着推进剂温度曲线、姿态平台校准结果、医学监测基线和最后一版逃逸窗口修正量一起进入问海二号的主机,像一枚被夹在工具箱里的薄纸片。 林予舟本来不该在这个时候打开它。 发射前四十分钟,人的每一个动作都应当有明确目的。检查阀门状态,确认加压序列,复诵逃逸程序,核对地面口令。人的情绪如果在这个时候出现,就应该被折叠起来,放进某个不影响任务的地方。 他还是点开了。 画面里是母亲的厨房。抽油烟机没有开,镜头被热气熏得微微发白。桌上摆着一碗面,青菜、荷包蛋和切得很薄的牛肉。母亲没有出镜,只在画面外说:“我知道你现在不能吃,等回来再吃也一样。” 林予舟看着那碗面,隔了几秒才意识到自己没有呼吸。 “怎么了?”沈从越问。 “私人包。” “家里?” “嗯。” “看完删掉。”沈从越说,“别让它留在主屏缓存里。发射时系统会重排任务窗口,乱七八糟的东西越少越好。” 他语气平淡,不像关心,也不像责备。沈从越说话常常这样,像把所有情绪都预先压成了流程。林予舟关掉视频,把它转存进私人存储区。那碗面从

By Fuyu Jia

第三章:地球变成录音

离开地月系统后的第十九天,林予舟第一次觉得,地球不是一个地方,而是一种延迟。 最初的几天,通信仍然近乎实时。地面问,他们答;他们报数,地面确认。贺岚的声音穿过中继链路抵达舱内时,还带着地球上办公室的秩序感:清晰、稳定、克制。林予舟甚至能从她停顿的长度判断总控大厅里有多少人在看同一块屏幕。 后来,停顿被拉长。 五秒。 十七秒。 一分钟。 再后来,地球的每一句话都像从更早的时间里寄来。母亲发来的第二条视频在一个姿态修正段后抵达。她说北京降温了,问他那边冷不冷。林予舟看着舷窗外没有温度的黑暗,忽然不知道该怎么回答。 他当然冷。 但那不是气温。 “私人日志,任务日二十。”他说,“今天第一次做梦,梦见自己回到地面,站在厨房里。锅里有水,水一直不开。母亲在旁边说火太小,我低头看,灶台下面接着的是问海二号的离子推进器。” 他说完后,自己笑了一下。 笑声在舱内很短,很快被风机吞掉。 沈从越从设备舱飘过,听见最后半句:“梦境记录?” “心理监测要求。” “别把自己写得太正常。

By Fuyu Jia