写代码的时候,很多人喜欢从零造轮子,其实大可不必。大多数编程语言的标准库已经提供了足够强大的功能,用好了能省下大量时间和精力。关键是怎么用得对、用得巧。
别重复发明轮子
比如 Python 的 datetime 模块,处理时间戳、时区转换、日期计算都很成熟。可还是有人自己写逻辑算“昨天是几号”,结果遇到闰年或夏令时就出问题。与其这样,不如老老实实用标准库里的方法:
from datetime import datetime, timedelta
yesterday = datetime.now() - timedelta(days=1)
print(yesterday.strftime("%Y-%m-%d"))
这比手搓字符串拼接和月份天数判断可靠多了。
了解你手上的工具
Go 语言的 net/http 包可以直接启动一个 Web 服务,不需要额外引入框架。很多新手一上来就装 Gin 或 Echo,但其实简单接口完全用不着。直接用标准库,代码更轻,依赖也少。
package main
import (
"fmt"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, %s!", r.URL.Path[1:])
}
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}
这个小服务跑起来连第三方包都不需要,部署也省心。
避免“看起来能用就行”
JavaScript 的 Date 对象坑不少,比如月份从 0 开始计数。但 Node.js 环境下有 util 模块可以格式化输出,或者用 path 处理路径,这些都比字符串拼接安全。尤其是路径拼接,Windows 和 macOS 的分隔符不一样,path.join() 能自动适配:
const path = require('path');
const filePath = path.join('users', 'alice', 'docs', 'notes.txt');
// 在不同系统上都能正确生成路径
保持更新,别用过时的方式
Python 3.4 之后推荐用 pathlib 而不是 os.path。虽然老方法还能跑,但新方式更直观。比如要列出某个目录下所有 .py 文件:
from pathlib import Path
py_files = Path('./src').glob('**/*.py')
for f in py_files:
print(f)
代码读起来像自然语言,维护起来也轻松。
错误处理别偷懒
标准库往往自带完善的错误类型。比如 Go 的 json.Unmarshal 返回的 error 可以具体判断是不是语法错误、类型不匹配。直接忽略或者只打印一句“解析失败”会掩盖问题。正确的做法是区分处理:
var data map[string]interface{}
if err := json.Unmarshal(bytes, &data); err != nil {
if syntaxErr, ok := err.(*json.SyntaxError); ok {
log.Printf("JSON 语法错误在位置 %d", syntaxErr.Offset)
} else {
log.Printf("解析失败:%v", err)
}
}
这样出问题能快速定位,而不是靠猜。
小项目优先用标准库
刚开始做一个小工具,比如命令行解析、文件监控、HTTP 客户端,先看看标准库有没有支持。Node.js 有 fs、Python 有 argparse、Rust 有 std::env,够用了就别急着加依赖。依赖越多,安全隐患和版本冲突的风险就越高。
用好标准库,不是图省事,而是让代码更稳定、更容易被人看懂。毕竟,大家都会查文档,但不是每个人都愿意去翻你引入的五个第三方包。