每次我写
rm /...
我害怕在斜杠后按回车键。如果是这样,是否需要确认,还是我们应该继续害怕?
每次我写
rm /...
我害怕在斜杠后按回车键。如果是这样,是否需要确认,还是我们应该继续害怕?
在下一本书 - Robert Martin 的“清洁代码。创建、分析和重构”中指出:
一个函数必须只执行一个操作。她应该做得很好。它不应该做任何其他事情。
进一步,作者问“一次操作”是什么意思,并给出了答案:
如果一个函数只执行 在声明的函数名下处于同一级别的那些操作
,那么该函数执行一个操作。
在示例(下)中,作者在声明的函数名称下解释了一层抽象的函数阶段,我无法理解“一层”的理解。条件块是否确定级别?表达式的逻辑序列?
public static String renderPageWithSetupsAndTeardowns(
PageData pageData, boolean isSuite) throws Exception {
if (isTestPage(pageData))
includeSetupAndTeardownPages(pageData. isSuite);
return pageData.getHtmlО;
}
- 该函数检查页面是否为测试页面。
- 如果是,那么它包括开始和结束块。
- 为页面生成 HTML 代码。
也许有更易懂的例子或解释?
(如果一个构建良好的函数在抽象层次上被精确地实现(如作者所描述的那样),那么这是一个非常重要和深刻的概念,应该理解。)
以前,interface它没有实现,我们必须实现抽象类。但是现在,特别是从'Java8'开始,接口可以有一个实现。他们为什么这样做?这里有什么收获?具有实现的接口有什么好处?最重要的是,如果接口可以包含方法的实现,那么使用抽象类的意义何在?
如果通过 SSH 连接到服务器后,终端在没有退出命令的情况下关闭,会发生什么情况?