Io 程式設計/Io 風格指南
外觀
< Io 程式設計
此頁面應包含編寫良好 Io 程式碼的指南。請貢獻您的智慧,但為了便於讀者查詢內容,請將每個主要標題按字母順序排列。
- 儘可能使用設定器,而不是直接賦值。
- 讀/寫屬性,通常在其他語言中找到,可以透過重寫物件上的setSlot方法來模擬。但是,除非你有充分的理由這樣做,否則不要這樣做。你只會讓你的程式執行速度變慢,並增加出現錯誤的可能性。
- 設定器在長期內更易讀。告訴一個物件setForeground(Color White)比fgPen = Color White更有意義,當閱讀(因此,當維護)程式碼時。
- 將對外部物件的直接賦值視為有害。
- 讓外部物件決定如何影響自己的狀態。
- 告訴物件要做什麼;它通常比你更瞭解“如何做”。
- 如果外部物件缺少一個方法來影響你認為必要的狀態變化,請編寫一個。記住,Io 允許你這樣做,即使對於你沒有自己編寫的程式碼也是如此。
- 為了保持方法不超過三個引數,請使用設定器來初始化物件狀態,只要有必要。
- 一些物件會維護一些非平凡的狀態。init方法應該
- 僅用於初始化物件狀態為已知的良好預設值,僅在必要時。
- 不要用於初始化獲取預設字面量或不可變值的欄位(例如,0,“”。從原型繼承它們。
- 一定要用於初始化獲取預設動態建立值的欄位(例如,list() 等)。否則,此類值將被物件的
- 不要用作設定器的替代品,設定器用於改變物件的配置,使其偏離其預設狀態。
- 為了便於隔離和可測試性,請依賴於依賴注入。
- 除非絕對必要,否則不要嘗試獲取資源,包括檔案、視窗、網路套接字等。相反,請將它們作為引數接受。
- 記住:物件擁有關於自身的特定於域的知識,並且專門用於自身,僅限於自身。保持這種狀態。
- 示例:一個電子表格物件維護一個包含公式和字面量資料的矩陣。它不知道此資訊如何儲存在資料檔案中。相反,impex(importor/exporter 的簡稱)物件用於從檔案讀取資料並適當地填充電子表格,或者查詢電子表格並相應地寫出資料檔案。檢視物件只是一種特殊型別的匯出器:一種將資料渲染到螢幕而不是渲染到檔案中的匯出器。這可以採用熟悉的矩陣形式,也可以採用某種多值圖表的形式。同樣,鍵盤和滑鼠結合在一起,形成了一種特殊的匯入器介面。因此,載入和儲存電子表格被簡化為對資料輸入的
- 儘可能保持物件狀態儘可能小。
- 對其他物件的引用應該只存在以允許物件完成其工作。
- 最終執行兩個或更多個工作的物件應該重構為兩個或更多個物件。
- 方法名稱應以小寫字母開頭,以保持 Io 已建立的編碼約定。
- 將超過三個引數傳遞給方法表明物件應該被重構。
- 最小化方法的引數數量。
- 使用充當引數集合的“引數物件”。
- 在沒有其他有用值的情況下,始終返回self,允許其他物件方法連結在一起。
- 使用方法鏈來重構否則需要超過三個引數的方法。