谁应该处理复杂查询,数据映射器或服务层中的条件?

这个问题在解决这个问题上做了很好的工作,但是我很难find关于服务层的确切限制的可靠来源。 对于这个例子,假设我们正在处理书籍,我们想要作者得到书籍。 BookDataMapper可以有一个通用的get()方法来接受条件,比如书籍的唯一标识符,作者姓名等。这个实现相当简单(逻辑上),但是如果我们想要多个条件需要更多的条件复杂的查询? 比方说,我们想要得到某个作者在特定发布者下写的所有书。 我们可以扩展BookDataMapper->get()方法来parsing多个条件,或者我们可以编写一个新的方法,如BookDataMapper->getByAuthorAndPublisher() 。 最好让服务层直接调用这些[更具体的]方法,或者在调用具有多个条件的更通用的BookDataMapper->get()方法之前parsing条件? 在后一种情况下,服务层会做更多的逻辑“繁重工作”,使数据映射器相当简单。 前一个选项会将服务层几乎全部减less到只有中间人,从而在像BookDataMapper->getByAuthorAndPublisher()这样的方法BookDataMapper->getByAuthorAndPublisher()条件逻辑留给数据映射器。 让服务层parsing条件的一个明显的问题是一些域逻辑泄漏出数据映射器。 (这在这里的链接问题中有解释,但是,如果服务层处理条件,则逻辑将不会使其脱离模型层;控制器无论如何都将调用$book_service->getByAuthorAndPublisher() 。

d3.js对象中的超链接

我是一个完整的新手在d3.js或一般的java。 我正在使用来自http://bl.ocks.org/1093025的缩进树例子。 我花了两个小时才把这个工作在我的本地计算机上,所以应该给你一个我的技能水平的概念。 我打开flare.json文件,并开始搞乱它,并能成功地操作它。 看起来像这样 { "name": "Test D3", "children": [ { "name": "News", "children": [ { "name": "CNN", "size": 1000 }, { "name": "BBC", "size": 3812 } ] }, { "name": "Blogs", "children": [ { "name": "Engaget", "size": 3938 } ] }, { "name": "Search", "children": [ { "name": "Google", "size": 3938 }, { […]

自动布局中的弹簧:在Xcode 5中均匀地分配视图,带有约束

我理解在Interface Builder中alignment,分级和分配视图的旧的Struts和Springs方法。 然而,我似乎无法弄清楚如何使用Xcode 5自动布局均匀分布视图。有一种方法可以使用Xcode 4来完成,但是这个选项已经不存在了。 我有7个button排列在一个垂直的堆栈。 在3.5英寸的布局上,它看起来不错,当我在4“布局中预览屏幕时,所有的button都保持紧凑,最后一个button下面有大量的空间。 我希望他们保持相同的高度,但我希望他们之间的空间能够弯曲,以便他们可以散布在屏幕上。 我已经能够获得button的高度弯曲和填充空间,但这不是我想要的行为。 我想学习如何使用自动布局来取代我的老泉的行为,但我似乎无法find任何方式通过Interface Builder来做到这一点。 我确定顶部button既可以是顶部边缘的固定空间,也可以是顶部边缘的比例空间,同样也适用于底部button和底部边缘。 这些对我来说不那么重要,我也很好。 但我真的需要弄清楚如何均匀分配视图中每个项目之间的额外空间。

为什么我的应用没有显示在Google Play平板电脑上?

我刚刚发布了适用于手机和平板电脑的应用程序,但不会显示在Google Play平板电脑上。 检查了Nexus 7和华硕eeeePad 这是我在我的清单文件中 <compatible-screens> <!–no small size screens –> <!–Only hdpi and xhdpi for normal size screens –> <screen android:screenSize="normal" android:screenDensity="mdpi" /> <screen android:screenSize="normal" android:screenDensity="hdpi" /> <screen android:screenSize="normal" android:screenDensity="xhdpi" /> <!– all large size screens –> <screen android:screenSize="large" android:screenDensity="ldpi" /> <screen android:screenSize="large" android:screenDensity="mdpi" /> <screen android:screenSize="large" android:screenDensity="hdpi" /> <screen android:screenSize="large" android:screenDensity="xhdpi" /> <!– […]

逻辑运算符,用于在Pandas中进行布尔索引

我在pandas的布尔指数工作。 问题是为什么声明: a[(a['some_column']==some_number) & (a['some_other_column']==some_other_number)] 工作正常,而 a[(a['some_column']==some_number) and (a['some_other_column']==some_other_number)] 存在错误? 例: a=pd.DataFrame({'x':[1,1],'y':[10,20]}) In: a[(a['x']==1)&(a['y']==10)] Out: xy 0 1 10 In: a[(a['x']==1) and (a['y']==10)] Out: ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

如何从PHP调用需要SUDO的shell脚本?

我有一个文件是一个需要SUDO工作的bash脚本。 我可以使用SUDO从命令行运行它,但会提示inputSUDO密码。 我想通过shell_exec从php运行这个脚本,但是如果我调用SUDO,它不像命令行那样可以提示input密码。 有没有办法通过与sudo电话sudo的密码? 我该怎么做?

使用CSS剪切angular落

我正在寻找“削减”一个div的左上angular,就好像你已经把页面的一angular折起来一样。 我想在纯CSS中做,有没有什么方法?

Python中的项目频率计数

我是一个python新手,所以也许我的问题是很noob。 假设我有一个单词列表,我想查找每个单词出现在列表中的次数。 明显的做法是: words = "apple banana apple strawberry banana lemon" uniques = set(words.split()) freqs = [(item, words.split.count(item)) for item in uniques] print(freqs) 但是我觉得这个代码不是很好,因为这个程序通过两次单词列表运行,一次build立集合,第二次计算出现次数。 当然,我可以编写一个函数来遍历列表并进行计数,但这不会是pythonic。 那么,有没有更高效的pythonic方法?

使用htaccess httpredirect

我正在尝试将https://www.example.comredirect到http://www.example.com 。 我在.htaccess文件中试过下面的代码 RewriteEngine On RewriteCond %{HTTP_HOST} ^example\.com$ [NC] RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L] 此代码成功将https://example.comredirect到http://www.example.com 。 但是,当我inputhttps://www.example.com,然后在浏览器中给我一个“网页不可用”的错误。 我也尝试了以下两个代码没有成功 尝试1 RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^/(.*):NOSSL$ http://www.example.com/$1 [R=301,L] 尝试2 RewriteEngine On RewriteCond %{HTTPS} on RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} 上述两次尝试失败。 有什么build议么?

使用button以编程方式更改屏幕方向

我认为这是可以实现的,因为屏幕旋转行为可以上升到应用程序级别。