关于

尤利亚

你好,我是尤利亚。这里是我的个人博客,记录我关心的事:技术、阅读,以及偶尔的生活片段。

更新节奏:想到什么写什么。

记录与思考。

yulia.com.cn
首页关于
第 2 页 · 共 2 篇
尤利亚 10219ee912421f0b ·
sticky 定位的一个坑

今天被一个布局问题卡住:侧栏的 position: sticky 怎么都不生效。

查了一圈,原因很经典:任何一个祖先元素设了 overflow: hidden(或 auto、scroll),sticky 就会失效,因为它需要一个能滚动的上下文。

排查清单

  1. sticky 元素本身要有 top(或 bottom 等)阈值
  2. 父链上没有非 visible 的 overflow
  3. 父元素高度要足够,不然没地方「粘」

记下来,下次少踩一次。

尤利亚 10219ee912421f0b ·

出门时还在犹豫,雨不大不小,最后还是去了。

雨里的公园完全是另一个世界:跑道空着,只有几个撑伞散步的人。五公里跑完,鞋湿透,但意外地舒服。

一些心得:

  • 小雨其实不碍事,跑起来就不冷了
  • 关键是鞋——湿了也没关系,回家晾干就好
  • 唯一要注意是手机,揣防水袋里

以后下雨天不再犹豫了。

尤利亚 10219ee912421f0b ·
git stash 的进阶用法

很多人(包括以前的我)只用 git stash 和 git stash pop。其实它能做的多得多。

常用但容易被忽略的

git stash push -m "wip: 重构登录页"   # 带备注,方便以后认
git stash list                        # 看都有哪些
git stash show -p stash@{1}           # 看具体内容
git stash apply stash@{2}             # 应用但不删除
git stash drop stash@{0}              # 单独删一个
git stash branch fix/login stash@{1}  # 直接从某个 stash 开分支

最后一个特别有用:stash 完改了别的,再回来时直接开分支,避免冲突。

尤利亚 10219ee912421f0b ·

纠结了很久,终于换了一把机械键盘。

选的是线性轴,声音不大,办公室友好。用了两周的感受:

  • 触发压力比想象中重要,太轻会误触
  • 键帽高度对手感影响很大,原厂高度最适应
  • 声音确实影响心情,但也确实更吵

值不值?对每天敲几千字的人来说,值。

尤利亚 10219ee912421f0b ·
HTTP 缓存笔记

每次配缓存都要现查,干脆写一篇笔记。

两类缓存

类型 行为 相关头
强缓存 不发请求,直接用本地 Cache-Control: max-age=…, Expires
协商缓存 发请求问服务器变了没 ETag / If-None-Match, Last-Modified / If-Modified-Since

实践建议

  • 带 hash 的静态资源:max-age=31536000, immutable
  • HTML:no-cache(每次都协商),或很短的 max-age
  • no-store 才是真的不缓存,no-cache 只是要重新验证

最大的误区:no-cache 不是「不缓存」。

尤利亚 10219ee912421f0b ·

记录一下窗台三位的近况。

  • 薄荷:疯长,已经剪了两茬做柠檬薄荷水。越剪越旺。
  • 多肉:徒长了,茎拉得老长。原因明确:光照不够。已经挪到最晒的位置,观察中。
  • 绿萝:从不操心,水培的根系已经很壮观。

心得:植物的问题大多是光和水,别急着施肥。

尤利亚 10219ee912421f0b ·
TypeScript 类型收窄备忘

类型收窄天天用,但写法选哪个经常要想一下。

三种常见场景

// 1. 原始类型:typeof
function pad(x: string | number) {
  if (typeof x === "string") return x.padStart(8, "0");
  return String(x).padStart(8, "0");
}

// 2. 对象结构:in
function area(s: { r: number } | { w: number; h: number }) {
  if ("r" in s) return Math.PI * s.r ** 2;
  return s.w * s.h;
}

// 3. 最推荐:判别联合
type Shape =
  | { kind: "circle"; r: number }
  | { kind: "rect"; w: number; h: number };

判别联合配合 switch + never 兜底,新增类型时编译器会提醒你没处理——这是最大的好处。

尤利亚 10219ee912421f0b ·
一次没有目的地的城市漫步

周六下午试了一件很简单的事:出门,不看地图,走到哪算哪。

结果:

  • 一家卖旧相机的小店,老板会给你讲每台机器的来历
  • 一条只在下午营业的面包巷,肉桂卷四点就卖完
  • 一个藏在居民楼里的二手书店,按斤卖

平时走路全是「从 A 到 B」,城市被折叠成了地铁站和导航线。偶尔展开一次,才发现它其实很大。

以后每个月留一个下午给这种走法。

尤利亚 10219ee912421f0b ·

这个博客是纯静态的:写好的 Markdown 在构建时变成 HTML,部署后就是一堆文件。很多人问为什么不加个后台、加个评论。

理由

  1. 不用维护:没有数据库就没有备份问题,没有服务端就没有安全补丁
  2. 快:文件直接被托管,没有任何运行时
  3. 写得下去:流程越简单,写作的心理成本越低

评论暂时不需要——想说话的人可以写信给我。静态不是简陋,是选择。

第 2 页 · 共 2 篇