我的任务是为我们编写的向客户提出的物流应用编写详细的工程计划.我被告知这是一个数据驱动的应用程序.应用程序"数据驱动"意味着什么?相反的是什么?我似乎无法得到任何非常明确的答案,尽管在网络搜索时我可以看到很多人发布他们自己的例子.任何帮助将不胜感激.
我听说过最小化代码和最大化数据的概念,并且想知道其他人在构建我自己的系统时可以给我如何/为什么要这样做的建议?
在我的公司,我们在Java Web应用程序中使用JUnit进行了越来越多的集成测试.每个测试都使用一些特定的外部XML文件,用测试所需的数据填充数据库.问题是:
面对这个问题,我开始考虑使用自己的系统CRUD为每个测试生成测试数据.在每次测试开始时,我会运行一些方法来保存测试所需的数据.在我看来,它将解决以下所有3个问题:
但是,对我来说,缺乏开始这种方法的经验和知识.问题是:这个解决方案有效吗?这种方法会导致其他问题吗?我可以在文献中找到这种方法吗?对列出的问题有更好的解决方案吗?
java integration-testing automated-tests test-data data-driven
我坚信后端和前端之间紧密耦合的异端思想:我希望在生成用户界面时自动使用有关后端的现有隐含知识.例如,如果VARCHAR列的最大值为20个字符,则GUI应自动约束用户在相关表单字段中键入超过20个字符.
我对想要定义我的数据库表的ORM有强烈的反感,或者基于某些hack,因为ORM,每个表都需要有额外的数字ID列.
我已经看了一下Python数据库框架,我想我可以断定SQLAlchemy最适合我的心态.
现在,我需要找到一个自然适合SQLAlchemy(或同等版本)的Web应用程序框架,甚至可能还有我对耦合的兴趣.使用"Web应用程序框架",我的意思是产品/项目,如Pyhons,Django,TurboGears,web2py等.
例如,它理想情况下应该能够:
所有这些都应该动态发生,因此表调整会自动反映在前端 - 可能是使用缓存机制,因此所有模型内省都不会扼杀性能.换句话说,我不想在我的数据库中仔细定义XML文件(或类似文件)中重复我的模型定义.
是否存在Python(或任何语言)的框架?如果不是:如果我自己添加部分上述功能,那么几个Python Web应用程序框架中哪一个最不会受到影响?
我听说过数据驱动设计,并且已经研究了一段时间了.所以,我已经阅读了几篇文章来获取这些概念.
其中一篇文章是Kyle Wilson撰写的数据驱动设计.正如他所描述的那样,在我看来应该将应用程序代码(即用于控制资源的代码,例如内存,网络......)和游戏逻辑代码分开,并且游戏逻辑代码应该由外部数据源驱动.在这一点上,我可以想象开发人员会编写某种游戏编辑器,它接受有关游戏内对象的外部数据(如角色信息,武器信息,地图信息......).场景设计将由程序员编写的自定义语言/工具编写脚本,让游戏设计师在游戏对象之间创建交互.游戏设计师将使用现有的/自定义脚本语言为游戏编写脚本,或者使用拖放工具来创建游戏世界.我能想到的工具方法示例是World Editor,它通常与Bliizard的游戏一起打包.
但是,另一篇文章反对使用数据驱动设计,即针对数据驱动设计的案例.作者建议不要让游戏设计由数据驱动,因为开发游戏需要更多时间,因为游戏设计师有编程的负担.相反,将有一个游戏程序员从草图设计中自由编程游戏,并在游戏编程完成后由游戏设计师验证.他称这是程序员驱动的.我对这种方法的看法与我过去的做法类似:游戏逻辑是应用程序本身,与上述想法相关,应用程序是游戏编辑器,实际游戏是基于工具设计的.
对我来说,第一种方法似乎更合理,因为游戏组件可以重复用于许多项目.对于反对数据驱动设计的第二种方法,游戏代码仅属于该游戏.这就是为什么我认为魔兽有很多游戏类型,比如原版魔兽和各种自定义地图,以及其中最着名的一个:DOTA实际上定义了一种新类型.出于这个原因,我听到人们称世界编辑是游戏引擎.这是真的游戏引擎应该如何?
所以,在所有这些之后,我只想验证我对这些想法(数据驱动,程序员驱动,脚本等)的理解是否有任何缺陷?
我已经开始使用googletest来实现测试,并在有关参数化测试的文档中偶然发现了这个引用
- 您希望通过各种输入(也称为数据驱动的测试)测试您的代码.此功能很容易被滥用,所以请在锻炼时锻炼你的良好感觉!
我认为在执行以下操作时我确实"滥用"了系统,并希望听取您对此事的意见和建议.
假设我们有以下代码:
template<typename T>
struct SumMethod {
T op(T x, T y) { return x + y; }
};
// optimized function to handle different input array sizes
// in the most efficient way
template<typename T, class Method>
T f(T input[], int size) {
Method m;
T result = (T) 0;
if(size <= 128) {
// use m.op() to compute result etc.
return result;
}
if(size <= 256) {
// use m.op() to compute result etc. …Run Code Online (Sandbox Code Playgroud) 我正在寻找为现有代码库添加脚本功能,并正在权衡各种软件包的优缺点.Lua可能是最明显的选择,但我想知道人们是否根据他们的经验提出任何其他建议.
脚本将在某些事件时触发,并可能会驻留一段时间.例如,在启动时,脚本可以定义程序作为多个按钮呈现给用户的若干选项.选择其中一个按钮后,程序将通知脚本可能发生进一步事件的位置.
这是唯一真正的要求;
我正在使用d3v3脚本来可视化数据.我需要在mouseleave中突出显示并将节点置于鼠标中心,反之亦然.现在,我可以通过增加节点的高度和宽度来高亮点亮节点.
无法将节点带到前面.我尝试过使用像opacity,z-index这样的CSS.
脚本
<script>
// some colour variables
var tcBlack = "purple";
// rest of vars
var w = 1500,
h = 800,
maxNodeSize = 50,
x_browser = 25,
y_browser = 25,
root;
var vis;
var force = d3.layout.force();
vis = d3.select("#visfel_map").append("svg").attr("width", w).attr("height", h);
d3.json(url, function(error,json) {
if (error)
return console.warn(error);
root = json;
root.fixed = true;
root.x = w / 2;
root.y = h / 4;
// Build the path
var defs = vis.insert("svg:defs")
.data(["end"]);
defs.enter().append("svg:path")
.attr("d", …Run Code Online (Sandbox Code Playgroud) 题
数据库ID"无意义"是一个很好的经验法则吗?相反,以一种可以一目了然地识别ID的方式构建ID是否会带来显着的好处?优缺点都有什么?
背景
我和我的同事就我们数据库中ID的一致性进行了辩论.我们有一个利用spring的数据驱动应用程序,因此我们很少需要更改代码.这意味着,如果出现问题,数据更改通常就是解决方案.
我的论点是,通过使ID保持一致和可读,我们可以节省大量时间和长期头痛.一旦设置了ID,它们就不必经常更改,如果做得对,未来的更改也不会很困难.我的同事的立场是ID永远不会重要.将信息编码到ID中会违反数据库设计策略并使其有序保持需要额外的工作,"我们没有时间." 我在网上找不到任何支持这两个职位的东西.所以我转向SA的所有大师!
例
想象一下这个简化的数据库记录列表,表示杂货店中的食物,第一组表示具有ID编码含义的数据,而第二组不表示:
ID含义:
Type
1 Fruit
2 Veggie
Product
101 Apple
102 Banana
103 Orange
201 Lettuce
202 Onion
203 Carrot
Location
41 Aisle four top shelf
42 Aisle four bottom shelf
51 Aisle five top shelf
52 Aisle five bottom shelf
ProductLocation
10141 Apple on aisle four top shelf
10241 Banana on aisle four top shelf
//just by reading the ids, it's easy to recongnize that these are both Fruit on Aisle 4 …Run Code Online (Sandbox Code Playgroud) 我使用MsTests和Data Driven方法进行测试.(Excel是测试的数据存储)
测试结果不提供有关测试数据的任何信息.例如:
结果如下:testname(数据行5).这对我来说并不清楚.
如何自定义输出测试结果?例如testname(测试数据(命名的单词,数字或行))
data-driven ×10
c++ ×1
coupling ×1
css ×1
d3.js ×1
database ×1
game-engine ×1
googletest ×1
html5 ×1
java ×1
javascript ×1
metadata ×1
mstest ×1
python ×1
scripting ×1
sql ×1
test-data ×1
testing ×1