我有一个存储测试结果的数据库。我对为intellij13编写插件感兴趣,该插件可让我使用JUnit运行配置从数据库重新运行测试失败。我找不到与此有关的任何文档。
我想看一些方法的例子:
public void runTest(String testClass, String testName) {...}
我的问题是关于构造带有副作用的lisp代码.我想到的具体例子来自Clojure,但我认为它可以适用于任何口齿不清.
在这种情况下,我正在与一个现有的库进行交互,该库需要按特定顺序调用某些函数.最后的函数调用创建了剩余程序所需的值.
代码如下所示:
(defn foo []
(let [_ procedure-with-side-effect
__ another-procedure-with-side-effect
value procedure-that-creates-the-value]
(do-something value)))
Run Code Online (Sandbox Code Playgroud)
这是有效的,一切都很好,除了我认为let块看起来很可怕.有一个更好的方法吗?
我写了一个宏
(defmacro defendpoint [msg-type url-key schema]
`(defrecord ~msg-type []
Create
(create [entity#]
(s/validate ~schema entity#)
(create-entity (~url-key urls) entity#))))
Run Code Online (Sandbox Code Playgroud)
我正在使用它
(defendpoint Location :locations
{... my schema ...}})
(defendpoint LocationHierarchy :location-hierarchies
{... my schema ...}})
Run Code Online (Sandbox Code Playgroud)
我第一次使用宏时,它有效
(create (map->Location
{... data ...}))
=> { ... json response ...}
Run Code Online (Sandbox Code Playgroud)
但是第二次,它失败了:
(create (map->LocationHierarchy
{... data ...}))
=> 1. Unhandled java.lang.IllegalArgumentException
No implementation of method: :spec of protocol:
#'schema.core/Schema found for class: ohds.client$fn__32303
Run Code Online (Sandbox Code Playgroud)
我不确定为什么会这样。我希望第二个调用的工作方式与第一个相同,但似乎验证步骤中存在错误。事实上,如果我(s/validate...)从宏中删除,它会按预期工作。所以我不确定这里到底发生了什么。
我需要在MinTester类中编写一个静态方法,该类使用比较器对象计算ArrayList集合中的"最小"字符串:
public static String min(ArrayList<String> list, Comparator<String> comp)
Run Code Online (Sandbox Code Playgroud)
我不能使用Collections类来计算最小值.
这是我到目前为止所拥有的.
public class MinTester
{
public static String min(ArrayList<String> list, Comparator<String> comp)
{
String shortest = list.get(0);
for(String str : list) {
if ( comp.compare(str, shortest) < 0) {
shortest = str;
}
}
return shortest;
}
}
Run Code Online (Sandbox Code Playgroud)
我没有从这个方法中得到任何错误,所以我尝试用Main测试它.尝试传递comp时出现此错误:变量comp可能尚未初始化
public static void main(String[] args)
{
// TODO code application logic here
MinTester s = new MinTester();
Comparator<String> comp;
ArrayList<String> list = new ArrayList<>();
list.add("a");
list.add("ab");
list.add("abc");
list.add("abcd");
String a = s.min(list,comp);//Error: …Run Code Online (Sandbox Code Playgroud) 我有一个使用 Compojure 和此类端点的应用程序
(defroutes routes
(POST "/api/v1/echo" req (str req))
(def http-handler
(reload/wrap-reload (wrap-defaults #'routes api-defaults)))
(defn run-web-server []
(run-jetty http-handler {:port 10555 :join? false}))
Run Code Online (Sandbox Code Playgroud)
当我尝试这个卷曲请求时
curl -X POST -H "Content-Type: application/json" http://localhost:10555/api/v1/echo -d '{"hello": "world"}'
Run Code Online (Sandbox Code Playgroud)
我得到这个回应
{:ssl-client-cert nil, :remote-addr "0:0:0:0:0:0:0:1", :params {}, :route-params {}, :headers {"accept" "*/*", "user-agent" "curl/7.43.0", "content-type" "application/json", "content-length" "18", "host" "localhost:10555"}, :server-port 10555, :content-length 18, :form-params {}, :query-params {}, :content-type "application/json", :character-encoding nil, :uri "/api/v1/echo", :server-name "localhost", :query-string nil, :body #object[org.eclipse.jetty.server.HttpInput 0x4317e5fa "org.eclipse.jetty.server.HttpInput@4317e5fa"], :scheme :http, …Run Code Online (Sandbox Code Playgroud) 通常,当人们向您宣传工具时,他们首先会告诉您,为什么您需要它,然后讨论如何使用它.前5本关于我试过的数据库和SQL的书并非如此.这真的感觉就像我在和宗教信仰者交谈:).他们没有讨论:数据库能够做什么,为什么设计它的设计方式等等.他们告诉你,你应该服从第3范式和Codd,它的先知.
我的问题是:在哪些方面,我的网站,例如使用PostreSQL后端作为数据存储,优于我的网站存储哈希表中的数据,并使用我选择的编程语言(如pickle/ shelvein python)内置的通用序列化机制.
我相信答案是性能,但在这个地方SQL专家通常是模糊的.我想知道,数据库的运营成本是多少?设计如何帮助实现这一目标?真的,当你努力遵守一些规则时,你真的想知道这是什么缘故?
你能否建议一个首先说明目标然后引入正常形式,关系代数等概念的阅读,然后解释这些概念如何帮助解决目标.谢谢,抱歉有点咆哮.为了说明我的问题,将关系数据库的 wiki文章与Stanislav Lem的Sepulka进行比较.
我有这个字符串,它是在100个其他名称格式相同的html文档中:
<li>Physical education sed<span class="meta"><ul><li>15184745922</li></ul></span>
</li>
我想在名单栏下保存'体育教育,在数字栏下保存'15184745922'.
我想知道你是如何用Ruby做的.
在nokogiri中我只能通过这样做获得li:
puts page.css("ul li").text
但后来它用一个词来形容:"体育sed15184745922"
我认为正则表达式是要走的路,但我很难过.我把它拆分了
full_contact = page.css("ul li")[22]
split_contact_on_li = full_contact.to_s.split(/(\W|^)li(\W|$)/).map(&:to_sym)
puts split_contact_on_li
Run Code Online (Sandbox Code Playgroud)
我明白了
<
>
Physical education sed<span class="meta"><ul>
<
>
15184745922<
/
>
</ul></span>
<
/
>Run Code Online (Sandbox Code Playgroud)
每个contact_info将显示相同数量的行,并且名称始终是span类之前的第三行,并且数字始终是第6行.有一个实例可能会有一个电子邮件地址而不是经常放在第6行.
那么我应该匹配第二个和第三个角括号并将信息拉到第三个和第四个括号,然后把它推到一个名为name和number的数组中?
我正在尝试项目的euler问题来学习常见的口齿不清,而且我很早就被卡住了.在问题1上,问题是从1到1000的整数之和.我认为下面的代码应该这样做,但它总是返回end(如果它是mod 3或mod 5)或0的值.
(defun mod3or5 (n)
(cond
((equal (mod n 5) 0) n)
((equal (mod n 3) 0) n)
(0))))
(defun mod-sum (start end)
(cond
((equal start end) (mod3or5 start))
(+ (mod3or5 start) (mod-sum (+ start 1) end))))
Run Code Online (Sandbox Code Playgroud)
例如
(mod-sum 1 9)
=> 9
(mod-sum 1 8)
=> 0
Run Code Online (Sandbox Code Playgroud)
我希望答案分别为23和14.
使用Python,我可以做类似的事情
listOfLists = [('a', -1), ('b', 0), ('c', 1)]
my_dict = {foo: bar for foo, bar in listOfLists}
my_dict == {'a': -1, 'b': 0, 'c': 1} => True
Run Code Online (Sandbox Code Playgroud)
我知道这是字典理解.当我使用Scala查找此操作时,我发现这个难以理解的文档(双关语).
有没有惯用的方法来使用Scala做到这一点?
额外的问题:我可以过滤这个操作my_dict = {foo: bar for foo, bar in listOfLists if bar > 0}吗?