#代码

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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