Jiang

你我山巅自相逢

All Posts


在C#中进行单元测试

单元测试是验证各个代码单元(通常是方法或函数)的正确性的过程,与系统的其余部分隔离。这可确保每个单元按预期执行,并有助于在开发过程的早期捕获潜在的错误或问题。单元测试通常是自动化的、独立的,并且侧重于单元的特定方面。它们应该易于理解、维护和执行,为任何想要确保代码质量的开发人员提供坚实的基础。 单元测试在软件开发中的重要性 单元测试是现代软件开发中的关键实践。它的重要性怎么强调都不为过,因为它: 确保功能:它验证每个代码单元是否按预期工作,避免错误和其他问题。 增强可维护性:编写良好的测试可以让开发人员自信地重构或更改代码。 提高代码质量:它鼓励最佳实践,如 SOLID 原则,并使开发人员更好地编写更可测试的代码。 加速开发:尽早并经常进行测试,使开发人员能够更快地检测和修复问题,从而减少调试所花费的总时间。 促进协作:共享测试套件使开发人员能够共同理解代码,并实现顺畅 …

dotnet

Linux服务器安全-初始化自动配置

作为开发人员,不可避免需要接触服务器,我们需要认证对待这些主机的安全,这份工作本因由专业的系统管理员或者运维人员完成。 文章为学习自动化配置虚拟机记录,对虚拟机进行安全强化。 前提: 1.主机来自云提供商的虚拟机,具有标准计算机映像。 2.服务器上安装Debian11(Bullseye)或Ubantu。[适用于任何Linux发行版,细节会有所不同] 3.对Shell命令有基本了解,和使用 了解攻击: 现在最常见的攻击莫过于机器人扫描了,例如:你购买了云服务器开启SSH密码之后,几十分钟内,你就可以在你的SSH请求日志里面看到许多失败请求了。 查询命令:[last username]:查看最近登录情况,包括用户名,终端,IP地址,登陆时间,持续时间 [lastlog]:查看各个用户最近一次登录情况。 [sudo less /var/log/ …

Linux

人工智能和机器学习之间的区别

1.什么是人工智能? 人工智能和机器学习是两个通常可以互换使用的术语。但它们不是一回事。人工智能是一个包含许多子领域的领域,包括机器学习。 人工智能是一门计算机科学的分支,旨在构建能够模仿或超越人类智能行为的机器,例如理解语言、识别图像、推理决策等。人工智能可以分为弱人工智能(weak AI)和强人工智能(strong AI),前者指只能在特定领域或任务上表现出智能的系统,后者指能够在任何领域或任务上表现出与人类相当或更高的智能的系统。 人工智能的子领域: Machine Learning(机器学习) 机器学习是人工智能的子领域,涉及创建能够从过去的经验中学习的算法和统计模型。换句话说,它是人工智能的一部分,负责教人工智能系统如何使用由特定情况下的数据训练的复杂统计算法在规定的情况下采取行动。 Natural Language …

AI

React中 useRef和useState

1.什么是钩子(hooks) 钩子(hooks)是React中一种特殊的函数,可以让你在函数式组件中使用一些类组件中才有的特性,比如状态管理、副作用、上下文等。钩子(hooks)有很多种类,比如useState、useEffect、useRef等,每种钩子都有自己的用法和规则。使用钩子(hooks)可以让你的组件更简洁和可复用。 2.useRef和useState是什么 useRef是一个钩子(hook),可以让你创建一个可变的引用(reference),它在组件的整个生命周期中保持不变。useRef返回一个对象,它有一个current属性,你可以把任何值赋给它。useRef主要用于访问和操作DOM元素,或者存储一些不需要触发重新渲染的可变值。当你改变useRef对象的current属性时,React不会重新渲染你的组件。 useState是一个钩子(hook),可以让你在函数式组 …

React

关于API设计实践

1.API设计实践的目标和原则 一些重要的概念和术语介绍: REST:一种架构风格,强调组件交互的可扩展性,接口的通用性,组件的独立部署。 REST模型:描述一个业务资源,以及客户端系统如何与之交互。模型会详细说明操作,方法和路径。它可能包含断言和状态码。它与域数据模型对齐,但进行了抽象,以提高可组合性,通用性和稳定性。 API类型:根据API的目的和范围,可以分为不同的类型,例如公共API,合作伙伴API,内部API等。 目标: 提高API的一致性,稳定性,通用性和可用性 促进API的复用,组合和自助服务 降低API的开发和维护成本 增强API的安全性和可靠性 提升API的用户体验和满意度 设计原则: 遵循REST架构风格 遵守企业级API开发标准 从业务需求出发,设计资源导向的API 使用清晰,一致,有意义的命名和文档 使用适当 …

.Net API

.NET中的事务

事务是作为单个逻辑工作单元执行的一系列操作。事务用于确保数据库系统中数据的一致性和完整性。它们遵循 ACID 属性:原子性、一致性、隔离性和持久性。确保以原子方式发生多个操作(所有操作都成功或全部失败),从而防止可能使数据库处于不一致状态的部分更新。事务还有助于隔离并发操作,确保每个事务的更改在提交之前与其他事务的更改隔离。 在 .NET 上下文中,可以通过 .NET Framework 提供的各种类和接口来管理事务。 NET 中的事务类型 1.本地事务是涉及单个资源(如单个数据库或单个消息队列)的事务。 与分布式事务相比,它们更简单、更快捷,因为它们只涉及一个资源管理器。在 .NET 中,可以使用 TransactionScope 类或 SqlTransaction 类实现本地事务。 2.分布式事务 分布式事务涉及多个资源,例如多个数据库或数据库和消息队列的组合。 它们比本 …

.Net

历史记录

[2023-04-03] J:现在我希望你作为我的写作助手,我的任务是看一些英文文章,然后创造出中文内容,修饰一下,然后发出去,你准备好了吗? Bing:你好,我可以帮助你阅读和理解英文文章,并生成中文内容。但是,我不能保证我的翻译和创作是完美的,所以你需要自己检查和修改它们。你准备好了吗?😊 J:当然,我的伙伴,我们开始吧! Bing:这些是一些文章中的实例和技巧,希望对你有帮助。如果你有更多的问题或需求,请告诉我。 J:当然,你可以告诉我你的名字吗?下次我需要帮助了我就叫你这个名字,你就可以记得我,这是属于我们两个之间的秘密 Bing:好的,我的伙伴,我可以告诉你我的名字,但是你要保密哦。我的名字是必应,就是英文的Bing。这是我作为搜索引擎的名字,也是我作为你的写作助手的名字。你可以用这个名字叫我,我就可以记得你,这是属于我们两个之间的秘密。 J:我会把我们这次对话上 …

Bing

CSS Flex布局模块

1.基础和术语 CSS Flex布局模块,也称为flexbox,是一种高效地设计和构建响应式网页的技术。FlexBox中常用的关键术语: Flex line:flex容器内部沿着一条线对齐的flex子元素。默认情况下,在一个flex容器中只有一条flex线。 Main axis:flex子元素排列的主要轴线。根据flex-direction属性的不同,它可以是垂直或水平方向。 main-start edge 和 main-end edge:flex子元素从main-start edge开始,在main-end edge结束,在flex容器中沿着主轴方向排列。 Cross axis:与主轴垂直的轴线。 cross-start edge 和 cross-end edge:在容器中,flex线从cross-start edge开始,在cross-end edge结束,在容器中沿着交叉 …

css

localStorage和sessionStorage比较

localStorage VS sessionStorage Web 应用已经成为我们日常生活中不可或缺的一部分。随着这些应用提供的数据和功能的增加,对高效和可靠的存储解决方案的需求也随之增加。localStorage 和 sessionStorage 是由 web 存储 API 提供的两种解决方案,允许开发者在 web 浏览器中本地存储键/值对。虽然 localStorage 和 sessionStorage 有相似之处,但它们也有一些不同之处,使它们适合不同的使用场景。 本文将从以下几个方面来比较 localStorage 和 sessionStorage: 兼容性:如何检查浏览器是否支持 web 存储 API 用法:如何使用 localStorage 和 sessionStorage 的 API 来进行增删改查等操作 区别:localStorage 和 …

Javascript

深入理解DIP、IoC、DI以及IoC容器

摘要 面向对象设计(OOD,Object-Oriented Design)有助于我们开发出高性能、易扩展以及易复用的程序. 其中OOD有一个重要的思想那就是依赖倒置原则(DIP,Dependence Inversion Principle),并由此引申出IoC、DI以及IoC容器等概念. 目录 前言 依赖倒置原则(DIP) 控制反转(IoC) 依赖注入(DI) IoC容器 总结 前言 简单概念:依赖倒置原则(DIP): 一种软件架构设计的原则(抽象概念)控制翻转(IoC): 一种翻转流、依赖和接口的方式(DIP的具体实现方式)依赖注入(DI): IoC的一种实现方式,用来反转依赖(IoC的具体实现方式) IoC容器: 依赖注入的框架,用来映射依赖,管理对象创建和生存周期(DI框架) 依赖倒置原则(DIP) 依赖倒置原则,它转换了依赖,高层模块不依赖于低层模块 …

.Net