驗(yàn)、戰(zhàn)報(bào)式Changelog與Commit考古學(xué))
【免費(fèi)下載鏈接】kotlin-footgunsBattle-tested agent skills mapping the footguns of Kotlin, Compose Multiplatform and the desktop JVM — mined from a production music app, not from documentation.項(xiàng)目地址https://gitcode.com/gh_mirrors/ko/kotlin-footguns點(diǎn)擊查看免費(fèi)下載kotlin-footguns 是一套從生產(chǎn)級(jí)跨平臺(tái)音樂應(yīng)用 SimpMusic 中挖掘出來的 Kotlin 與 Compose Multiplatform 實(shí)戰(zhàn)技巧庫收錄了 224 個(gè)踩坑地圖式技能。其中工程方法論組沉淀了三條最值錢的做事原則判別性實(shí)驗(yàn)、戰(zhàn)報(bào)式 Changelog 和 Commit 考古學(xué)。它們能幫你少走彎路、少燒構(gòu)建、少踩已經(jīng)有人付過學(xué)費(fèi)的坑。一、kotlin-footguns 是什么先看懂這張踩坑地圖 ?kotlin-footguns 的每個(gè)技能都是一份獨(dú)立的SKILL.md而且最大的章節(jié)永遠(yuǎn)是Traps陷阱——某個(gè)技術(shù)在實(shí)際開發(fā)中具體會(huì)怎么翻車以及如何在你自己的代碼樹上驗(yàn)證失敗、驗(yàn)證修復(fù)。來源不是官方文檔而是三年生產(chǎn)環(huán)境的崩潰報(bào)告、失敗發(fā)布和用戶反饋每個(gè)文件控制在 60–140 行兩分鐘就能讀完每條結(jié)論都配了驗(yàn)證命令讓你能自查而不是照單全收想看完整索引打開 CATALOG.md想了解整體背景讀 README.md。本清單的主角是工程方法論組N 組共 7 個(gè)技能。二、判別性實(shí)驗(yàn)先數(shù)變量再動(dòng)手改代碼 適用場景兩個(gè)幾乎一樣的東西一個(gè)正常工作、一個(gè)壞掉了同一個(gè)問題你已經(jīng)試過兩三次修復(fù)都沒用。新手最常見的壞毛病是按最強(qiáng)的猜想去改改完驗(yàn)證不行再換下一個(gè)猜想。這個(gè)循環(huán)代價(jià)極高每次猜錯(cuò)都要付出一次完整的驗(yàn)證成本而猜錯(cuò)時(shí)你什么信息都沒得到。判別性實(shí)驗(yàn)的思路是先數(shù)一數(shù)兩邊還有幾個(gè)變量沒對(duì)齊只要大于 1就不允許你寫修復(fù)。先設(shè)計(jì)一個(gè)交換或互換實(shí)驗(yàn)讓一次構(gòu)建就能砍掉一半的嫌疑原因。真實(shí)案例一個(gè)頁面頭部有兩個(gè)控件共用同一個(gè)視覺特效——圓按鈕沒有效果長條藥丸控件有效果。前四輪都在換形狀、去包裹層、喂真實(shí)內(nèi)容全錯(cuò)了。第五輪把兩個(gè)控件的位置互換特效跟著藥丸走、而不是跟著位置走。位置這一個(gè)變量被一次排除剩下的才是控件自身幾何形狀的問題。幾條可落地的口訣動(dòng)手前先寫兩句話如果特效跟著控件走那么……如果它留在原地那么……。寫不出來說明這個(gè)實(shí)驗(yàn)沒有區(qū)分度別花冤枉輪次交換時(shí)只動(dòng)兩個(gè)位置別順手改縮進(jìn)、別改名、別整理——那就不再是一次干凈的交換了實(shí)驗(yàn)代碼要打個(gè)標(biāo)記清理時(shí)別把還沒讀數(shù)的實(shí)驗(yàn)刪掉只改善癥狀、卻說不清為什么那是第二份待解釋的觀察不是可以上線的修復(fù)完整規(guī)則見 skills/run-discriminating-experiment-first/SKILL.md。三、戰(zhàn)報(bào)式 Changelog把試過又否掉的東西寫下來 Commit message 只說改了什么很少說試過哪些、為什么放棄、什么時(shí)候才能拆掉這個(gè)臨時(shí)方案。這些信息沒地方放最后只能由一個(gè)不知道它存在的人重新踩一遍。kotlin-footguns 提倡的做法在倉庫根目錄維護(hù)一個(gè)按日期記錄條目的 markdown 文件每進(jìn)一個(gè)不熟的領(lǐng)域之前先讀它。一條有用的戰(zhàn)報(bào)要帶四樣?xùn)|西Symptom癥狀——?jiǎng)e人當(dāng)時(shí)看到了什么用他們自己的話說Mechanism機(jī)制——為什么會(huì)這樣講到讓修復(fù)說得通的那個(gè)層面What was ruled out否掉了什么——試過但不管用的合理替代方案明確點(diǎn)名The exit condition退出條件——上游或平臺(tái)發(fā)生什么變化后這條才可以刪掉最高價(jià)值的部分是否掉了什么也是趕時(shí)間時(shí)第一個(gè)被砍掉的。沒有退出條件的臨時(shí)方案會(huì)永遠(yuǎn)留在原地永遠(yuǎn)算必需。幾條關(guān)鍵紀(jì)律條目要和代碼改動(dòng)一起落別想著之后再補(bǔ)——那條永遠(yuǎn)等不來的后續(xù)提交本身就是陷阱查問題時(shí)先搜這個(gè) markdown再搜 commit message滿足退出條件的條目應(yīng)該刪除而不是原地歸檔模板與自查命令見 skills/changelog-as-war-story/SKILL.md。四、Commit 考古學(xué)別被 git 歷史騙了 ??歷史是那些正忙著、還不知道什么才重要的人寫下的證據(jù)。三條紅旗占了從歷史里得出錯(cuò)誤結(jié)論的大部分紅旗 1沒有正文的 commit。標(biāo)題會(huì)同時(shí)說少和說多文件統(tǒng)計(jì)--stat才是它真正的摘要。比如一條end of friday標(biāo)題什么都沒交代卻可能是歷史中改動(dòng)最大的提交之一一條refactor code folder標(biāo)題夸大了重構(gòu)其實(shí)只是搬文件。紅旗 2子倉庫指針更新。當(dāng)一部分項(xiàng)目放在子倉庫submodule里推進(jìn)它的 commit 在統(tǒng)計(jì)里只顯示 1 個(gè)文件、1 行改動(dòng)真實(shí)內(nèi)容全藏在另一側(cè)倉庫的那兩個(gè)指針之間普通歷史命令在這里看不見它們。紅旗 3壓扁的合并。merge 的標(biāo)題只是分支名不寫決策。一個(gè)來回一周的分支抵達(dá)時(shí)只剩一行若先被 rebase 或 squash中間的推理根本不在這個(gè)倉庫里。幾條保命的習(xí)慣想引用哪個(gè) commit就讀一遍它的統(tǒng)計(jì)一條命令的代價(jià)別把一行改動(dòng)讀成很小的改動(dòng)子倉庫指針、生成文件、鎖文件都會(huì)這樣blame 落到一次搬移動(dòng)畫上時(shí)別停先跟著文件穿過搬移別只搜默認(rèn)分支也別只按當(dāng)天用過的詞去搜方法詳見 skills/commit-archaeology-red-flags/SKILL.md。五、同組的三塊補(bǔ)強(qiáng)方法論 工程方法論組還有幾個(gè)和上面三條互相成就的技能值得一起帶走空實(shí)現(xiàn)不是平臺(tái)限制——多平臺(tái)項(xiàng)目里一個(gè)空的、直通的平臺(tái)實(shí)現(xiàn)通常意味著還沒人寫而不是平臺(tái)做不到。判斷前先查依賴的解析變體和源集。見 skills/noop-actual-not-platform-limit/SKILL.md。從下往上讀構(gòu)建日志——去底部找結(jié)論再去第一個(gè)錯(cuò)誤標(biāo)記找原因永遠(yuǎn)別用一個(gè)固定行數(shù)的窗口去截日志。見 skills/read-build-logs-bottom-up/SKILL.md。這套倉庫自己的寫作風(fēng)格——描述里同時(shí)帶上觸發(fā)場景和讀者正盯著的錯(cuò)誤癥狀Traps 章節(jié)占大頭驗(yàn)證命令要真跑過。見 skills/writing-agent-skill-house-style/SKILL.md。六、如何上手這套工程方法論清單 打開 CATALOG.md定位 N 組工程方法論 / 紀(jì)律共 7 個(gè)技能挑你當(dāng)前正在卡的場景修不好同樣的 bug → 判別性實(shí)驗(yàn)要進(jìn)一個(gè)不熟的領(lǐng)域 → 戰(zhàn)報(bào)式 Changelog想搞清楚為什么代碼長這樣 → Commit 考古學(xué)每個(gè)技能末尾都帶Verifying it自查命令對(duì)著你自己的倉庫跑一遍把結(jié)論落到自己樹上kotlin-footguns 的價(jià)值不在教你某個(gè) API 怎么用而在把這些已經(jīng)用崩潰報(bào)告、失敗發(fā)布和評(píng)審輪次付過學(xué)費(fèi)的教訓(xùn)提前擺到你面前。三條方法論記住一句話就夠先數(shù)變量再動(dòng)手、把否掉的東西寫下來、讀歷史前先懷疑它。贊分享【免費(fèi)下載鏈接】kotlin-footgunsBattle-tested agent skills mapping the footguns of Kotlin, Compose Multiplatform and the desktop JVM — mined from a production music app, not from documentation.項(xiàng)目地址https://gitcode.com/gh_mirrors/ko/kotlin-footguns點(diǎn)擊查看免費(fèi)下載相關(guān)推薦kotlin-footguns桌面JVM原生代碼終極清單JNA綁定陷阱、soname沖突與內(nèi)存占用排查kotlin footguns桌面JVM原生代碼終極清單JNA綁定陷阱、soname沖突與內(nèi)存占用排查 kotlin footguns 是一套專為 KotliDevilution 逆向工程實(shí)錄Diablo 1 源碼考古的六大利器與完整方法論Devilution 逆向工程實(shí)錄Diablo 1 源碼考古的六大利器與完整方法論 1996 年發(fā)售的《暗黑破壞神》Diablo 1在 2001 年打完最游戲開發(fā)逆向工程gh_mirrors/cs/C-Sharp中的考古學(xué)算法文物識(shí)別實(shí)現(xiàn)gh_mirrors/cs/C Sharp中的考古學(xué)算法文物識(shí)別實(shí)現(xiàn) 引言 在考古學(xué)研究中文物識(shí)別是一項(xiàng)至關(guān)重要的任務(wù)。傳統(tǒng)的文物識(shí)別方法往往依賴考古專家的示例工程科學(xué)計(jì)算創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考