这当然预示着单元测试是一件好事.我们的项目有一定程度的单元测试,但它最多不一致.
您使用过或曾经使用过哪些最有说服力的方法来说服每个人,正式的单元测试是一件好事,并且需要它才能真正符合我们工作的"大型"项目的最佳利益.我不是开发人员,但我在质量保证方面,并希望提高所提供工作的质量,以确保其准备好进行测试.
通过正式的单元测试,我只是在谈论
我想确认以下分析是正确的:
我正在RoR中构建一个Web应用程序.我有一个我的postgres db设计的数据结构(大约70个表;这个设计可能需要在开发过程中进行更改和添加以反映Rails的处理方式.EG,我设计了一些用户和角色表 - 但是如果使用Restful是有意义的身份验证,我将擦除它们并替换RA所需的任何内容.)
我有一个shellcript,它调用一系列.sql文件来填充空数据库中的表和初始数据(例如,城镇预先填充了邮政城镇)以及测试数据(例如,公司得到一些虚拟公司所以我有数据可以玩).
例如:
CREATE TABLE towns (
id integer PRIMARY KEY DEFAULT nextval ('towns_seq'),
county_id integer REFERENCES counties ON DELETE RESTRICT ON UPDATE CASCADE,
country_id integer REFERENCES countries ON DELETE RESTRICT ON UPDATE CASCADE NOT NULL,
name text NOT NULL UNIQUE
);
Run Code Online (Sandbox Code Playgroud)
命题0:数据持续时间长于应用程序,因此我确信我希望在数据库级别强制执行参照完整性以及在我的RoR模型中进行验证,尽管缺少DRYNESS.
命题1:如果我用迁移替换脚本和sql文件,目前无法告诉我的Postgres数据库有关外键和我当前在迁移代码中的SQL DDL文件中设置的其他约束.
命题2:迁移的好处是对模式的更改与RoR模型代码一起进行了版本控制.但是如果我将我的脚本和.sql文件保存在railsapp/db中,我可以轻松地对它们进行版本控制.
命题3:鉴于迁移缺乏我想要的功能,并提供我可以复制的好处,我没有理由考虑使用它们.所以我应该在脚本/生成模型时间--skipmigrations.
我的问题:如果命题0被接受,命题1,2,3是真还是假,为什么?
谢谢!
我正在使用nhibernate为SQL Server Compact Edition表中的应用程序存储一些用户设置.
这是映射文件的摘录:
<property name="Name" type="string" />
<property name="Value" type="string" />
Run Code Online (Sandbox Code Playgroud)
Name是常规字符串/ nvarchar(50),Value在DB中设置为ntext
我正在尝试将大量xml写入"Value"属性.我每次都得到一个例外:
@p1 : String truncation: max=4000, len=35287, value='<lots of xml..../>'
Run Code Online (Sandbox Code Playgroud)
我用Google搜索了一下,并尝试了许多不同的映射配置:
<property name="Name" type="string" />
<property name="Value" type="string" >
<column name="Value" sql-type="StringClob" />
</property>
Run Code Online (Sandbox Code Playgroud)
这是一个例子.其他配置包括"ntext"而不是"StringClob".那些不抛出映射异常的配置仍会抛出字符串截断异常.
这是SQL CE的问题("功能")吗?是否可以使用nhibernate将超过4000个字符放入SQL CE数据库?如果是这样,谁能告诉我怎么样?
非常感谢!
大多数Scrum团队都有某种白板或其他板,在这些板上可以看到当前sprint的故事/任务.
我很好奇人们如何组织这个董事会?你用便利贴吗?它们是用彩色编码的吗?你如何分组任务?你如何区分任务的状态?等等...
我注意到 Internet Explorer 会在从 Internet 下载的文件中添加一个方括号中的数字(通常是 [1])。这会在下载 Excel 电子表格时产生一个大问题,因为方括号不是 Excel 工作表名称中的有效文件名字符。该问题是 IE 特有的,其他浏览器保留相同的文件名。
因此,例如,如果您在打开文件时自动刷新数据透视表,您将收到一条错误消息,指出名称“file[1].yourPivotTableName”无效。
这个问题有什么解决办法吗?
编辑:似乎无论HTTP 指令建议的文件名是什么,IE 在所有情况下都会添加 [1],这会导致问题!(因此,关于文件名的答案在这种情况下没有帮助)
编辑:我尝试了一些 VBA 代码,在文件打开时以另一个名称保存文件。但是,它不起作用(与以前相同的错误消息)。您认为有办法用 VBA 解决这个问题吗?
我正在尝试在Oracle中运行以下SQL语句,运行需要很长时间:
SELECT orderID FROM tasks WHERE orderID NOT IN
(SELECT DISTINCT orderID FROM tasks WHERE
engineer1 IS NOT NULL AND engineer2 IS NOT NULL)
Run Code Online (Sandbox Code Playgroud)
如果我只运行IN子句中的子部分,它在Oracle中运行得非常快,即
SELECT DISTINCT orderID FROM tasks WHERE
engineer1 IS NOT NULL AND engineer2 IS NOT NULL
Run Code Online (Sandbox Code Playgroud)
为什么整个声明在Oracle中需要这么长时间?在SQL Server中,整个语句运行得很快.
或者,我应该使用更简单/不同/更好的SQL语句吗?
关于这个问题的更多细节:
如果它有任何区别,表中有大约120k行,每个订单有3个任务,所以~40k不同的订单.
回答答案:
我想在原始的SQL语句中,每次为SQL语句的第一部分中的每一行运行子查询 - 即使它是静态的,只需要运行一次?
执行
ANALYZE TABLE tasks COMPUTE STATISTICS;
Run Code Online (Sandbox Code Playgroud)
使我原来的SQL语句执行得更快.
虽然我仍然很好奇为什么我必须这样做,如果/当我需要再次运行它?
统计信息为Oracle提供了确定不同执行计划效率所需的基于成本的优化器信息:例如,表中的行数,行的平均宽度,每列的最高值和最低值,每列的不同值的数量,索引的聚类因子等
在一个小型数据库中,您可以设置一个工作,以便每晚收集统计信息并将其置之不理.实际上,这是10g以下的默认值.对于较大的实现,您通常必须权衡执行计划的稳定性与数据更改的方式,这是一个棘手的平衡.
Oracle还有一个名为"动态采样"的功能,用于对表进行采样,以确定执行时的相关统计信息.它经常用于数据仓库,其中采样的开销远远超过长期运行查询的潜在性能提升.
我需要知道在哪里可以获得适用于Windows Vista的免费版C和C++编译器.我尝试过的许多版本都没有在全屏模式下工作.
有一个用c#编写的桌面应用程序试图管理套接字连接并失败,但在将相同的应用程序附加到visual studio后成功.
怎么调试?
使用像Digg或Stack Overflow这样的社交网站,以某种方式让用户奖励故事,问题等点.
所发生的事情非常类似于导致小报报纸兴起的过程,这些报纸仅为其读者提供头条新闻和内容.
用户通常足够聪明,可以找出最大化积分奖励的策略,无论该策略是否与网站的目标相协调.
我发现了以下问题
作为社交网站的创建者,您有独特的机会将社交行为影响到有利的方向.我认为系统对人们行为的影响远大于用户的初始种子.
我对旨在解决这个问题的模式/解决方案感兴趣:
特别是,考虑到Stack Overflow的视角,如何解决诸如" 你最喜欢的程序员卡通 "之类的条目成为最受欢迎的条目(我选择这个条目因为它是不良现象的一个很好的例子).