别再重复造轮子了
写代码时,很多人一上来就想着自己实现功能,比如处理日期、解析字符串、做网络请求。其实大多数时候,语言自带的标准库已经提供了稳定高效的解决方案。拿 Python 的 datetime 来说,很多人自己写字符串转时间的逻辑,结果遇到时区问题就翻车。而标准库里的 fromisoformat 或 strptime 早就帮你处理好了常见格式。
Go 语言的 net/http 也是个好例子。不少开发者一上手就引入第三方框架,但其实原生支持路由、中间件、HTTPS,足够应付大部分 Web 服务场景。用熟了你会发现,少了依赖包袱,项目更干净,部署也更快。
优先用标准库,不是“能用就行”
有些人觉得标准库“不够酷”,功能少,不如第三方库花哨。但标准库的优势不在炫技,而在可靠。它经过长期打磨,边界条件考虑周全,文档齐全,出问题也有官方背书。比如 Java 的 java.util.Collections,虽然看起来简单,但里面的排序、同步包装都是线程安全的,自己实现很容易踩坑。
在团队协作中尤其明显。新同事接手项目,看到一堆陌生的第三方库要查文档,而标准库大家基本都熟悉,沟通成本直接降下来。
学会看文档,别靠记忆硬写
不少人对标准库的掌握停留在“用过几个函数”,真正需要时还得去翻资料。比如 Python 的 os.path 和 pathlib,后者更现代,支持面向对象操作路径,但很多人还在写 os.path.join('a', 'b') 这种拼接。
from pathlib import Path
p = Path("/home/user")
config_file = p / "config" / "app.json"
print(config_file.exists())这种写法不仅清晰,还跨平台兼容。关键是你得知道它存在。
避免“过度封装”标准库
有些项目喜欢包一层自己的工具函数,把 json.loads 封装成 my_json_parse,美其名曰“统一接口”。可一旦这层封装没处理好异常或编码,默认行为和原生不一致,反而埋雷。除非有明确需求(比如加日志、缓存),否则直接调用标准库更透明。
像 JavaScript 的 fetch,浏览器原生支持越来越好,就没必要每个项目都默认套个 axios。真需要拦截请求或默认头,再基于 fetch 封装也不迟。
保持更新,老方法可能已被替代
标准库也在进化。比如 Python 3.9 后字典合并可以用 | 操作符,比 dict.update() 更简洁:
defaults = {"host": "localhost", "port": 8000}
config = defaults | {"port": 3000}如果你还在用旧方式,不仅代码啰嗦,还容易被同事吐槽“落伍了”。
标准库不是摆设,它是你每天写代码的底座。用好它,不是为了显得多懂行,而是让程序更稳、维护更容易、协作更顺畅。下次动手前,先想想:这事儿标准库能不能干?