Racket 编程入门

第 7 部分 · Production

走向生产:工程化与实战

回答"读完这本书,我能用 Racket 做什么"。工具链、打包分发、数据库、Web 实战、工业级案例,对标 Core Python Applications Programming。

01

打印函数——给人看还是给程序读

Racket 的打印不是“一个函数加几个变体”,而是三套语义:`display` 给人看,`write` 给程序读,`print` 留给 REPL。选错一套,日志里多几个引号是小事,把机器读的串当成人话贴给用户才是真出事。

02

三种执行方式——同一份代码为何表现不同

同一份 Racket 代码,DrRacket 里能跑、命令行里沉默、REPL 里报 undefined。代码没变,差异从哪来?

03

REPL——边想边跑的开发方式

Racket 让你把一个表达式敲进 REPL,按下回车就看到它的值。改一个函数,下一个调用就用新定义,不必重启、也不必重新编译——开发循环从“改、编译、运行、看”缩成“敲一行、看一行”。

04

读懂 Racket 官方文档——Guide、Reference 与 contract

Racket 文档读不懂,多半是入口选错了:Guide 讲思路,Reference 定规格,那一串方括号和箭头是 contract。你照着教程敲过几段代码,可曾真正打开过 Reference?

05

raco——Racket 工程体系的控制中心

`raco` 不只是装包的命令,它是 Racket 工程体系的控制中心——包管理、编译、测试、打包发布,全在这一个工具里。

06

发布一个 Racket 包——从零走完官方流程

写一个 Racket 包并发布到官方仓库,没有想象中那么难——这篇带你从零走完整套流程,做出符合官方标准的包。

07

打包分发——从可执行文件到三平台安装包

`raco exe` 给你一个可执行文件,但普通用户要的是双击安装的体验——这篇拆解从可执行文件到 Windows、macOS、Linux 原生安装包的跨平台分发全流程。

08

结构化编辑——让 DrRacket 替你管括号

手调括号是 Lisp 新手最大的挫败感来源,也是老手从不担心的事——差别只在是否用 paredit 这类结构化编辑:括号永远成对,移动、增删、调整嵌套都以 S 表达式为单位进行。这篇带你装好 drracket-paredit,并把值得记的快捷键过一遍。

09

编码规范——别把 Lisp 写成只写语言

Lisp 的极简语法是双刃剑——没有规范,代码很快变成谁也读不懂的"只写语言"。这篇基于官方风格指南,提炼出可落地的编码规范。

10

数据库是什么——从 Excel 到 SQL

数据库不是什么神秘的服务器技术。它的本质是一张能被快速查询的表——你用过 Excel,就理解了一大半。这一章讲清数据库和 SQL 到底是什么,再带你用 Racket 把它跑起来。

11

从零开始用 Racket 写一个 Web Server

Web 开发听起来是一堆陌生名词,但剥到本质就是一件事:一次请求,一次响应——和函数调用没有区别。这篇用 Racket 把这件事赤裸裸摆给你看。

12

深入理解 Racket Web Server 的工作方式

写出第一个能跑的 Web Server 后,你会觉得不过如此——但需求稍一增加,问题就来了:连接怎么管、状态怎么存、并发怎么扛。这篇拆解 Web Server 背后真正在发生什么。

13

Koyo——Racket Web 应用的现代工具箱

想用 Racket 写个正经的 Web 应用,光靠内置的 web-server 会觉得缺这缺那。Koyo 给你补齐了现代 Web 应用所需的一整套工具,而且想用什么用什么,不强制绑定。

14

稳定上线——给 Racket Web 程序配好 Nginx

写好的 Racket Web 程序怎么对外服务?答案分两层:Racket 在本机一个端口上稳定响应 HTTP,剩下的——HTTPS、反向代理、静态资源、进程守护——全部交给 Nginx。这篇把这条最省心的部署路线完整走一遍。

15

xexpr——HTML 是数据,不是字符串

在多数语言里,HTML 是一段要拼接、要转义、要忍受的字符串。在 Racket 里,HTML 是一种数据结构——你像写代码一样构建它,不用碰字符串。

16

FFI——当 Racket 需要调用 C

Racket 不被困在自己的生态里——它的 FFI 让你直接调用 C 的共享库,把两门语言的能力拼在一起。这篇讲清调用、内存管理和最常见的坑。

17

一个 Racket 程序员的工具箱

你已经走过了从“编程是什么”到“造一门语言”的完整旅程。这最后一章不教你新东西——它把前面所有的能力收拢成一张地图:用 Racket 从零做一个真实产品,你需要哪些工具,它们怎么配合。

18

如何构建和运行 ActivityLog2

一个真实的、有实际功能的开源 Racket 桌面应用长什么样?ActivityLog2 是最好的答案——这篇带你把它从源码构建到跑起来。