国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

.Net單元測(cè)試xUnit和集成測(cè)試指南(1)

這篇具有很好參考價(jià)值的文章主要介紹了.Net單元測(cè)試xUnit和集成測(cè)試指南(1)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

引言

在現(xiàn)代化的軟件開發(fā)中,單元測(cè)試集成測(cè)試是確保代碼質(zhì)量和可靠性的關(guān)鍵部分。ASP.NET Core 社區(qū)內(nèi)提供了強(qiáng)大的單元測(cè)試框架,xUnit 是其中之一,它提供了簡(jiǎn)單、清晰和強(qiáng)大的測(cè)試功能,編寫單元測(cè)試有許多優(yōu)點(diǎn);有助于回歸、提供文檔及輔助良好的設(shè)計(jì)。下面幾節(jié)我們來(lái)深入淺出探討如何使用 xUnit 進(jìn)行 ASP.NET Core 應(yīng)用程序的單元測(cè)試和集成測(cè)試。

內(nèi)容大綱:

xUnit 簡(jiǎn)介

xUnit.net 是一個(gè)免費(fèi)、開源、面向社區(qū)的.NET 單元測(cè)試工具。由 NUnit v2 的原始發(fā)明者編寫,xUnit.net 是用于 C#F#(其他.NET 語(yǔ)言可能也可以使用,但不受支持)的最新技術(shù)單元測(cè)試。xUnit.net 可與 Visual StudioVisual Studio Code、ReSharper、CodeRushTestDriven.NET 一起使用。它是.NET 基金會(huì)的一部分,并遵守其行為準(zhǔn)則。其許可協(xié)議為 Apache 2(為 OSI 批準(zhǔn)的許可協(xié)議)。

xUnit.net 官方網(wǎng)站

創(chuàng)建單元測(cè)試項(xiàng)目

在單元測(cè)試中通常要遵循AAA模式,也就是 ArrangeAct、Assert,這是一種常見的測(cè)試組織結(jié)構(gòu)。

  • Arrange(準(zhǔn)備): 在這個(gè)階段,將設(shè)置測(cè)試的前提條件,初始化對(duì)象、設(shè)置輸入?yún)?shù)等。簡(jiǎn)單講就是準(zhǔn)備測(cè)試環(huán)境,確保被測(cè)代碼在正確的上下文中執(zhí)行。
  • Act(執(zhí)行): 在這個(gè)階段,會(huì)執(zhí)行要測(cè)試的代碼或方法。這是針對(duì)被測(cè)代碼的實(shí)際調(diào)用或操作。
  • Assert: 在這個(gè)階段,會(huì)驗(yàn)證被測(cè)代碼的行為是否符合預(yù)期。檢查實(shí)際結(jié)果與期望結(jié)果是否一致,如果不一致則測(cè)試失敗。

示例:

[Fact]
public void Add_EmptyString_ReturnsZero()
{
    // Arrange
    var stringCalculator = new StringCalculator();

    // Act
    var actual = stringCalculator.Add("");

    // Assert
    Assert.Equal(0, actual);
}

可讀性是編寫單元測(cè)試最重要的方面之一,在測(cè)試中分離這些操作 都明確地突出調(diào)用代碼所需的依賴項(xiàng)、調(diào)用代碼的方式以及嘗試斷言的內(nèi)容,讓測(cè)試盡可能具有可讀性。

好了理解了這個(gè)核心概念我們可以先創(chuàng)建項(xiàng)目一步步的練習(xí)了。

用 VS 創(chuàng)建單元測(cè)試項(xiàng)目

.Net單元測(cè)試xUnit和集成測(cè)試指南(1)

在項(xiàng)目創(chuàng)建完之后我們可以簡(jiǎn)單瀏覽一下 xUnit 單元測(cè)試項(xiàng)目裝了那些 nuget 依賴,做到對(duì)項(xiàng)目有個(gè)簡(jiǎn)單的了解

  <ItemGroup>
    <PackageReference Include="coverlet.collector" Version="6.0.0" />
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
    <PackageReference Include="xunit" Version="2.5.3" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.5.3" />
  </ItemGroup>

下面我們創(chuàng)建一個(gè)簡(jiǎn)單的數(shù)據(jù)計(jì)算類。

  • 創(chuàng)建數(shù)學(xué)計(jì)算類
public class MathCalculator
{
    public int Add(int a, int b)
    {
        return a + b;
    }
}
  • 創(chuàng)建數(shù)據(jù)計(jì)算測(cè)試類
public class MathCalculatorTests
{
    [Fact]
    public void Add_TwoNumbers_ReturnSum()
    {
        // Arrange
        var calculator = new MathCalculator();

        // Act
        var result = calculator.Add(3, 5);

        // Assert
        Assert.Equal(8, result);
    }
}

測(cè)試一下,測(cè)試類庫(kù)右鍵->運(yùn)行測(cè)試

.Net單元測(cè)試xUnit和集成測(cè)試指南(1)

可以看到 我們的單元測(cè)試通過。

單元測(cè)試命名規(guī)范

本著代碼自文檔的原則,測(cè)試的名稱建議應(yīng)包括三個(gè)部分:

  • 要測(cè)試的方法的名稱。
  • 測(cè)試的方案。
  • 調(diào)用方案時(shí)的預(yù)期行為。

示例

    [Fact]
    public void Add_TwoNumbers_ReturnSum()
    {
        // Arrange
        var calculator = new MathCalculator();

        // Act
        var result = calculator.Add(3, 5);

        // Assert
        Assert.Equal(8, result);
    }

要測(cè)試的方法名稱是 MathCalculator 中的 Add 方法,測(cè)試的方案是傳兩個(gè)數(shù),預(yù)期是返回兩數(shù)之和 按照上面的測(cè)試名稱的命名規(guī)則可以命名為Add_TwoNumbers_ReturnSum。

單元測(cè)試最佳命名規(guī)范應(yīng)該包括三個(gè)關(guān)鍵部分:要測(cè)試的方法的名稱、測(cè)試的場(chǎng)景,以及調(diào)用該場(chǎng)景時(shí)的預(yù)期行為。良好的命名標(biāo)準(zhǔn)能清晰表達(dá)測(cè)試意圖,提供有效文檔,便于他人理解代碼行為和快速定位問題。

單元測(cè)試最佳實(shí)踐


將方法標(biāo)記為測(cè)試方法在 xUnit 中有兩個(gè)屬性,FactTheory

Fact 屬性

在方法上我們看到有一個(gè) Attribute [Fact] ,[Fact] 屬性是 xUnit 中最基本的測(cè)試屬性之一,用于標(biāo)記一個(gè)方法作為一個(gè)無(wú)需參數(shù)且不返回任何內(nèi)容的測(cè)試方法。被標(biāo)記為 [Fact] 的方法將會(huì)被 xUnit 框架識(shí)別并執(zhí)行.

Theory 屬性

Theory 屬性用于標(biāo)記一個(gè)測(cè)試方法,該方法可以接受參數(shù)并運(yùn)行多次,每次運(yùn)行時(shí)使用不同的參數(shù)值。Theory 屬性通常用于數(shù)據(jù)驅(qū)動(dòng)測(cè)試,允許在同一個(gè)測(cè)試方法中使用不同的輸入數(shù)據(jù)進(jìn)行測(cè)試.

InlineData 屬性

[InlineData] 屬性指定這些輸入 Theory 標(biāo)記的測(cè)試方法的參數(shù)值。

示例:

[Theory]
[InlineData(-1)]
[InlineData(0)]
[InlineData(1)]
public void IsPrime_ValuesLessThan2_ReturnFalse(int value)
{
    var result = _primeService.IsPrime(value);

    Assert.False(result, $"{value} should not be prime");
}

InlineData 適用于靜態(tài)、硬編碼的測(cè)試數(shù)據(jù)集合,適合于簡(jiǎn)單且固定的測(cè)試場(chǎng)景。

MemberData 屬性

MemberData 屬性是 xUnit 中用于數(shù)據(jù)驅(qū)動(dòng)測(cè)試的一種方式,它允許從一個(gè)字段、屬性或方法中獲取測(cè)試數(shù)據(jù),并將這些數(shù)據(jù)傳遞給測(cè)試方法進(jìn)行多次測(cè)試。通過 MemberData 屬性,可以更靈活地管理和提供測(cè)試數(shù)據(jù),適用于需要?jiǎng)討B(tài)生成測(cè)試數(shù)據(jù)的情況。

使用方式

  • 標(biāo)記測(cè)試方法:使用 [Theory] 屬性標(biāo)記測(cè)試方法,以便接受從 MemberData 屬性提供的測(cè)試數(shù)據(jù)。
  • 準(zhǔn)備測(cè)試數(shù)據(jù):創(chuàng)建一個(gè)公共靜態(tài)字段、屬性或方法,該字段、屬性或方法返回一個(gè) IEnumerable<object[]> 對(duì)象,其中每個(gè) object[] 對(duì)象代表一組測(cè)試數(shù)據(jù)。
  • 傳遞測(cè)試數(shù)據(jù):在 MemberData 屬性中指定要使用的數(shù)據(jù)源,從而將數(shù)據(jù)傳遞給測(cè)試方法。

示例

    public static IEnumerable<object[]> GetComplexTestData()
    {
        yield return new object[] { 10, 5, 15 }; // 測(cè)試數(shù)據(jù) 1
        yield return new object[] { -3, 7, 4 }; // 測(cè)試數(shù)據(jù) 2
        yield return new object[] { 0, 0, 0 }; // 測(cè)試數(shù)據(jù) 3
        // 可以根據(jù)需要繼續(xù)添加更多的測(cè)試數(shù)據(jù)
    }

   [Theory]
   [MemberData(nameof(GetComplexTestData))]
   public void Add_TwoNumbers_ReturnsSumofNumbers01(int first, int second, int sum)
   {
       // Arrange
       var calculator = new MathCalculator();

       // Act
       var result = calculator.Add(first, second);

       // Assert
       Assert.Equal(sum, result);
   }

MemberData 適用于動(dòng)態(tài)、靈活的測(cè)試數(shù)據(jù)集合,適合于需要從外部源動(dòng)態(tài)獲取測(cè)試數(shù)據(jù)的情況。

.Net單元測(cè)試xUnit和集成測(cè)試指南(1)

自定義屬性

除了上面提到的 InlineDataMemberData 之外還可以有更加靈活的方式繼承DataAttribute實(shí)現(xiàn)自定義的Attribute。

我們來(lái)做一個(gè)實(shí)現(xiàn)和上面一樣的需求

  • 實(shí)現(xiàn) Custom Attribute

[AttributeUsage(AttributeTargets.Method, AllowMultiple = true)]
public class CustomDataAttribute : DataAttribute
{

    private readonly int _first;
    private readonly int _second;
    private readonly int _sum;

    public CustomDataAttribute(int first, int second, int sum)
    {
        _first = first;
        _second = second;
        _sum = sum;
    }
    public override IEnumerable<object[]> GetData(MethodInfo testMethod)
    {
        yield return new object[] { _first, _second, _sum };
    }
}



  • 用例
   [Theory]
   [CustomData(1, 2, 3)]
   [CustomData(2, 3, 5)]
   public void Add_TwoNumbers_ReturnSum03(int num1, int num2, int expectedSum)
   {
       // Arrange
       var calculator = new MathCalculator();

       // Act
       var result = calculator.Add(num1, num2);

       // Assert
       Assert.Equal(expectedSum, result);
   }

自定義屬性相較于使用 InlineDataMemberData 有以下優(yōu)勢(shì):

  1. 靈活性:自定義屬性允許您實(shí)現(xiàn)更復(fù)雜的邏輯來(lái)動(dòng)態(tài)生成測(cè)試數(shù)據(jù),可以從不同數(shù)據(jù)源中獲取數(shù)據(jù),實(shí)現(xiàn)更靈活的數(shù)據(jù)驅(qū)動(dòng)測(cè)試。

  2. 重用性:通過自定義屬性,您可以將相同的測(cè)試數(shù)據(jù)邏輯應(yīng)用于多個(gè)測(cè)試方法,提高測(cè)試代碼的重用性和可維護(hù)性。

  3. 可擴(kuò)展性:自定義屬性可以根據(jù)需求進(jìn)行定制和擴(kuò)展,適應(yīng)不同的測(cè)試場(chǎng)景和數(shù)據(jù)需求,使得測(cè)試數(shù)據(jù)的生成更具靈活性。

  4. 可讀性:通過自定義屬性,可以使測(cè)試代碼更具可讀性和表達(dá)力,更清晰地表達(dá)測(cè)試數(shù)據(jù)的來(lái)源和意圖。

盡管使用 InlineDataMemberData 可以滿足大多數(shù)簡(jiǎn)單的測(cè)試數(shù)據(jù)需求,但當(dāng)需要更復(fù)雜的數(shù)據(jù)生成邏輯、數(shù)據(jù)源、或者對(duì)測(cè)試數(shù)據(jù)進(jìn)行處理時(shí),使用自定義屬性會(huì)更具優(yōu)勢(shì),能夠更好地滿足個(gè)性化的測(cè)試需求。

在測(cè)試中應(yīng)避免邏輯

[Theory]的出現(xiàn)就是為了避免我們?cè)趩卧獪y(cè)試時(shí)編寫一些額外的邏輯,造成測(cè)試之外的一些錯(cuò)誤。

編寫單元測(cè)試時(shí),請(qǐng)避免手動(dòng)字符串串聯(lián)、邏輯條件(例如 if、while、for 和 switch)以及其他條件。

錯(cuò)誤示范:

   [Fact]
   public void Add_TwoNumbers_ReturnsSumofNumbers02()
   {
       // Arrange
       var calculator = new MathCalculator();
       var testData = new List<(int, int, int)>
   {
       (1, 2, 3),
       (2, 3, 5),
       (3, 4, 7)
   };

       // Act & Assert
       foreach (var (first, second, sum) in testData)
       {
           var result = calculator.Add(first, second);
           Assert.Equal(sum, result);
       }
   }

此處用了 forEach 循環(huán)來(lái)批量斷言,違反了單元測(cè)試的最佳實(shí)踐。

測(cè)試中應(yīng)避免邏輯的好處是:

  • 降低在測(cè)試中引入 bug 的可能性。
  • 專注于最終結(jié)果,而不是實(shí)現(xiàn)細(xì)節(jié)。

ITestOutputHelper 控制臺(tái)輸出

在 xUnit 中我們利用 Console.WriteLine輸出時(shí)發(fā)現(xiàn)什么也不會(huì)顯示,在 xUnit 單元測(cè)試項(xiàng)目中我們需要利用ITestOutputHelper。
ITestOutputHelper是 xUnit 中的一個(gè)接口,用于在單元測(cè)試中輸出信息。通過 ITestOutputHelper,您可以在測(cè)試運(yùn)行時(shí)將調(diào)試信息、日志信息等輸出到測(cè)試結(jié)果中,方便調(diào)試和查看測(cè)試過程中的輸出信息。

調(diào)試

再要測(cè)試的方法上右鍵選擇調(diào)試測(cè)試,或者點(diǎn)擊方法上面的小點(diǎn)
.Net單元測(cè)試xUnit和集成測(cè)試指南(1)

最后

本篇文章簡(jiǎn)單的講了單元測(cè)試的基礎(chǔ)知識(shí),讓大家先對(duì)單元測(cè)試有個(gè)基本的概念,這些用在具體的項(xiàng)目中顯然是不夠的,后面的章節(jié)我們聊一下 TDD,Fake 管理,Log 日志輸出,單元測(cè)試覆蓋率,WebApi 的集成測(cè)試,DependencyInjection,Bogus,還有 Devops 的單元測(cè)試等知識(shí)。

本文完整源代碼文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-844119.html

到了這里,關(guān)于.Net單元測(cè)試xUnit和集成測(cè)試指南(1)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Wisej.NET 3.2.3 Crack 商業(yè)應(yīng)用程序的Web開發(fā)構(gòu)建遷移現(xiàn)代化工具

    Wisej.NET 3.2.3 Crack 商業(yè)應(yīng)用程序的Web開發(fā)構(gòu)建遷移現(xiàn)代化工具

    Wisej.NET 3.2 adds new enterprise-grade features that simplify the development of complex Line of Business (LOB) cloud applications for the enterprise. Our goal is always to help improve developers productivity and make the applications using Wisej.NET more resilient and maintainable. ? Getting Started The latest Wisej.NET 3.2 is available on NuGet. To use

    2024年02月16日
    瀏覽(107)
  • C# 使用xUnit進(jìn)行單元測(cè)試

    C# 使用xUnit進(jìn)行單元測(cè)試

    目錄 寫在前面 操作步驟 ?執(zhí)行結(jié)果 xUnit.net 是 NUnit 的作者Jim Newkirk搞的一個(gè)新的單元測(cè)試框架,目的是解決 NUnit 存在的一些問題和缺點(diǎn),并在框架中加入一些最佳實(shí)踐和擴(kuò)展能力。 主要的改進(jìn)點(diǎn)如下: 為每個(gè)測(cè)試方法產(chǎn)生一個(gè)對(duì)象實(shí)例 取消了 [SetUp] 和 [TearDown] 取消了 [Ex

    2024年02月04日
    瀏覽(23)
  • 自動(dòng)化測(cè)試集成指南 -- 本地單元測(cè)試

    自動(dòng)化測(cè)試集成指南 -- 本地單元測(cè)試

    單元測(cè)試 (Unit Test) 是針對(duì) 程序的最小單元 來(lái)進(jìn)行正確性檢驗(yàn)的測(cè)試工作。程序單元是應(yīng)用的最小可測(cè)試部件。一個(gè)單元可能是 單個(gè)程序、類、對(duì)象、方法 等。 如何區(qū)分單元測(cè)試和集成測(cè)試,一般情況下,單元測(cè)試應(yīng)該不依賴數(shù)據(jù)庫(kù),網(wǎng)絡(luò),I/O和其他模塊,否則就是集成測(cè)

    2024年02月16日
    瀏覽(74)
  • 工程化測(cè)試:Apollo的單元測(cè)試與集成測(cè)試指南

    工程化測(cè)試:Apollo的單元測(cè)試與集成測(cè)試指南

    「作者主頁(yè)」 :雪碧有白泡泡 「?jìng)€(gè)人網(wǎng)站」 :雪碧的個(gè)人網(wǎng)站 「推薦專欄」 : ★ java一站式服務(wù) ★ ★ React從入門到精通 ★ ★ 前端炫酷代碼分享 ★ ★ 從0到英雄,vue成神之路★ ★ uniapp-從構(gòu)建到提升 ★ ★ 從0到英雄,vue成神之路 ★ ★ 解決算法,一個(gè)專欄就夠了 ★ ★

    2024年02月06日
    瀏覽(23)
  • 掌握 xUnit 單元測(cè)試中的 Mock 與 Stub 實(shí)戰(zhàn)

    掌握 xUnit 單元測(cè)試中的 Mock 與 Stub 實(shí)戰(zhàn)

    上一章節(jié)介紹了 TDD 的三大法則,今天我們講一下在單元測(cè)試中模擬對(duì)象的使用。 Fake - Fake 是一個(gè)通用術(shù)語(yǔ),可用于描述 stub 或 mock 對(duì)象。 它是 stub 還是 mock 取決于使用它的上下文。 也就是說, Fake 可以是 stub 或 mock Mock - Mock 對(duì)象是系統(tǒng)中的 fake 對(duì)象,用于確定單元測(cè)試是

    2024年04月12日
    瀏覽(22)
  • XUnit單元測(cè)試(實(shí)用項(xiàng)目)——看完不會(huì)用你打我

    XUnit單元測(cè)試(實(shí)用項(xiàng)目)——看完不會(huì)用你打我

    xUnit.net 是針對(duì) .NET 的免費(fèi)、開源單元測(cè)試框架,可并行測(cè)試、數(shù)據(jù)驅(qū)動(dòng)測(cè)試。測(cè)試項(xiàng)目需要同時(shí)引用 xUnit和被測(cè)試項(xiàng)目,從而對(duì)其進(jìn)行測(cè)試。測(cè)試編寫完成后,用 Test Runner 來(lái)測(cè)試項(xiàng)目,Test Runner 可以讀取測(cè)試代碼,并且知道所會(huì)使用的測(cè)試框架,然后執(zhí)行,并顯示結(jié)果。

    2024年02月04日
    瀏覽(19)
  • Day956.代碼現(xiàn)代化 -遺留系統(tǒng)現(xiàn)代化實(shí)戰(zhàn)

    Day956.代碼現(xiàn)代化 -遺留系統(tǒng)現(xiàn)代化實(shí)戰(zhàn)

    Hi,我是 阿昌 ,今天學(xué)習(xí)記錄的是關(guān)于 代碼現(xiàn)代化 的內(nèi)容。 代碼現(xiàn)代化的主要模式。 大體的脈絡(luò)是這樣的: 先對(duì)代碼做可測(cè)試化重構(gòu),并添加測(cè)試; 在測(cè)試的保護(hù)下,安全地重構(gòu); 在測(cè)試的保護(hù)下,將代碼分層。 先來(lái)看看 如何讓代碼變得可測(cè) ,這是遺留系統(tǒng)現(xiàn)代化的

    2024年02月01日
    瀏覽(55)
  • Day960.架構(gòu)現(xiàn)代化-微服務(wù) -遺留系統(tǒng)現(xiàn)代化實(shí)戰(zhàn)

    Day960.架構(gòu)現(xiàn)代化-微服務(wù) -遺留系統(tǒng)現(xiàn)代化實(shí)戰(zhàn)

    Hi,我是 阿昌 ,今天學(xué)習(xí)記錄的是關(guān)于 架構(gòu)現(xiàn)代化-微服務(wù) 的內(nèi)容。 在 自治氣泡模式 的基礎(chǔ)上,通過 事件攔截 來(lái)實(shí)現(xiàn) 數(shù)據(jù)同步 ,給氣泡和遺留系統(tǒng)之間又加上 API 訪問 這個(gè)通信渠道。 這時(shí)的自治氣泡就和真正的微服務(wù)差不多了。 有了這種模式,在開發(fā)一個(gè)全新的需求時(shí)

    2024年02月02日
    瀏覽(156)
  • 現(xiàn)代C++編程實(shí)戰(zhàn)25-兩個(gè)單元測(cè)試庫(kù):C++里如何進(jìn)行單元測(cè)試

    現(xiàn)代C++編程實(shí)戰(zhàn)25-兩個(gè)單元測(cè)試庫(kù):C++里如何進(jìn)行單元測(cè)試

    你好,我是吳詠煒。 單元測(cè)試已經(jīng)越來(lái)越成為程序員工作密不可分的一部分了。在 C++ 里,我們當(dāng)然也是可以很方便地進(jìn)行單元測(cè)試的。今天,我就來(lái)介紹兩個(gè)單元測(cè)試庫(kù):一個(gè)是 Boost.Test [1],一個(gè)是 Catch2 [2]。 單元測(cè)試庫(kù)有很多,我選擇 Boost 的原因我在上一講已經(jīng)說過:“

    2024年02月07日
    瀏覽(23)
  • 《遺留系統(tǒng)現(xiàn)代化》讀書筆記(基礎(chǔ)篇)

    《遺留系統(tǒng)現(xiàn)代化》讀書筆記(基礎(chǔ)篇)

    目錄 為什么要對(duì)遺留系統(tǒng)進(jìn)行現(xiàn)代化? 什么是遺留系統(tǒng)? ?遺留系統(tǒng)的現(xiàn)代化價(jià)值 總結(jié) 遺留系統(tǒng)的四化建設(shè) 代碼現(xiàn)代化 架構(gòu)現(xiàn)代化 DevOps 現(xiàn)代化 團(tuán)隊(duì)結(jié)構(gòu)現(xiàn)代化 總結(jié) 本文地址:《遺留系統(tǒng)現(xiàn)代化》讀書筆記(基礎(chǔ)篇)_陸業(yè)聰?shù)牟┛?CSDN博客 ?你現(xiàn)在所寫的每一行代碼,

    2024年02月16日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包