Skip to content

開發指南 ​

兩套獨立工具鏈 ​

桌面應用使用 Go 1.27.2+ 和 go.mod 固定的 MyGo 0.4.8 工具。文件使用 Node.js 22+、pnpm 12.11.2 和 VitePress 2.0 alpha。建置應用不需要 Node。

sh
go mod download
make dev
make run
make build

檢查 ​

sh
make fmt
make check
make race
go tool mygo vet
make snapshots
go run ./tools/version

快照運行 internal/app 測試,將真實 MyGo 視圖以淺色和深色模式繪製到被忽略的 snapshots/ 目錄。UI 測試還以最小視窗尺寸繪製全部五種語言。測試不會連接 OSS。

可選的原生捕獲會啟動真實視窗、寫入截圖並結束:

sh
OSS_BROWSER_CAPTURE=/tmp/oss-browser.png go run . --config /tmp/oss-browser-settings.json

文件 ​

sh
pnpm install --frozen-lockfile
cd docs
pnpm dev
pnpm typecheck
pnpm build
pnpm preview

VitePress 在生產建置時校驗內部連結。文件包屬於根 pnpm 工作區;依賴變化時一並提交根 pnpm-lock.yaml。建置輸出位於 docs/.vitepress/dist;快取、依賴和建置產物均被忽略。

內部文章連結應相對於目前語言目錄(例如 ./design)。每篇根目錄文章都必須在四個語言目錄中有完整譯文;pnpm check:translations 會檢查頁面是否齊全,以及是否直接複製了英文正文,並在類型檢查和建置前運行。[locale]/[page].paths.ts 載入器可在開發期間為缺失譯文提供帶提示的英文回退頁面,但回退頁面不能通過發布前的完整性檢查。新增譯文會自動替換其回退頁面。共用圖片保留 /design/workspace.png 等根路徑。

文件 GitHub Actions 工作流已移除。推送和拉取請求不再建置文件站、執行類型檢查或上傳 Pages 產物,也無法再透過該工作流手動部署 Pages。修改文件後,請在本機 docs/ 目錄執行 pnpm typecheck 和 pnpm build。參見發布指南。

圖示資源 ​

批准的雲與儲存圖示來源檔案為 resources/icon-oss-v3.png。 從儲存庫根目錄運行 make icon,導出 1024px 應用圖示、512px 文件標誌、64px 網站圖示和 180px Apple touch 圖示。所有導出均保留透明度。MyGo 打包 resources/icon.png,全部五份 README 使用同一應用圖示。文件導航和本地化首頁使用 /icon.png。

原始碼佈局 ​

位置職責
main.go, cli.go解析 CLI 並向原生應用傳遞啟動選項
internal/appMyGo 生命週期、分組視窗狀態、操作、視圖和 UI 測試資料
internal/buildinfo向 CLI 和原生應用提供桌面版本
internal/transfers批量排程、日誌、恢復、清理和傳輸規劃
internal/ossclientOSS SDK 邊界、物件操作和斷點續傳
tools/version桌面/包版本同步及一致性檢查
internal/config設定校驗與安全持久化
internal/i18n五套嵌入式訊息目錄和語言解析
internal/desktop原生服務邊界
internal/tasks取消和過期回呼保護
internal/files現有本地文字/校驗和工具,為後續功能保留
internal/storage原子檔案寫入
resources, tools/genicon應用資源和圖示生成
docs獨立 VitePress 包

實現功能時再新增對應業務服務,不要建立空層。貢獻前閱讀儲存庫 AGENTS.md。

效能檢查 ​

sh
go test ./internal/transfers -run '^$' -bench 'BenchmarkQueue(AddBatch|Drain)' -benchmem
go test ./internal/app -run '^$' -bench BenchmarkObjectRowsCached -benchmem

佇列基準覆蓋 1,000/10,000/100,000 項任務插入及 1,000/10,000 項任務完成。排程器工作量應獨立於已完成歷史。瀏覽器行切片發布後不可變;重新整理或合併時替換列表,使排序快取失效。

文件研究(簡體中文) ​

文件研究(簡體中文)

OSS Browser 的獨立重構版本。