
该用
不该用display:table时:布局需响应式、语义清晰、可访问性强,且不模拟表格数据结构;它强制表格渲染逻辑,限制margin、vertical-align,无法优雅折行,误用于导航栏等场景。
该用border而非outline;border需同时指定width、style、color三参数,可用方向性属性如border-top单独设置某边,border-radius使边框自身变圆,深色模式...
歌单页主体必须用包裹,且仅一个;歌单封面、标题、简介、歌曲列表等核心内容属于内,其中可分语义分组;歌曲列表须用保持序号语义;仅用于强相关非核心内容如相似歌单。
ThreadPool是底层线程复用机制,Task默认运行其上;直接调用QueueUserWorkItem缺乏Task的异常传播、await、延续等能力,且易引发异常丢失、竞态等问题,多数场景应优先使用...
该用std::pair当只需临时组合两个值且无语义需求;语义重要时应选struct。std::make_pair更安全因自动推导与完美转发,避免构造失败。
哨兵错误仅适用于语义明确、无上下文、跨包契约稳定的场景;需用var全局定义,供调用方做确定性分支判断,且不可携带动态信息;滥用会导致耦合与演进锁死。
RGB描述显示器发光原理,通过红绿蓝三通道强度叠加颜色,精准但调色不直观;HSL对应人眼感知,以色相、饱和度、亮度直观调控颜色,适合主题切换与配色设计。
该用for(auto&x:container)而非for(autox:container)时:拷贝代价高(如std::string、大结构体)需避免构造/析构开销;只读遍历优先用constau...
resize修改size和元素内容,扩大时默认构造新元素,缩小时析构末尾元素;reserve仅调整capacity,不改变size或元素。
应使用errors.Is和errors.As,而非手动循环调用errors.Unwrap;二者自动处理多层嵌套、语义清晰安全,且能穿透包装器重写的Error()方法。