Skip to content

#代码

在不更新远程Git仓库的情况下本地修改文件
在不更新远程Git仓库的情况下本地修改文件

您是否曾经需要在本地修改文件而不将更改提交到远程仓库?

二分查找算法实现
二分查找算法实现

二分查找算法能够快速搜索大型数字数组,通常被称为分而治之算法。

使用构建框架的好处
使用构建框架的好处

持续集成(CI)和/或持续交付(CD)如今已成为软件项目的标准做法。有许多构建服务器,如 Azure DevOps、TeamCity、Jenkins 和 Cruise Control.Net。

我常用的软件开发工具和资源
我常用的软件开发工具和资源

以下是我常用的工具、库和资源的集合。

NVarchar 与 Varchar 的对比
NVarchar 与 Varchar 的对比

每个工程师在定义新的字符串列时都会面临选择:我应该使用 nvarchar 还是 varchar?

从原生 Javascript 改变 React 输入框的值
从原生 Javascript 改变 React 输入框的值

从原生 Javascript 改变 React 输入框的值并不像你想象的那么简单。

何时使用 FromService 属性
何时使用 FromService 属性

[FromServices] 属性允许在 Asp.Net Core 控制器中进行方法级别的依赖注入。

C# 8 - 可空引用类型
C# 8 - 可空引用类型

微软正在为 C# 8 添加一个名为可空引用类型的新功能。 乍一看这很令人困惑,因为所有引用类型都是可空的……那么这有什么不同呢? 从现在开始,如果启用了此功能,引用类型将是不可空的,除非您明确将它们标注为可空。

创建表达性名称的9个准则
创建表达性名称的9个准则

命名是主观的和情境化的,它是一门艺术,而对于大多数艺术,我们会发现其中的模式。我通过阅读他人的代码学到了很多。在这篇文章中,我整理了9个准则,希望其他人在我阅读他们的代码时能够遵循这些准则。

使用还是不使用花括号?
使用还是不使用花括号?

关于单行语句是否应该使用花括号存在激烈的争论。

理解始于表达性命名
理解始于表达性命名

理解代码是修改代码的第一步。

编码化秘密武器
编码化秘密武器

编码化秘密武器对于编写可维护和成功的应用程序至关重要。

.Net Core 中的垃圾回收类型
.Net Core 中的垃圾回收类型

现代编程语言中的内存管理往往是事后考虑的问题。从各种意图和目的来看,我们编写软件时几乎不会考虑内存问题。这对我们很有帮助,但总有例外情况...

你不是你的代码
你不是你的代码

你的代码既不反映你的信念,也不反映你的成长经历,更不反映你的品格。

C# 中问号的 5 种不同含义
C# 中问号的 5 种不同含义

在 C# 8 中,问号有 5 种含义。

集合比较器:查找两个集合之间的差异
集合比较器:查找两个集合之间的差异

你是否需要比较两个集合,并根据项目是在源集合中、比较集合中还是在两者中都存在来执行某些逻辑?是的,我也遇到过,我需要合并来自UI和数据库的数据。我找不到好的解决方案,所以我编写了一个集合比较器。

在 ASP.Net Core 中实现请求缓存
在 ASP.Net Core 中实现请求缓存

在应用程序开发的某个阶段,通常是相当早期的时候,你会意识到应用程序很慢。经过一些研究,罪魁祸首是不必要地检索相同的数据,然后灵光一闪,你会想:"我需要一些缓存。"

在构造函数中运行 Await
在构造函数中运行 Await

如果你必须在构造函数中运行代码。我会寻找不同的方法,但如果你必须这样做,这里有一种方法。

Angular 中 'Template parse errors;' 的解决方案
Angular 中 'Template parse errors;' 的解决方案

这是 Angular 2/4/+ 中比较令人沮丧的问题之一。这不是 Angular 2/4/+ 本身的问题,而是 webpack 打包支持的 HTML 文件的方式导致的。

在单页应用程序中,我应该在客户端还是服务器端处理?
在单页应用程序中,我应该在客户端还是服务器端处理?

单页应用程序(SPA)的卖点之一是将传统上在服务器上执行的工作转移到客户端。我认为SPA已经兑现了这个承诺。

探讨 Switch 语句的使用场景
探讨 Switch 语句的使用场景

近50年来,switch语句(也称为case语句)一直是编程的重要组成部分。然而近年来,一些人声称switch语句已经过时了。还有人更进一步,将switch语句标记为代码异味。

降低缺陷率的4个实践
降低缺陷率的4个实践

编写软件是复杂性和简单性之间的较量。在两者之间取得平衡是困难的。权衡在于冗长的不可维护方法和过度抽象之间。过度倾向于任何一个方向都会损害代码可读性并增加缺陷的可能性。

SQL Azure 中的索引碎片,谁知道呢!
SQL Azure 中的索引碎片,谁知道呢!

我在我的项目上工作了一年多,在这一年中,它作为一个应用程序和数据都有了显著的增长。一直在不停地开发新功能。我很少回头重构代码...

验证概念并发展代码
验证概念并发展代码

在最近的一次谈话中,一位朋友提到他会创建概念验证,然后在测试其可行性后将其丢弃。我过去也这样做过。但这次感觉不对。当他说要丢掉代码时,我感到很痛苦。也许我作为企业主的经历让我变成了一个节俭的人,但感觉他在浪费价值。

使用声明保护 AngularJS
使用声明保护 AngularJS

在某个时候,应用程序需要授权。这意味着不同级别的访问权限在网站上(或任何其他方面)表现不同。它可以是从查看数据到整个区域对一组用户不可访问的任何内容。

代码审查重要的3个原因
代码审查重要的3个原因

优秀的代码审查会挑战你的假设并给你建设性的反馈。对我来说,代码审查是作为软件工程师成长的重要组成部分。

为下一个开发者编码的5个步骤
为下一个开发者编码的5个步骤

我们大多数人可能都不会考虑将要维护我们代码的开发者。直到最近,我也没有考虑过他。我从未故意写过晦涩的代码,但我也从未留下任何线索。

使用 NHibernate 监听器(拦截器)实现透明加密
使用 NHibernate 监听器(拦截器)实现透明加密

您是否曾经需要在数据库中加密数据?在这篇文章中,我将探讨如何使用 nHibernate 监听器来加密和解密进出数据库的数据。加密过程对您的应用程序来说是透明的。

使用 Code First 调用存储过程
使用 Code First 调用存储过程

Entity Framework 6 Code First 的一个弱点是缺乏对原生调用数据库构造(视图、存储过程等)的支持。对于那些没有听说过或使用过 Entity Framework (EF) 中的 Code-First 的人来说,Code-First 简单来说就是一个流畅的映射 API。

使用 nHibernate 的条件 SQL 参数
使用 nHibernate 的条件 SQL 参数

问题在于 nHibernate 的 `CreateSqlQuery` 需要一个完整的 sql 字符串才能创建,但在评估参数之前无法创建字符串。唯一的解决方法是评估条件参数来创建 sql 字符串以创建 nHibernate 会话,然后再次重新评估参数以将它们添加到 `nHibernate` 查询对象中。

Crystal Reports 13 达到最大报表处理限制的解决方案
Crystal Reports 13 达到最大报表处理限制的解决方案

在 Visual Studio 2012 版本的 Crystal Reports 13 中存在一个阈值,它将并发报表(包括子报表)限制为每台机器 75 个报表。这意味着如果给定服务器上有 5 个 Web 应用程序,所有 5 个 Web 应用程序中打开的报表总数都会计入 75 个报表的限制。

抛出异常时的注意事项
抛出异常时的注意事项

这个系统中有一个潜在的哲学理念,即空值是不好的。在大多数可能产生空值的情况下,都会抛出异常。起初我没有看出这有什么问题。我将其视为一个架构决策,一种美学选择,但当我与代码交互时,我发现这显然是一个架构错误。

在运行时创建泛型类型
在运行时创建泛型类型

要在运行时类型中使用 IOC 容器(如 StructureMap)来查找泛型实现,可以使用 `MakeGenericType` 创建泛型类型,然后使用 `_container.GetInstance(type)` 从容器中检索实例。

代码重构
代码重构

重构一个大型 C# 文件,使其更精简、更易维护。

代码:加权随机分布
代码:加权随机分布

这篇博客文章介绍了一种生成随机数的方法,并指出了基于时间的随机数生成器可预测性的缺陷。