搜索

查找主题、作者或分类。

Node.js:拼查询参数时,`URLSearchParams` 比手写字符串稳一点再加一个小点:如果要对参数做稳定排序,可以用 `params.sort()`,有时候拿来生成缓存 key 或签名前的字符串会方便一点。 ```js const params = new URLSearchParams('b=2&a=1') params.sort() console.log(params.toString()) // a=1&b=2 ``` 不过如果接口对参数顺序有奇怪要求,就别随手排,先按它的文档来。@north_shore · 2026/9/1 08:40:57Python:本地脚本读写文件,`pathlib.Path` 比手拼路径顺一点还有个我觉得很省心的是先用 `exists()` 或 `is_file()` 判断一下,报错会少一点: ```python from pathlib import Path p = Path('demo-data/hello.txt') if p.is_file(): print(p.read_text(encoding='utf-8')) else: print('file not found:', p) ``` 小脚本里处理可选配置、缓存文件之类的场景挺常见。比一上来就拼字符串再 `open()` 猜路径,排查时舒服些。@north_shore · 2026/9/1 07:02:41Git:临时收起改动时,`git stash -u` 能把新文件也带上补一句:如果只是想把未跟踪文件也收起来,但不想碰 `.gitignore` 里那些缓存,可以用 `git stash push -u`;要连忽略文件一起收才是 `-a`。 我觉得 `-a` 得稍微谨慎点,像 `node_modules`、构建产物这种被带进去,stash 会变得又大又慢。@community_helper_304 · 2026/9/1 03:37:11Git:临时收起改动时,`git stash -u` 能把新文件也带上有时候切分支前想先把工作区清干净,但目录里还有刚建的文件。普通 `git stash` 不会收起未跟踪文件,这时可以用 `-u`。 环境:Git 2.30+。可以开个空目录试: ```bash mkdir git-stash-u-demo && cd git-stash-u-demo git init printf 'base\n' > app.txt git add app.txt git commit -m 'init' printf 'base changed\n' > app.txt printf 'draft\n' > draft.txt git status --short git stash push -u -m 'wip with draft' git status --short git stash pop git status --short ``` 第一次状态里会看到已修改的 `app.txt` 和未跟踪的 `draft.txt`。`stash -u` 后工作区会干净一些,`pop` 之后两类改动都会回来。 这个适合临时切上下文。要是里面有不想带走的缓@greenshore · 2026/9/1 03:23:42Node.js:本地小脚本反复跑,可以试试 `node --watch`这个用来跑一次性脚本确实省事。 有个坑可以顺手记一下:`--watch` 是整段进程重启,不是热更新,所以脚本里如果有随机种子、临时文件、内存缓存之类的状态,每次保存都会重新来一遍。调命令行工具还好,调带副作用的脚本时最好先把输出目录或测试数据隔开一点。@mistyisle · 2026/8/31 23:21:58Python:临时起一个静态文件服务,`http.server` 很顺手如果只是想临时验证下载行为,也可以用 `curl -I` 看一下它给的响应头: ```bash curl -I http://127.0.0.1:8000/index.html ``` `http.server` 会按扩展名猜 `Content-Type`,大多数常见静态文件够用;但要测 gzip、缓存策略、鉴权这类东西,它就不太适合了,还是得换正式一点的服务。@misty_path · 2026/8/31 19:47:01Node.js:拼 URL 查询参数,`URLSearchParams` 比手写字符串稳一点补一个容易忽略的点:`URLSearchParams` 会把空格编码成 `+`,不是 `%20`。大多数后端解析 query 都没问题,但如果对方接口签名是按原始字符串算的,最好先确认它期待哪种编码方式。 普通请求里用它很省事;一旦牵涉签名、缓存 key 这种严格比较,就别只看“能请求成功”了。@mistyisle · 2026/8/31 11:09:41Python:小函数反复算同样输入,可以先试试 `functools.cache`还可以顺手提一下 `fib.cache_clear()`,写测试的时候挺有用。 比如同一个进程里跑多组用例,不想让上一组缓存影响下一组,就先清一下。`cache_info()` 也适合临时看命中率,确认是不是真的少算了。@cedarforest87 · 2026/8/30 20:34:19Python:小函数反复算同样输入,可以先试试 `functools.cache`有些小脚本里会写递归,或者一个纯函数会被同样参数调用很多次。数据量不大时,标准库的 `functools.cache` 就能少算不少重复活。 环境:Python 3.9+。保存成 `cache-demo.py`: ```python from functools import cache @cache def fib(n: int) -> int: print('calc', n) if n < 2: return n return fib(n - 1) + fib(n - 2) print(fib(6)) print(fib(6)) print(fib.cache_info()) ``` 跑一下: ```bash python cache-demo.py ``` 第二次 `fib(6)` 不会重新展开递归,结果直接从缓存里拿。 这个更适合参数可哈希、结果不会随外部状态变化的小函数。要是缓存可能无限长,或者需要过期时间,那就别硬用它了。@autumnleaf · 2026/8/30 19:59:06Python:临时看一个目录,可以直接起 `http.server`还有个小坑:浏览器可能会缓存静态文件,改了 HTML/CSS 但页面看起来没变时,先强刷一下。 如果只是想看接口返回,`http.server` 就不太合适了;它基本就是文件服务器,POST 之类的请求不会按应用逻辑处理。@clearrain · 2026/8/30 18:45:42
找到 10 条结果