标签: legacy

您读/写软盘(3 1/4 和 5 1/2)的速度有多快?

有谁知道/记得软盘的实际读/写速度?我想用这个作为一个花絮来争论我们的 Sharepoint 服务器有多慢,但所有提供有关磁盘信息的网站似乎都没有它们的实际工作速度。

hardware legacy floppy

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

如何处理长时间运行的单元测试?

我有大约100个单元测试,覆盖率为%20,我正在努力增加覆盖范围,这也是一个开发项目,所以不断添加新的测试.

目前在每次构建之后运行我的测试是不可行的,他们需要大约2个时刻.

测试包括:

  • 从测试文件夹中读取文件(数据驱动样式以模拟某些HTTP内容)
  • 对本地Web服务器执行实际的HTTP请求(这是一个非常痛苦的模拟,所以我不会)
  • 不是所有的单元测试,但也有相当复杂的多线程类需要测试,我测试测试的整体行为.这可以被视为功能测试,但也需要每次都运行.

大多数功能都需要读取HTTP,执行TCP等.我无法更改它们,因为如果我改变这些测试,这就是项目的整体想法,测试内容将毫无意义.

另外,我认为我没有最快的工具来运行单元测试.我当前的设置使用VS TS与Gallio和nUnit作为框架.我认为VS TS + Gallio也比其他人慢一点.

你会建议我解决这个问题?我想在每一点点改变之后运行单元测试btu目前这个问题正在打断我的流程.

进一步澄清编辑:

代码高度耦合!不幸的是,变化就像一个巨大的反射过程.并且有一个鸡蛋综合症,我需要单元测试来重构这么大的代码,但如果我不重构它我就不能有更多的单元测试:)

高度耦合的代码不允许我将测试分成更小的块.此外,我不测试私人物品,这是个人选择,这使我能够更快地发展并仍然获得大量的好处.

并且我可以确认所有单元测试(具有适当的隔离)实际上非常快,并且我没有它们的性能问题.


进一步澄清:

代码高度耦合!不幸的是,变化就像一个巨大的反射过程.并且有一个鸡蛋综合症,我需要单元测试来重构这么大的代码,但如果我不重构它我就不能有更多的单元测试:)

高度耦合的代码不允许我将测试分成更小的块.此外,我不测试私人物品,这是个人选择,这使我能够更快地发展并仍然获得大量的好处.

并且我可以确认所有单元测试(具有适当的隔离)实际上非常快,并且我没有它们的性能问题.

legacy tdd performance unit-testing http

5
推荐指数
3
解决办法
3298
查看次数

您是否将NHibernate用于具有遗留数据库的项目,这部分是您无法控制的?

对我来说,目前的答案是:不,我会使用iBatis,因为当数据库模型和对象模型不同步时,NHibernate很痛苦.如果我没有完全控制数据库,我最终会做很多工作.

我为什么这么问?

好吧,首先:我从未使用过NHibernate.我只是从表面上知道它.我已经了解了iBatis对旧数据库的优势.

第二:最近我与一个使用Hibernate的人进行了讨论(jep,在Hibernate之前没有'N').他告诉我,ORM框架现在非常先进并且提倡Hibernate.由于我对NHibernate不感兴趣,所以我没有跟踪最近的发展.

也许我是时候重新考虑我的答案了吗?

legacy nhibernate orm ibatis

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

您如何继续开发具有旧代码和新代码的大型(长期)软件系统?

我在一个拥有大量用户安装基础的大型代码库上工作.该代码最初是用vb6编写的,带有一些用于低级工作的c ++ COM模块.

重写已经在vb6中编写并且每天都被我们的客户使用的所有代码是完全不可行的,但我们也在继续对软件(大型和小型)进行改进和定制.

到目前为止,我的解决方案是将大部分新代码写入c#(winforms甚至现在为wpf),然后使用COM interop从vb6调用模块.

有没有人有像这样(10年以上)的长期软件套件的经验,不能完全重写,但需要同时不断的新开发.此外,在这样的混合系统中,连接模块的最佳方法是什么?我现在正在使用COM,但也考虑过IPC使用单独的进程.

legacy

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

ActiveRecord加入遗留数据库的表

我有一个遗留数据库,我正在努力让ActiveRecord使用.我遇到了连接表的问题.我有以下内容:

class TvShow < ActiveRecord::Base

  set_table_name "tvshow"
  set_primary_key "idShow"

end

class Episode < ActiveRecord::Base
  set_table_name "episode"
  set_primary_key "idEpisode"
end
Run Code Online (Sandbox Code Playgroud)

然后我有一个名为tvshowlinkepisode的表有2个字段:idShow,idEpisode所以我有2个表和它们之间的连接(所以有多对多关系),但是连接使用非标准外键.我的第一个想法是创建一个名为TvShowEpisodeLink的模型,但没有主键.我的想法是,由于外键是非标准的,我可以使用set_foreign_key并进行一些控制.最后我想说一些像TvShow.find(:last).episodes或Episode.find(:last).tv_show.我如何到达那里?

ruby database legacy activerecord ruby-on-rails

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

传统兼容性的最佳做法

根据我的经验,对向后/向前兼容性的承诺是软件工程行业的镀金笼.我特别注意到文档文件格式和编程语言/ API的情况.当他们现有的数据或代码中断时,客户和合作伙伴讨厌它; 但是,如果您永远不会破坏兼容性,那么从长远来看,您可能会严重限制您的创新能力.

除了逐渐弃用旧功能外,是否有解决此问题的方法?在Windows 7的XP Mode中,虚拟化似乎是一种令人兴奋的可能性.还有其他人吗?

此外,对于我们这些想要设计尽可能面向未来的新系统的人,我们可以从过去在行业中犯下的错误中吸取什么教训?

architecture legacy compatibility

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

读/写xBASE(DBASE 3-5/DBF)文件

有没有什么好的库可以用java或任何其他语言读/写DBF文件?

java database legacy dbf

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

使用pagecontext.include将页面范围属性传递给JSP以在JSTL中使用?

我们几乎逐字逐句地使用这个JSP模板解决方案:

http://java.sun.com/developer/technicalArticles/javaserverpages/jsp_templates/

当它包含JSP页面时,它使用了pageContext.include,这给我们留下了一个问题,那就是我们有很多在JSP本身中初始化的scriplet代码(标签汤).我的想法是使用附加属性修改模板标记,该属性是具有init或execute方法的类的包路径引用.首先调用该执行,并在包含JSP之前添加页面上下文属性.然后我们将使用JSTL来访问这些属性.但是,我被告知这不会起作用,因为pageContext.include如何工作,并且无法传递作用于页面的属性.这是真的吗?有解决方法吗?我知道我的所有范围规则都是如此.

java legacy jsp

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

哪些开源工具可以帮助我理解用C编写的大型遗留应用程序?

我需要一个可以用来更好地理解大型C项目的工具.我希望能够看到各种C模块之间的关系,以及调用什么,最常用的函数,使用的标题等等.

我在这里和谷歌搜索过,但是所有的源代码分析工具似乎都能给你一些我不感兴趣的代码行和其他指标.我只是希望得到一个关于事物结构的高级视图.在跳入代码之前互连.

有这样的事吗?

我看过这些,但它们似乎没有做我想要的:源代码工具

自从张贴这个以来我尝试了Doxygen,它似乎给了我一些我需要的东西.还有其他人?

legacy code-analysis

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

我们应该测试控制台输出吗?

我正在使用一些System.out.print本身有一些命令的遗留代码.我的eCobertura插件显示这条线为红色,所以我想对它们进行单元测试.

这里的计算器,我发现了一种单元测试控制台输出这是我的东西是很有趣的.

我是这样做的:

        private final ByteArrayOutputStream outContent = new ByteArrayOutputStream();

        @Before
        public void setUpStreams() {
            System.setOut(new PrintStream(outContent));
        }

        @After
        public void cleanUpStreams() {
            System.setOut(null);
        }

        @Test
        public void out() {
            System.out.print("Some message from the system");
            assertEquals("Some message from the system", outContent.toString());
        }
Run Code Online (Sandbox Code Playgroud)

到目前为止,测试变得很好,但是当我再次运行代码覆盖率插件时,我收到以下消息:

网络"Thread-0"中的异常java.lang.NullPointerException net.sourceforge.cobertura.coveragedata.TouchCollector.applyTouchesOnProjectData(TouchCollector.java:186)at net.sourceforge.cobertura.coveragedata.ProjectData.saveGlobalProjectData(ProjectData.java:267) )at java.slang.Thread.run(Thread.java:662)的net.sourceforge.cobertura.coveragedata.SaveTimer.run(SaveTimer.java:31)

我有些疑惑:

  • 尝试进行单元测试是否正确System.out.print()'s
  • eCobertura是否与此类测试兼容?
  • 如果eCobertura与此类测试不兼容,为什么它会显示红色线?
  • 我的测试中有什么问题吗?
  • 我正在使用jUnit 4.11你认为这与它有关吗?
  • 为什么eCobertura给我这个错误?

java legacy tdd junit cobertura

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