Kacam.net看開網

程式碼審查

评审一段缓存代码

读缓存、写数据库、删缓存 —— 这三行的顺序里藏着一小时的脏数据。

複製提示詞,選一家接著聊 —— 它會當面試官逐幕問你,而不是把答案倒給你。

手機上裝了對應 App 的,系統會直接開 App。微信裡點不開外部 App,得先用瀏覽器打開。

複製走的那段末尾帶著判卷用的底牌,別自己先讀 —— 自己推出來過才算學到。

三个函数:读商品、更新商品、取热榜。都是日常写法,也都是线上真出过事的写法。

这一份追一个别的地方很少追的问题:脏数据会在缓存里待多久。 一次不一致和「一小时都不一致」是两回事,而说不出后面那个数的人,改法通常也是错的。

第三幕的中心问题是:先删缓存再更新库有窗口,那反过来就没有了吗? 两种顺序都有窗口,只是差几个数量级 —— 说得出这一句才算过。

★★★★☆ · 約 35 分鐘 · 主考:更新顺序的两条时间线、穿透与击穿、TTL 雪崩、缓存挂了怎么办

這一段埋的主要是

快取 並行

練過沒有

登入之後可以記下「這道題我練過」,下次回來看得到是哪天練的。

練過的人寫的心得

還沒有人寫。練完之後,說說你和模型聊出了什麼 —— 哪一幕被問住了,哪個結論你後來改了。

登入之後可以寫心得。

怎麼用

材料是我們寫的:一段幾十行、看起來能跑的程式碼,按嚴重度埋了十條左右的問題。所以這個系列不用你帶自己的程式碼,打開就能練。

姿態是拷問:不許劇透、不許誇你、答不上來是正常結局。你說「這裡有並行問題」它不會放過你 —— 要你畫出兩列時間線,算出後果的規模。

怎麼開始

  1. 挑一份,點開它,把提示詞複製走。
  2. 新開一個空對話貼進去,它會先把那段程式碼原樣貼給你。
  3. 自己讀,把發現的問題一條條說完 —— 第一幕它不打斷也不提示。說完了再說一句「沒有了」。

中途隨時能喊的四個口令

  • 跳过 立刻進下一幕
  • 提示 給一個方向,但不給答案
  • 直说吧 講這一點的完整答案,然後繼續追代價
  • 复盘 立刻跳到收尾,輸出複盤卡片

收尾給的是一個數

發現率:自己找到幾條、一共幾條、其中幾條是誤報。還有一個更難看的數 —— 你漏掉的裡有幾條屬於最嚴重那一檔(會丟錢、會洩漏資料、會把服務打掛)。那個數比總分有用。

三條坑

  • 末尾的底牌就是那份問題清單,別自己先讀 —— 讀了這一份就沒得練了。
  • 別報命名和風格。這裡考的是會不會丟錢、會不會洩漏資料,報風格會被記成一次誤報。
  • 它開始誇你的時候,提醒它看「不要誇我」那條。被肯定的感覺會蓋掉「我漏了什麼」。

先做「轉帳」,它是這批裡問題最集中的一份;天天寫介面的直接做「列表介面」,那一份的越權和排序注入最容易在自己專案裡找到同款。做完哪一份都值得回去搜一遍自己的程式碼 —— 這批題真正的產出是收尾那三條可帶走的檢查項。