问题列表 - 第6959页

如何在几毫秒内在Python中创建日期时间?

我可以通过java.util.Date(毫秒)在Java 创建一个类似的Date对象.如何在Python中创建可比较的?

分配Date对象并将其初始化以表示自标准基准时间(称为"epoch")以来的指定毫秒数,即1970年1月1日00:00:00 GMT.

python datetime

112
推荐指数
5
解决办法
9万
查看次数

如何将单元测试引入大型遗留(C/C++)代码库?

我们有一个用C语言编写的大型多平台应用程序(只有少量但不断增长的C++)多年来,它已经发展了许多你期望在大型C/C++应用程序中使用的功能:

  • #ifdef 地狱
  • 大文件使得难以隔离可测试代码
  • 功能过于复杂,无法轻松测试

由于此代码是针对嵌入式设备的,因此在实际目标上运行它需要大量开销.因此,我们希望在本地系统上以快速周期进行更多的开发和测试.但我们希望避免"在您的系统上复制/粘贴到.c文件,修复错误,复制/粘贴"的经典策略.如果开发人员要麻烦这样做,我们希望以后能够重新创建相同的测试,并以自动方式运行.

这是我们的问题:为了使代码重构更加模块化,我们需要它更易于测试.但是为了引入自动化单元测试,我们需要它更加模块化.

一个问题是,由于我们的文件太大,我们可能在文件中有一个函数调用一个文件中的函数,我们需要将它们存根以进行良好的单元测试.看起来这不是一个问题,因为我们的代码变得更加模块化,但这还有很长的路要走.

我们想到的一件事是用注释标记"已知可测试"的源代码.然后我们可以为可测试代码编写脚本扫描源文件,将其编译在单独的文件中,并将其与单元测试链接.我们可以在修复缺陷和添加更多功能时慢慢引入单元测试.

但是,有人担心维护这个方案(以及所有必需的存根函数)将变得太麻烦,开发人员将停止维护单元测试.所以另一种方法是使用一个工具,为所有代码自动生成存根,并将文件链接到该工具.(我们发现这样做的唯一工具是昂贵的商业产品)但是这种方法似乎要求我们所有的代码在我们开始之前都要更加模块化,因为只有外部调用可以被删除.

就个人而言,我宁愿让开发人员考虑他们的外部依赖关系并智能地编写他们自己的存根.但是,对于一个可怕的过度生长的10000行文件来说,这可能是压倒性的.可能很难说服开发人员他们需要为所有外部依赖项维护存根,但这是正确的方法吗?(我听到的另一个论点是子系统的维护者应该维护子系统的存根.但是我想知道"强迫"开发人员编写自己的存根会导致更好的单元测试吗?)

#ifdefs,当然,再添全尺寸的问题.

我们已经研究了几个基于C/C++的单元测试框架,并且有很多选项看起来很好.但是我们还没有找到任何方法来缓解从"没有单元测试的代码毛球"到"单元可测试代码"的过渡.

所以这是我对其他任何经历过这个问题的人的问题:

  • 什么是一个好的起点?我们是朝着正确的方向前进,还是我们错过了一些明显的东西?
  • 哪些工具可能有助于过渡?(最好是免费/开源,因为我们现在的预算大致为"零")

注意,我们的构建环境基于Linux/UNIX,因此我们不能使用任何仅限Windows的工具.

c c++ unix legacy unit-testing

73
推荐指数
6
解决办法
1万
查看次数

从ThreadID获取ThreadName

有没有办法从ThreadId获取Thread的ThreadName?(比如说,像10或15等ThreadID等)

.net c# multithreading

8
推荐指数
1
解决办法
1813
查看次数

给定开始/结束时间数组的总空闲时间的算法

假设您有开始和结束时间.

此外,您还会获得一系列作业,按其开始和结束时间进行描述.这些作业可能重叠(即,可以同时运行多个作业).我需要找到一种方法来确定空闲时间和未运行任何工作的时间.

当然,如果任何时候只能运行一个作业,我可以减去每个作业的运行时间,但重叠部分让我难过.

algorithm

5
推荐指数
2
解决办法
1705
查看次数

在Objective-C表达式中使用常量变量?

在Java中

static final int VCount = 21, TCount = 28, NCount = VCount * TCount;

在Objective-C中

static int VCount = 21, TCount = 28, NCount = ???;

如何表达NCount int,因为它引用了变量?

scope constants objective-c

1
推荐指数
1
解决办法
1万
查看次数

如何查找重复的字段组合

我有一个包含 id、a 和 b 列的表。

a+b 应该是唯一的,但这是一个未正确约束的遗留数据库。如何获取 a+b 不唯一的记录的一组 id?

如果我有

ID A B
1  2 3
2  2 3
3  1 3
4  1 4
Run Code Online (Sandbox Code Playgroud)

然后我想从查询中获取记录 1 和 2。

t-sql sql-server sql-server-2005

0
推荐指数
1
解决办法
478
查看次数

404错误页面〜重定向图像 - PHP

我在PHP应用程序中使用自定义404页面.

在该404页面上,我检查某些不再存在的"已知"旧页面,然后将用户重定向到更新或最相关的当前页面.效果很好.

现在我面临一系列已被删除的旧图像,并且正在寻找一种将图像重定向到新图像的方法(如果可能的话,在PHP代码内部).

我曾短暂地追捕并空出来.

有什么办法吗?

以下是我的代码示例:

<?php
    //-- grab info regarding bad request --
    $root       = $_SERVER['DOCUMENT_ROOT'];
    $page       = parse_url($_SERVER['REQUEST_URI']);
    $page       = $page['path'];
    $referer        = $_SERVER['HTTP_REFERER'];
    $host       = $_SERVER['REMOTE_HOST'];

    //-- try to redirect old pages/files ----------------------
    //
    $page = urlencode($page);

    if ( stristr($page, "some_old_file.zip") ) {
        // Example file redirect
        echo    "<META HTTP-EQUIV=\"refresh\" CONTENT=\"0;URL=http://www.site.com/the/new/file.zip\">";

    } elseif ( stristr($page, "some_old_page.php") ) {  
        // example webpage redirect
        echo    "<META HTTP-EQUIV=\"refresh\" CONTENT=\"0;URL=http://www.site.com/the/new/page.php\">";

    } elseif ( stristr($page, "some_old_image.jpg") ) {
        // not …
Run Code Online (Sandbox Code Playgroud)

php apache redirect

0
推荐指数
1
解决办法
2673
查看次数

为什么ExecuteCodeWithGuaranteedCleanup不起作用?

我试图"测量"堆栈深度.为什么以下程序不打印任何内容?

class Program
{
    private static int Depth = 0;

    static void A(object o) 
    {
        Depth++;
        A(o);
    }

    static void B(object o, bool e)
    {
        Console.WriteLine(Depth);
    }

    static void Main(string[] args)
    {
        RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(A, B, null);
    }
}
Run Code Online (Sandbox Code Playgroud)

一些答案只包含来自MSDN的引用,如"从.NET Framework 2.0版开始,一个tryO catch块无法捕获StackOverflowException对象,默认情况下会终止相应的进程." 相信我,有时(当有足够的堆栈空间时)它可以是cought,下面打印一些数字就好了:

class Program
{
    private static int depth = 0;

    static void A(object o)
    {
        depth++;
        if (Environment.StackTrace.Length > 8000)
            throw new StackOverflowException("Catch me if you can.");
        A(o);
    }

    static void B(object o, bool e)
    {
        Console.WriteLine(depth);
    }

    static …
Run Code Online (Sandbox Code Playgroud)

c#

6
推荐指数
2
解决办法
1428
查看次数

CNAMES慢吗?

我正在使用CNAME与S3/CloudFront一起提供一些静态文件,如js,css,images等.

我这样做是为了使存储桶的网址更漂亮,因为我认为更好地将所有目标都定位到我的网站,如果在将来我希望移动这些文件,则更改应该是透明的.

今天阅读博客我看到一些人认为CNAME对速度是邪恶的.

那么,该怎么想呢?

apache dns amazon-s3 amazon-web-services

16
推荐指数
4
解决办法
6635
查看次数

我应该如何跟踪使用中的Objs,C#

我有一个与服务器建立连接的管理器.我保持连接活着,我希望我的线程在需要时请求连接.我的问题是

如何自动跟踪对象?我希望它的工作方式类似于范围指针.我请求连接,然后当我的obj超出范围时,它告诉管理器它不再使用了.我不会将它作为指针传递.我会做类似的事情

{
Obj = Man.GetObj();
//some loop
    Obj.DoSomething()
} //auto tell man that obj is no longer in use
Run Code Online (Sandbox Code Playgroud)

c#

2
推荐指数
1
解决办法
101
查看次数