2024年最全猿创征文|,2024年最新三幅图给你弄懂EventBus核心原理

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

在这里插入图片描述

我们要讨论的第一个工具是Visual Studio,它是.NET框架最先进的开发工具之一。它用于创建计算机软件,以及网站、web应用程序、web服务和移动应用程序。

VisualStudio与大约36种编程语言协作,它使代码编辑器和调试器能够为任何可能的编程语言提供服务。

Visual Studio最突出的功能:

  • VS的快速代码导航很容易找到类型并识别它们的参考代码。
  • VS使用自定义代码分析和调试对错误进行分类并提高代码质量。
  • 先进的IntelliSense构成了一种有助于代码导航的预测算法。
  • VS的实时单元测试允许自动管理受影响的单元测试。

高效

使用 64 位 IDE 缩放以处理任何大小和复杂性的项目。 用新的 Razor 编辑器进行编码,可以跨文件进行重构。 诊断与异步操作和自动分析器的可视化效果相关的问题。

现代

使用.NET MAUI 开发跨平台移动版和桌面版应用。 使用 Blazor 生成采用 C# 的响应式 Web UI。 在 Linux 环境中生成、调试、测试 .NET 和 C++ 应用程序。 跨 .NET 和 C++ 应用使用热重载功能。 在 Web 设计器视图中编辑正在运行的 ASP.NET 页。

创新

由 AI 提供支持的代码完成。 使用共享编码会话实时协同工作。 克隆存储库、导航工作项以及暂存单行以进行提交。 自动设置可部署到 Azure 的 CI/CD 工作流。

⭐ 位于代码编辑器内

输入操作量减少,代码产量更多

IntelliCode 是一组功能强大的自动代码完成工具,它可以了解代码上下文:变量名称、函数和正在编写的代码类型。 这使 IntelliCode 能够一次完成整行,从而帮助你更准确、更自信地进行编码。

对代码的深入见解

CodeLens 可帮助你轻松找到重要见解,例如已进行哪些更改、这些更改产生的影响、以及是否已对方法运行单元测试。 提供重要信息(例如引用、作者、测试和提交历史记录),可指导你做出最明智的工作决策。

在这里插入图片描述

⭐ 支持你做好交付准备

在成为问题之前及时制止

集成调试是每个 Visual Studio 产品的核心部分。 可以分步执行代码并查看存储在变量中的值、设置对变量的监视以查看值更改的时间、检查代码的执行路径,以及需要在后台查看的任何内容。

在这里插入图片描述

即时影响

分析正在测试的代码数量,并查看已针对效率优化的测试套件中的即时结果。了解所做的每个更改的影响,并让高级功能在你键入代码时对其进行测试。 借助 WSL 集成,可以在 Windows 和 Linux 上进行测试,以确保应用在所有位置均可运行。

在这里插入图片描述

⭐ 无缝云集成

Azure 部署

部署到云变得更加简单。我们提供通用应用程序类型和本地仿真器所需的所有模板。你只需在 Visual Studio 中即可预配依赖项,如 Azure SQL 数据库和 Azure 存储帐户。你甚至可以使用直接连接到应用程序的远程调试器快速诊断任何问题。

在这里插入图片描述

集成的版本控制

Visual Studio 2022 内置支持 Git 版本控制来克隆、创建和打开自己的存储库。 Git 工具窗口包含提交和推送代码更改、管理分支和解决合并冲突所需的一切内容。如果你有 GitHub 帐户,则可以直接在 Visual Studio 内管理这些存储库。

在这里插入图片描述

📑 代码分析工具:NDepend

在这里插入图片描述

NDepend是作为VisualStudio插件的最佳免费代码分析之一。它会立即、准确地检查源代码,从而呈现全面、定义明确和禁止的度量。

此外,NDepend还提供了强大的功能,可以分析您的代码并检查省份以及指标。此外,它定制分析的能力对项目来说是最好的。

让我们来看看NDepend的好处:

  • NDepend提高了代码的可维护性。
  • 开发人员使用此工具增强了对成本和风险的控制。
  • 它与Visual Studio工具精确集成。
  • 该工具提高了开发团队的生产力。
  • 使用此工具,团队开发更好的代码。
  • CQlinq定制代码分析的最佳帮助。
⭐ NDepend和SRP

避免类型过大
避免太多方法的类型
避免太多字段的类型
避免过大和过于复杂的方法
避免使用参数过多的方法
避免使用过多局部变量的方法

⭐ OCP 开闭原则

很多人认为开闭原则是所有原则中最难理解和应用的。所谓的开闭原则,指的是你的类型应该对拓展开放,但是对修改关闭。换句话说,对子类的增加一定不能导致父类的任何修改。NDEpend中的“基类不应该使用派生”规则通过指示基类永远不要提及其子类来帮助我们防止这种情况。

⭐ LSP 里氏替换原则

NDepend恰好有一条规则可以警告你这种情况,这条规则被相当恰当地称为“实现抛出NotImplementedException的方法。”

你会发现,在使用TDD时,此异常最有用。

⭐ ISP 接口隔离原则

接口隔离原则指的是:

不应强迫客户端依赖于不使用的接口。

为了遵循此原理,你应该使接口尽可能的小和精细。换句话说,你应该避免接口太大,这是我们现在要讨论的NDepend规则的确切名称。

⭐ DIP 依赖反转原则

所谓的依赖反转原则指的是:抽象接口不应该依赖于具体实现。而具体实现则应该依赖于抽象接口。

这条NDepend规则通过鼓励你将包含抽象的命名空间与包含具体内容的命名空间(即所述抽象的实现)分开来帮助你实现此目的。

📑 LINQPad

在这里插入图片描述

LINQPad适用于那些不喜欢质疑老式SQL语言的人,它是使用现代编程语言LINQ或SQL查询数据库的最佳选择之一。

LINQPad让开发人员有机会裁决代码行、测试片段和应用程序。

除此之外,对开发人员最有利的方面包括:

  • 可选自动完成
  • 输出格式
  • 集成调试
⭐ 高级转储

正如你们中的许多人已经知道的那样,在控制台上打印东西你不必调用Console.WriteLine(somthing),但你可以使用somthing.Dump();

当然,这个简单的技巧会让你的代码更容易阅读!

好的,如果你有太多的 Dump 调用并且你不知道哪个操作打印哪个日志怎么办?幸运的是,Dump方法接受一个字符串作为 Title:该文本将显示在输出面板中。

⭐ 转储容器

转储容器是您的日志的某种接收器。实例化DumpContainer对象后,您可以执行一些操作,例如AppendContent在日志末尾附加一些内容、ClearContent清除内容(显然!)以及Dump在结果面板中显示容器的内容。

举个例子:我们想要遍历一个项目列表并使用一个 Container 来显示项目本身,并使用另一个 Container 来列出当我们对每个项目执行一些操作时会发生什么。

⭐ 从输入中读取文本

向我们的脚本提供输入的能力非常有用,但经常被忽视。

为此,您可以依赖Util.ReadLineLINQPad 中已包含的方法:

运行应用程序时,您会在窗口底部看到一个黑框,允许您编写(或粘贴)一些文本。然后将该文本分配给myContent变量。

⭐ 粘贴为转义字符串

这是我最喜欢的功能之一:很多时候我必须转义包含引号的文本,从其他地方复制以将其分配给string变量;我过去常常浪费时间手动转义这些值(嗯,使用仍然比这个慢的其他工具)。

⭐ xUnit 测试支持

您可以用来玩弄您不知道的类或方法的另一个不错的功能是 xUnit 测试支持。

通过单击Query > Add XUnit Test Support,您可以将 xUnit 添加到您的查询中并编写(并运行,显然)单元测试。

📑 ReSharper

在这里插入图片描述

ReSharper已经有十多年历史了,但软件市场对该工具的需求仍然很高,以帮助.Net工具的开发人员进行编码。这些工具在开发人员中的流行是因为不断更新和开发最新功能。

这个工具最好的部分是它是对VisualStudio的增强,这意味着它为开发人员提供了一个全新的功能部分。

它被认为是Visual Studio的扩展,ReShaper以其独特的代码分析技能向前迈进了一步,当它检测到一些代码气味和代码泄漏时,它会立即纠正代码。

ReSharper.NET开发工具,其中包括非常重要的代码设计,.NET框架的开发人员可以从Visual Studio课程设计中获得这些设计。它可以在整个设置中轻松重构。

⭐ Resharper安装后的改变

VisualStudio的启动速度

VS启动变慢了,大约比之前会慢5-10s,所以,还是机械硬盘的同学赶紧换一块SSD吧;

你的任务管理器里面VisualStudio的内存开销变大了,所以,机器内存不足8GB的赶紧再加一根4GB的内存条吧;

安装后,Resharper会用他自己的英文智能提示

替换掉了VisualStudio的智能提示。

快捷键

使用VisualStudio的快捷键还是使用 Resharper的快捷键呢?我是使用Resharper的快捷键。

菜单和窗口的改变

Visual Studio菜单栏出现Resharper选项,包含了所有的命令(除了仅在上下文中可用的命令)。特定命令的工具窗口。所有工具窗口可用Resharper->Windows菜单调用。

简单上手

你可以简单地这样体验一下:Ctrl+Alt+Insert,回车,就可以在当前项目中添加一个类,还记得以前你是怎么做的吗?在解决方案资源管理器中选中一个项目,然后右键,在长长的弹出菜单中选择:添加——类,如果你的电脑够慢的话,我猜可能要在3秒钟之后才会弹出一个对话框来问你文件名。

📑 NuGet

在这里插入图片描述

NuGet让Microsoft建立了一种共享代码的机制,该机制定义了.NET的包,这些包是制作、促进和扩展的。

开发人员利用NuGet包来共享代码,这对于社区、企业、企业和工作组都是非常谨慎的。他们还可以使用包作为最简单的技术,将自己的代码用于项目中。

Nuget是 ASP .NET Gallery 的一员。NuGet 是免费、开源的包管理开发工具,专注于在 .NET 应用开发过程中,简单地合并第三方的组件库。

当需要分享开发的工具或是库,需要建立一个Nuget package,然后把这个package放到Nuget的站点。如果想要使用别人已经开发好的工具或是库,只需要从站点获得这个package,并且安装到自己的Visual Studio项目或是解决方案里。

NuGet能更方便地把一些dll和文件(如jquery)添加到项目中,而不需要从文件中复制拷贝。

📑 NUnit

在这里插入图片描述

NUnit是一个开源框架,用于设计和运行各种Microsoft.NET编程语言的测试。该工具可用于连续运行的测试以及同时运行的众多测试。

这个.NET开发工具还提供了快速的测试结果,它不需要人为地澄清测试结果。除此之外,该工具可以可靠且毫不费力地修复bug。

⭐ NUnit的基本用法

和其他xNUnit框架不同的是,NUnit框架使用Attribute(如前面代码中的[Test])来描述测试用例的,也就是说我们只要掌握了 Attribute的用法,也就基本学会如何使用NUnit了。VSTS所集成的单元测试也支持类似NUnit的Attributes,下表对比了 NUnit和VSTS的标记:

usageNUnit attributesVSTS attributes
标识测试类TestFixtureTestClass
标识测试用例(TestCase)TestTestMethod
标识测试类初始化函数TestFixtureSetupClassInitialize
标识测试类资源释放函数TestFixtureTearDownClassCleanup
标识测试用例初始化函数SetupTestInitialize
标识测试用例资源释放函数TearDownTestCleanUp

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

例资源释放函数 | TearDown | TestCleanUp |

[外链图片转存中…(img-Po1BZNFF-1715293549773)]
[外链图片转存中…(img-10liCYgj-1715293549774)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值