先備知識與環境陷阱跟在所屬的指令旁邊,用結構承接
先備知識與環境陷阱跟在所屬的指令旁邊,用結構承接
操作指引裡有兩類補充資訊工程師確實需要:先備知識(這個參數為什麼值得用、背後的系統行為是什麼)與環境陷阱(特定平台上同一條指令會靜默失敗)。這些內容本身有價值,問題在它們出現的位置。
散落的形態
講課的時候講到哪補充到哪是自然的——講者正在操作,想到一個相關的事就說。搬到文章上,這些補充散落成遊離的散文段落,跟它們所屬的指令或參數隔了好幾行。讀者掃指令列表時跳過它們、在需要的時候找不到、在不需要的時候被它們打斷閱讀。
兩個實例:
logcat -G 16M的參數表格說「放大緩衝區」,為什麼要放大的理由寫在表格下面一段遊離的散文裡——讀者掃完表格就往下一節走,那段散文變成沒人讀的區塊。- macOS 上
timeout的靜默失敗寫在「找特定元件的啟動紀錄」段之後,但它跟啟動紀錄沒有關係——它是 logcat 時間窗那個概念的另一條(錯誤的)路徑。
歸位原則
先備知識與環境陷阱的正確位置是它們所屬的指令或概念旁邊,用固定的結構承接:
- 參數的理由寫進參數的說明裡。表格的用途欄、或緊跟指令的那一段說明,讀者拿到指令的同時拿到理由。理由不獨立成段——獨立成段的散文在掃描式閱讀中被跳過。
- 環境陷阱跟在它替代的那條路徑旁邊。
timeout的陷阱跟的是時間窗的概念,因為讀者決定要用timeout的時間點是在讀到時間窗的時候,而不是讀完啟動紀錄之後。 - 判斷歸位的問題是「讀者在讀到哪個位置時會需要這段資訊」。答案指向的那個位置就是它該放的地方。
跟其他抽象層原則的關係
教學定位被讀成教室講課(#355)管的是教室形式的根因——為什麼會有講到哪補充到哪的寫法。本卡管的是那個形式的其中一個後果——補充資訊散落——以及它的歸位原則。兩者的判別方式不同:#355 問「刪掉這一段讀者還知不知道在講什麼」,本卡問「讀者在需要這段資訊時找不找得到它」。
敘事的解碼材料要在讀者已讀的文本裡管的是材料的存在,本卡管的是材料的位置。材料存在但位置錯了,每一段單獨讀都通順,而讀者在需要它的時候翻不到。