【架构优化】删除 domain.runTerminal 重复实现,computeRunTiming 复用 TerminalRunStatus

Ouverte
#462 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

@fx-kurumi y travaille déjà.

Depuis le 13/11/2026.

  • #464 par @fx-kurumi — ouverte

Évaluation

Difficulté
1/5
Temps estimé
Moins d'une heure
Accessibilité débutants
25/100
Type d'issue
Refactorisation
Clarté
Clairement spécifiée
Activité
À l'abandon
Stack technique
go
Domaine
backend

Piste de recherche

Start in internal/domain/run_timing.go, where the private runTerminal duplicates the exported TerminalRunStatus from internal/domain/run_eval.go. Read computeRunTiming and switch its call to TerminalRunStatus, then add the test cases described in internal/domain/run_timing_test.go. Run go test ./internal/domain/ and go vet ./internal/domain/. Note that PR #464 is already open against this issue, so check it before starting.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

现状问题

internal/domain/run_timing.go 里有私有函数 runTerminal(status),判断运行是否已结束(succeeded/failed/cancelled)。同一个包的 internal/domain/run_eval.go 已有导出函数 TerminalRunStatus(status) 做同样的判断,并被 httpapi、repo 等多处使用。runTerminal 只有 computeRunTiming 一个调用方,属于同包重复实现,以后增减终态时容易漏改一处。

重构方案

  • 删除 runTerminal,computeRunTiming 改为调用 TerminalRunStatus。
  • 两者唯一差别是 TerminalRunStatus 会先去掉首尾空白;运行状态由系统写入,均为规范值,不存在带空白的状态,实际结果一致。
  • 补充测试:终态运行用最后的终结事件作为结束时间,非终态运行用 now。

影响范围

只改 internal/domain/run_timing.go(删 4 行、改 1 行)和 internal/domain/run_timing_test.go(新增测试)。不涉及导出接口、数据库或前端。

验证方式

gofmt、go vet ./internal/domain/、go test ./internal/domain/ 全部通过。

Langage dominant
Go
Étoiles
141
Forks
28
Merge moyen
1 j 15 h
PR mergées (30 j)
113

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de Tencent/LoopForge

Toutes les issues de Tencent/LoopForge

Issues similaires

Plus d'issues Go

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.