草庐IT

坏主意

全部标签

java - 在保存到文件之前将大量定期获取的文本存储到缓存中是个好主意吗?

因此,我正在尝试将来自消息传递网络上的用户的消息写入文件。我正在尝试使用良好的Java实践和适当的文件IO技术来构建这个程序。目前,我的程序识别出有人发布了一条消息,获取该消息并立即将其写入文件。创建文件对象,创建writer对象,附加消息,然后关闭文件。如果传入的消息不多,这似乎是个好习惯,但如果有快速的对话流,这似乎很慢并且需要很多不必要的操作,因为文件将立即再次打开。然后我想如果我只是让文件保持打开状态并在消息到达文件时写入消息,然后定期关闭它会怎么样。这是好的做法吗?让文件长时间打开?例如一个小时后或写入一定量的数据后?现在,我想我应该获取消息,将它们存储在“缓存”(如字符串数

java - 如果在将Optional <Object>作为参数时,编译器将解析为null,那是一个好主意吗?

这显然非常有用,以至于我开始认为我缺少避免这种情况的理由,因为我确信Oracle会做到这一点。对我来说,这将是Optional上最有值(value)的功能。publicclassTestOptionals{publicstaticvoidmain(String[]args){test(null);}publicstaticvoidtest(Optionaloptional){System.out.println(optional.orElse(newDefaultObject()));}}(这将引发NullPointerException)如果没有该功能,则使用Optional作为参数

java - 最佳实践 - HashMap 而不是参数列表,好主意吗?

您好Stackoverflow社区,我正在编写一些代码,将可选标准列表提交给我的dao。方法签名包含+/-10个参数的列表,我真的不喜欢并想重新格式化。另外,我想避免仅仅因为添加/删除标准而不得不重构来自不同层的所有方法签名ListsearchParams(Stringname,LongcountryCode,...){...}会变成ListsearchParams(HashMapmap){BeanUtils.populate(this,map);...}我有点担心这会发生,因为这是一种不好的做法,因为我放弃了对map中传递的内容的控制以给我这种灵active?所以我的问题是我是否走在

java - 捕获 OutOfMemoryError 是个坏主意吗?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Catchingjava.lang.OutOfMemoryErrorOutOfMemoryError是:ThrownwhentheJavaVirtualMachinecannotallocateanobjectbecauseitisoutofmemory,andnomorememorycouldbemadeavailablebythegarbagecollectorJava说:AnErrorisasubclassofThrowablethatindicatesseriousproblemsthatareaso

java - Selenium WebDriver - 将 WebElement 选择器定义为 By 常量是个好主意吗?

我重构了我的java项目以将WebElement选择器定义为By常量。这允许我将By常量传递到我的findElement方法中,而不需要在方法中评估By选择器类型。这是一个好主意吗?如果将By变量定义为publicstaticfinal常量,我可能会遇到什么问题?示例如下:publicstaticfinalByLOGIN_BUTTON_SELECTOR=By.cssSelector("input[name='logIn']");/***clicktheLoginbutton*/publicvoidclickLoginButton()throwsTimeoutException,Stal

Java Process Servers 好主意与否?

只想向社区大声疾呼,看看人们对Java进程服务器的总体看法。IBM尤其倾向于对Websphere进程服务器发出大量噪音。如果您在Web服务领域工作,我可以理解流程服务器背后的想法,但实际上它们真的有效还是矫枉过正?BPEL是另一种密切相关的技术,它往往会得到IBM的大量宣传,但我还没有看到现实生活中的实现。欢迎提出一般性想法。 最佳答案 一些项目/公司确实有复杂的业务流程,涉及许多服务、应用程序、人员交互,为此使用BPM引擎、它的连接器、它的建模工具是合理的。但这显然不适合所有人。现在,要使用IBMProcessServer,您需要

java - 类中的字段不是类似于全局变量吗?

我开始学习函数式编程语言(SML)并用这种语言编写了一点程序。然后我开始检查Java,我觉得类字段看起来像全局变量,它们使编程复杂化。例如,我必须阅读方法以查看哪个方法读/写它们等。据我所知,在C等编程语言中使用全局变量是个坏主意。但是Java类字段呢?它们不是类似于所有类方法的全局变量吗?使用字段是个坏主意吗?(或者我可能理解错了或者我以“错误的方式”Java编程) 最佳答案 我假设“类变量”是指“静态变量”。您会问“它们不是类似于您所有类方法的全局变量吗?”。是的,你是对的。在类中,所有问题都像全局变量一样。不同之处在于你的类不

java - 在 Clojure 中强制垃圾收集是个好主意吗?

我有一个Clojure程序,它在运行时消耗了大量的堆(我曾经测量过它大约2.8GiB),我正试图找到一种方法来减少它的内存占用。我目前的计划是每隔一段时间强制执行一次垃圾收集,但我想知道这是否是个好主意。我读过HowtoforcegarbagecollectioninJava?和CanIForceGarbageCollectioninJava?并理解如何去做-只需调用(System/gc)-但我不知道这是否是个好主意,甚至不知道它是否需要。程序的工作原理如下。我有大量旧格式的文档,我正试图将其转换为HTML。遗留格式由多个XML文件组成:一个描述文档的元数据文件,并包含指向任意数量的内

java - 在 JUnit 测试中捕获 AssertionError 是个好主意吗?

我有一个对象作为API调用的结果,我想声明一个成员变量的值。此值可以是两个预期值之一,具体取决于API调用首先“看到”并首先设置的内容。因此,如果对一个值的断言失败,我想在将测试声明为失败之前对另一个值进行断言。这样做的最佳方法是什么?我现在拥有的是:try{assertEquals("message",someObject.getValue1(),expectedValue1);}catch(AssertionErrorae){assertEquals("message",someObject.getValue1(),expectedValue2);}我只是不确定这是否是一种可接受的

在cron作业中运行nodejs async功能是一个好主意吗?

在cron作业中运行节点异步功能是一个好主意吗?是的,nodejs是单线螺纹。当Cron多次调用函数()时会发生什么?假设情况为:-cron作业运行5分钟呼叫函数()-函数()可能需要超过5分钟的运行-函数()为async我需要在nodejs中进行后端应用程序:-基于数据,从mongodb(一次)读取数据,可能有许多第三方API调用,例如GoogleAPI计算两个点之间的驾驶距离-保存总距离数据返回MongoDB-更新redis缓存你会怎么做?您的评论非常感谢!!谢谢你。看答案从克朗的角度来看,函数是同步还是异步。Cron不会运行您的个人功能-它启动过程并等待它们完成。该过程在内部的工作方式无