automate 1.3.0

dotnet tool install --global automate --version 1.3.0                
此软件包包含一个.NET 工具,您可以从shell/命令行调用。
dotnet new tool-manifest # if you are setting up this repo
dotnet tool install --local automate --version 1.3.0                
此软件包包含一个.NET 工具,您可以从shell/命令行调用。
#tool dotnet:?package=automate&version=1.3.0                
nuke :add-package automate --version 1.3.0                

Build and Test __Nuget Tool __Discord

  ┌─┐┬ ┬┌┬┐┌─┐┌┬┐┌─┐┌┬┐┌─┐
  ├─┤│ │ │ │ ││││├─┤ │ ├┤ 
  ┴ ┴└─┘ ┴ └─┘┴ ┴┴ ┴ ┴ └─┘

The Basic Idea

向开发者提出问题

如果我给你一个命令行工具,它可以为你编写大量的代码,并且需要约~5个命令行命令来构建API端点或创建UI页面的所有框架,你会怎么用它?

  • 你会为每个API或每个UI页面使用这个工具 一次

针对该代码库的技术主管提出的问题

如果我给你一个命令行工具,该工具可以构建开发者使用的另一个命令行工具,而你大约需要约~15个命令行命令来构建它怎么办?

  • 你只需要在 与代码库协作的基础上 做一次就可以了。

如果是这样,那么如果稍后该命令行工具被改进并更新(由你),随着代码库的演变和变化?下次开发者使用它时,它会自动重构并自动修复旧代码怎么办?

如果这些工具的选择存储在代码库旁边,与代码一起怎么办?

什么是 Automate?

  1. 为什么? - 一致性和节省时间
  2. 谁? - 技术主管,主导开发者,技术顾问
  3. 如何? - 为代码库的合作伙伴提供工具,这些工具可以提取和应用他们自己的编码模式、命名和结构,并随着代码的变化而演变。

它是如何工作的?

它的工作原理如下

  1. 您确定代码库中的一个 模式。例如,它可能是一个分层模式(接口)或垂直切片模式(领域模式)或特定类型的组件,或者是一种在多个地方以相似方式组合特定组件的方法等。
  2. 您选择(从代码库中)包含此模式当前代码的文件和文件夹。
  3. 然后这些文件将自动为您提取为 代码模板
  4. 您命名模式,并定义一些该模式的属性。属性是表示在模式应用到代码库中时可能发生变化的内容(例如:模式中的函数、类、类型、文件、文件夹的名称等)。
  5. 您修改代码模板以添加您已定义的替换项,这些替换项在代码模板被渲染时会进行计算。
  6. 可选地,您可以为代码模板应用之前和之后执行的其他命令定义约束,例如:运行包管理器安装依赖,或者运行自动化测试来验证代码没有损坏等。
  7. 可选地,您还可以定义关于模式在代码库中可复用性的约束(例如:仅在特定语言或位置等)
  8. 您“构建”您的模式,一个便携的工具包会自动为您创建,其中包含这些模板和自动化功能。
  9. 然后将这个新的工具包发送给您的开发团队,让他们将其安装到他们的代码库中,或者您可以替他们安装到他们正在使用的现有代码库中。
  10. 然后他们使用这个工具包来构造模式的使用实例(称为“草稿”),并为其特定的用例在他们的工作流程中进行配置。
  11. 工具包将代码模板渲染到代码库中的文件和文件夹中,并包含草稿中的信息,还会执行相关的自动化等。

处理变化

在某个时刻(不可避免),您可能希望更新模式。重构它,修改它,修复其中的缺陷,或者只是添加新功能等。

  1. 您只需编辑原始模式。编辑或添加更多的代码模板,可选地添加或更改自动化,并更新约束。
  2. 将为您自动构建一个包含这些升级的升级工具包版本。
  3. 然后将这个升级的工具包发送给您的团队(或代码库)以使用。
  4. 他们运行升级的工具包,并升级他们的代码库中的代码。
  5. 工具包会自动检测之前写入的文件/文件夹,以及之前使用的草稿配置。工具包重新应用升级的部分。代码库随之进化。

自动化适用于您吗?

如果以下关于您的软件团队的假设都是正确的,那么您可能需要考虑查看这个工具。

  • 您与别人在一个代码库上工作——您是一个软件团队的一员。

  • 您是团队的Tech Lead/Lead Dev/技术顾问(或团队中的其他受人尊敬的权威地位)。

  • 您亲自向这个代码库贡献代码,并且您经常与团队成员协作,关于代码如何结构化或编写。

  • 您已经有一些定义明确的编码模式,或者可以创建一些值得在特定代码库中重复使用的编码模式。

  • 您的团队重视:一致性、清晰性和可维护性。

  • 您承认代码会随时间改变,并保持更新是很重要的。

如果您的处境与此相似,那么我们可以帮助您为团队定义(并强制执行)一些特定的代码库编码模式,以便他们可以重复使用。

入门

查看我们的入门文档了解如何安装 automate。

制作您的第一个工具包

遵循这个教程来制作您的第一个工具包

更多...

厌倦了愚蠢的示例,并渴望看到在真实代码库中的示例吗?

  • 这里有一个示例工具包(从头开始构建),其中包含在一个真实代码库中的脚本式浏览,任何人都可以在自己的机器上跟随。

阅读我们的文档

想贡献什么?我们当然欢迎你们!

查看我们的贡献指南

加入Discord上的讨论

产品 兼容和额外的计算目标框架版本。
.NET net6.0 兼容。 net6.0-android 已计算。 net6.0-ios 已计算。 net6.0-maccatalyst 已计算。 net6.0-macos 已计算。 net6.0-tvos 已计算。 net6.0-windows 已计算。 net7.0 已计算。 net7.0-android 已计算。 net7.0-ios 已计算。 net7.0-maccatalyst 已计算。 net7.0-macos 已计算。 net7.0-tvos 已计算。 net7.0-windows 已计算。 net8.0 已计算。 net8.0-android 已计算。 net8.0-browser 已计算。 net8.0-ios 已计算。 net8.0-maccatalyst 已计算。 net8.0-macos 已计算。 net8.0-tvos 已计算。 net8.0-windows 已计算。
兼容的目标框架
包含的目标框架(在包中)
了解更多关于 目标框架.NET Standard 的信息。

此包没有依赖项。

版本 下载 最后更新
1.3.0 279 5/14/2023
1.2.0 165 5/7/2023
1.1.0 467 11/5/2022
1.0.7 458 10/29/2022
1.0.5 448 10/15/2022
1.0.4 476 10/3/2022
1.0.3 469 9/28/2022
1.0.2 439 9/25/2022
1.0.1 459 9/19/2022
0.2.7-preview 211 8/9/2022
0.2.6-preview 196 7/3/2022
0.2.5-preview 173 6/20/2022
0.2.4-preview 172 6/17/2022
0.2.3-preview 231 6/12/2022
0.2.2-preview 232 6/9/2022
0.2.1-preview 290 6/5/2022
0.2.0-preview 221 6/4/2022
0.1.13-preview 221 5/31/2022
0.1.12-preview 191 5/29/2022
0.1.11-preview 207 5/27/2022
0.1.10-preview 207 5/17/2022
0.1.9-preview 194 5/16/2022
0.1.8-preview 208 4/25/2022
0.1.7-preview 203 3/28/2022
0.1.6-preview 267 3/18/2022
0.1.5-preview 213 3/11/2022
0.1.4-preview 218 3/6/2022
0.1.1-preview 235 2/23/2022