24得票4回答
在Android中使用旧版支持库选项

当创建一个新项目时,我应该选择Use legacy android.support libraries选项吗?如果我不选择这个选项会发生什么?

23得票12回答
我正在维护一个Java类,它有4万行代码.. 问题在哪里?

这可能是一个主观问题,会导致删除,但我真的希望得到一些反馈。 最近,我加入了另一个非常大的企业项目,在那里我担任开发人员。我惊讶地发现,该项目中的大多数类都有8K到50K行不等,方法长达1K到8K行。它主要处理与数据库表和数据管理有关的业务逻辑,充满了条件语句来处理用例。 在大型企业系统中...

22得票6回答
在一个大型项目中开始进行单元测试。

请问有人能推荐一些最佳实践,来解决开始为一个大型现有代码库编写单元测试的问题吗?我目前面临以下问题: 代码库非常庞大 没有现成的单元测试代码 类之间高度耦合 复杂的 OM(不太可能做到简化 - 这是一个复杂的业务领域) 缺乏编写单元测试 / TDD 的经验 依赖数据库 依赖外部资源 (We...

21得票13回答
熟悉继承代码库的最佳方法

Stacker 没有人问起 新程序员进入领域后最令人震惊的事情是什么。 在清单中非常重要的一点是,继承一个必须迅速熟悉的代码库所带来的影响。突然发现自己需要维护已经拼凑在一起不知道多长时间的 N 行代码,而且只有短暂的时间来开始为其做出贡献,这可能会让人感到震惊。 你如何高效地吸收所有这些...

19得票8回答
如何对使用`using`语句的方法进行单元测试?

如何为含有 using 语句的方法编写单元测试? 例如,假设我有一个名为Foo的方法。public bool Foo() { using (IMyDisposableClass client = new MyDisposableClass()) { retur...

19得票3回答
在单元测试期间重置类的静态变量

我正在尝试为一份遗留代码编写单元测试。我要测试的类有几个静态变量。我的测试用例类有几个@Test方法,因此它们都共享相同的状态。 是否有办法在测试之间重置所有静态变量? 我想到的一个解决方案是显式地重置每个字段,例如:field(MyUnit.class, "staticString")....

15得票4回答
我该如何处理第三方库代码中的exit()调用?

我正在开发一个C++应用程序,它使用另一个团队编写的C库。库的作者喜欢在发生错误时调用exit()函数,这会立即结束程序而不调用C++应用程序中堆栈上对象的析构函数。该应用程序设置了一些系统资源,在进程结束后操作系统不会自动回收这些资源(共享内存区域、进程间互斥量等),因此存在问题。 我拥有...

14得票2回答
如何在遗留代码中实现测试驱动开发?

背景:数百万行代码,超过一百名开发人员以及频繁的缺陷。我们希望避免重复缺陷,并改进代码设计(谁不想呢?)。 测试驱动开发(先写单元测试,再编写代码)听起来非常理想:为每个函数编写一个测试用例。 但是,既然已经写了这么多代码,如何实施TDD呢?从低级函数开始还是其他方式? 或者说,现在开始...

14得票1回答
BigQuery - standardSQL 的 IFERROR 函数

我即将把在BQ中的查询从Legacy换成Standard。在Legacy中,当y=0时,x/y会返回null,但是在StandardSQL中,我遇到了如下错误: 错误:被零除 我想应用像IFERROR(x/y,null)这样的操作。 这在StandardSQL中可用吗?

14得票1回答
预处理器宏作为其他宏的参数

以下C++代码在GCC(4.0.4)上编译并按照程序员的意图正常工作。#define FOO(x,y,z) ((x)*(y)*(z)) #define BAR(x) FOO(x,1) #define BAZ 3,7 int main() { return BAR(BAZ); /* i...