Skip to content

#代码

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

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

NVarchar 与 Varchar
NVarchar 与 Varchar

每个定义新字符串列的工程师都要做出决定:我应该使用 nvarchar 还是 varchar?

创建富有表现力的名称的9条指南
创建富有表现力的名称的9条指南

命名是主观的、情境性的,它是一种艺术,就像大多数艺术一样,我们会发现规律。通过阅读他人的代码,我学到了很多东西。在这篇文章中,我整理了9条指南,希望其他人在我阅读他们的代码时能够遵循这些指南。

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

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

将秘密武器代码化
将秘密武器代码化

将秘密武器代码化是编写可维护和成功应用程序的关键。

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

现代语言中的内存管理通常是事后才考虑的。在很大程度上,我们编写软件时几乎不考虑内存。这对我们很有帮助,但总有例外……

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

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

审视 Switch 语句的案例
审视 Switch 语句的案例

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

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

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

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

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

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

Entity Framework 6 Code First 的一个弱点是缺乏对本地调用数据库构造(视图、存储过程等)的支持。对于那些没有听说过或使用过 Entity Framework (EF) 中 Code-First 的人来说,Code-First 只是一个 Fluent 映射 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 个报告的限制。

抛出异常时的考虑因素
抛出异常时的考虑因素

该系统中有一个基本哲学,即空值是不好的。在大多数可能生成空值的情况下,都会抛出异常。起初我没有看出问题所在。我将其视为一个架构决策,一种美学选择,但随着我与代码的接触,我意识到这显然是一个架构错误。

代码重构
代码重构

将一个大型 C# 文件重构为更精简且易于维护的代码。

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

本博文介绍了一种生成随机数的方法,并讨论了基于时间的随机数生成器的可预测性缺陷。