superfile 專案結構指南
此專案採用標準 Go 專案配置,並清楚分離各項關注點。以下是主要目錄及其用途的詳細說明:
核心目錄
src/ - 主要原始碼
主要原始碼分成幾個關鍵目錄:
cmd/ - 進入點
main.go- 應用程式的主要進入點,負責:- CLI 參數解析
- 設定初始化
- 應用程式啟動
config/ - 設定管理
fixed_variable.go- 包含常數值與設定路徑icon/- 圖示相關設定function.go- 圖示初始化與管理函式icon.go- 圖示定義與對應
internal/ - 核心應用程式邏輯
包含應用程式的主要商業邏輯,依功能組織:
設定與型別:
config_function.go- 設定載入與管理config_type.go- 設定相關型別定義default_config.go- 預設設定值type.go- 核心型別定義
檔案操作:
file_operations.go- 基本檔案操作函式file_operations_compress.go- 檔案壓縮功能file_operations_extract.go- 檔案解壓縮功能handle_file_operations.go- 檔案操作處理器
UI 與互動:
handle_modal.go- Modal dialog 管理handle_panel_movement.go- 面板導覽邏輯handle_panel_navigation.go- 面板聚焦管理handle_pinned_operations.go- 釘選項目功能key_function.go- 鍵盤輸入處理model.go- 核心應用程式 modelmodel_render.go- UI 渲染邏輯
工具:
function.go- 一般工具函式get_data.go- 資料取得函式string_function.go- 字串處理工具string_function_test.go- 字串工具測試style.go- UI 樣式定義style_function.go- UI 樣式函式string_function_test.go- 字串工具測試style.go- UI 樣式定義style_function.go- UI 樣式函式
testsuite/ - 使用 Python 撰寫的 superfile testsuite
- 自動測試 superfile 的功能。
- 詳細資訊請參閱
testsuite/ReadMe.md
程式碼組織原則
-
關注點分離:
- 設定管理隔離在
config/目錄 - 核心商業邏輯位於
internal/ - UI 相關程式碼與商業邏輯分開
- 設定管理隔離在
-
模組化設計:
- 每個檔案都有特定職責
- 相關功能會分組在一起
- 元件之間的相依關係清楚
-
測試:
- 測試檔會放在其測試的程式碼旁邊
- 範例:
string_function_test.go測試string_function.go
貢獻指南
為 superfile 貢獻時:
-
新增功能:
- 將新的商業邏輯放在適當的
internal/子目錄中 - 保持 UI 相關程式碼與商業邏輯分離
- 遵循既有命名慣例
- 將新的商業邏輯放在適當的
-
進行變更:
- 維持既有檔案結構
- 為新功能新增測試
- 如有需要,更新設定檔
-
程式碼風格:
- 遵循 Go 最佳實務
- 維持一致格式
- 新增適當文件
這個結構有助於維持程式碼組織,也讓新的貢獻者更容易了解應該在哪裡進行變更。