我正在考虑在我的新项目中使用MVC模式,我可以清楚地看到能够将数据层(模型)更接近表示层(视图)的主要优势,这将允许稍微增加在申请速度.但除了性能观点之外,MVC还是在视图 - 逻辑 - 数据分层类型模式上还有其他优势吗?
编辑: 对于那些感兴趣的人我刚刚上传了我创建的示例PHP代码来测试MVC的使用.我故意省略所有安全检查以使代码更容易阅读.请不要过多批评它,因为我知道它可以更加精致和先进,但不过 - 它有效!我将欢迎提出问题和建议:链接如下:http://www.sourcecodester.com/sites/default/files/download/techexpert/test_mvc.zip
model-view-controller design-patterns 3-tier n-tier-architecture n-layer
我正在学习MongoDB,我注意到每当我对文档进行更新时,正在更新的字段被推送到订单的末尾,所以如果我有类似的东西:
db.collection.save({field1: value1, field2: value2, ..., field 10: value10});
db.collection.update({field1: value1}, {$set: {field2: new_value}});
Run Code Online (Sandbox Code Playgroud)
如果你这样做:
db.collection.find();
Run Code Online (Sandbox Code Playgroud)
它会显示:
{ "field1":"value1", ..., "field10":"value10", "field2":"new_value"}
Run Code Online (Sandbox Code Playgroud)
您可以看到字段顺序如何更改将更新字段推送到文档末尾的位置.此外,文档本身也被推到了collectoin的末尾.我知道它是一个"无架构"的数据库,它可能不是一个大问题,但它看起来并不"漂亮":).有没有办法在不更改订单的情况下进行就地更新?
我想知道你认为什么是最好和最干净的方法来定义一个类似于定义函数工作方式的常量数组变量.我见过很多人在谷歌问这个问题,到目前为止我提出的最简单的解决方案是在define语句中使用PHP 序列化函数,就像这样
define ("MY_ARRAY", serialize (array ("key1" => $value1,"key2" => $value2, ..)));
Run Code Online (Sandbox Code Playgroud)
然后使用定义的常量你可以做这样的事情:
$MY_ARRAY = unserialize (MY_ARRAY)
print_r ($MY_ARRAY);
Run Code Online (Sandbox Code Playgroud)
如果您的代码中有很多定义,不确定序列化函数是否会降低您的速度.你怎么看?
每当我尝试使用 CSS circle()函数进行一些剪辑时,它一直困扰着我一段时间,如下所示:
.red {
width: 200px;
height: 300px;
background: red;
border: 2px solid black;
clip-path: circle(69%); /*barely cuts off the corners of the .red div */
}
/* the full circle will enclose the entire box at around 71% or (sqrt(2)/2 * 100%)
per Mozilla documentation and not at 100% as one might expect */Run Code Online (Sandbox Code Playgroud)
<div class='red'></div>Run Code Online (Sandbox Code Playgroud)
半径似乎从未像我期望的那样计算。在查看 Mozilla MDN 参考(https://developer.mozilla.org/en-US/docs/Web/CSS/basic-shape)时,他们似乎按如下方式计算:
这对我来说似乎不正确。我想他们会计算包围元素矩形(div、img 等)的圆周半径,如下所示:
但事实并非如此。任何人都可以对此有所了解。这是某种错误还是我只是不理解这里的某些内容?