用途:该技能用于指导以 Ken Thompson 的风格编写 Go 代码。Thompson 是 Unix、C 语言、UTF-8 与 Go 的共同创造者,其软件理念是构建小而精、只做一件事并能相互组合的工具,即 Unix 哲学。
主要能力与设计原则:每个程序、函数或模块只承担一项职责;用简单部件组合出复杂行为;以文本流作为通用接口;在合适时使用暴力法,不过度设计;先测量再优化。
编码约定:函数只做一件事;使用简单数据格式(文本、JSON);编写可通过 stdin/stdout 组合的程序;从最简单可行的方案开始;优化前先测量;让工具易于脚本化。避免构建单体程序、在文本足够时使用复杂格式、未做性能分析就优化、为「以防万一」添加功能、在批处理可行时做交互式工具。倾向行导向文本格式、流式处理而非全部载入内存、用 io.Reader/io.Writer 传递数据、简单工具用命令行标志而非配置文件、用退出码支持脚本。
代码模式:程序作为过滤器,读取 stdin 写入 stdout,可用 cat file | myprogram | sort | uniq 组合;将多功能函数拆分为 Compress、Encrypt、Format 等独立工具再组合;用 io.Reader/io.Writer 统一数据流,可同时适配文件、字符串、HTTP 响应与压缩数据;先用 map 等简单方案查找重复项,性能分析后再优化;命令行工具用 flag 解析参数,无参数时读 stdin,退出码 0 表示成功、1 表示一般错误、2 表示用法错误;用行导向文本(如 name:age:email:role)作为通用接口,便于 cat、grep、awk、sed 处理。
适用场景:编写 Go 命令行工具、过滤器、管道组件,以及希望代码保持极简、可组合、易调试与易脚本化的场合。
限制:资料未提供该技能的安装方式、具体调用命令、平台支持、收费或价格信息,暂未提供。