Skip to content

RFC: 采取API first的开发策略并提供命令行工具 #1451

@link89

Description

@link89

简介 | Abstract

scow 是一个处于快速开发阶段的平台,处于这个阶段的软件一个常见的现象是有大量的功能和bug fix急待解决与交付。在这种情况下,如果功能的开发需要打通从产品设计、后端实现和前端实现的完整逻辑,则交付时间会很长,并且容易因为rush而出现问题。

在这种情况下,优先交付API并提供命令行工具会是一个更合理,也更容易让社区参与的选项。同时,scow是面向超算管理员的平台,命令行对于超算管理员来说更容易实现运维自动化。对于scow开发者而言,命令行也是天然的自动化测试工具,对于加速开发过程也有重大意义。

详细介绍 | Detailed Description

举例来说,目前有几个重要的后端能力是希望scow能交付的,例如 #1450 该功能是实现一个将某个account 的 owner 由一个成员转移给另一成员。该功能在UI层面如何进行产品设计和开发是一个相对复杂的问题,但在API层面则要简单得多:提供一个 SetAccountOwner 的接口,该接口接受一个新的 account 名做为参数,在执行时,后台启动一个事务将 account owner 字段进行替换即可。

而命令行层面上,用户可以

scow-cmd login --url http://scow-ip/  --user demo_admin 
> enter your password: *******

scow-cmd set_account_owner --account demo_account --owner user1

如此一来该功能可以在不对UI进行改动的情况下进行交付。

UI设计 | UI Design

本提案的目的在于推迟UI功能开发的优先级。

对数据库的修改 | Changes to database schemas.

No response

对API的修改 | Changes to API

No response

您是否有兴趣实现此功能? | Are you interested to implement it?

  • 是 | Yes
  • 否 | No

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions