vertfn
v1.1.2
免责声明:误报;实际上,这对于“探索”而不是“执行”很有用
垂直订购
通常,我们希望函数调用依赖项指向向下方向。也就是说,称为称为调用的函数应为ballow。这会从高级别到低水平的源代码模块下方创建一个不错的流量。与报纸文章一样,我们期望最重要的概念第一,我们希望它们能以最少的污染细节来表达。我们希望低级细节将持续下去。这使我们能够浏览源文件,从少数功能中获取要点,而无需将自己沉浸在细节中。
- 清洁代码,第5章,P84,Robert C. Martin,2009年

go install github . com / nikolaydubina / vertfn @ latest vertfn --verbose ./...
提高误报率是好的,例如以下情况:
清洁代码,第5章,代码示例WikiPageResponder.java
public class WikiPageResponder implements SecureResponder {
protected WikiPage page ;
protected PageData pageData ;
protected String pageTitle ;
protected Request request ;
protected PageCrawler crawler ;
public Response makeResponse ( FitNesseContext context , Request request )
throws Exception {
String pageName = getPageNameOrDefault ( request , "FrontPage" );
loadPage ( pageName , context );
if ( page == null )
return notFoundResponse ( context , request );
else
return makePageResponse ( context );
}
private String getPageNameOrDefault ( Request request , String defaultPageName )
{
String pageName = request . getResource ();
if ( StringUtil . isBlank ( pageName ))
pageName = defaultPageName ;
return pageName ;
}
protected void loadPage ( String resource , FitNesseContext context )
throws Exception {
WikiPagePath path = PathParser . parse ( resource );
crawler = context . root . getPageCrawler ();
crawler . setDeadEndStrategy ( new VirtualEnabledPageCrawler ());
page = crawler . getPage ( context . root , path );
if ( page != null )
pageData = page . getData ();
}
private Response notFoundResponse ( FitNesseContext context , Request request )
throws Exception {
return new NotFoundResponder (). makeResponse ( context , request );
}
private SimpleResponse makePageResponse ( FitNesseContext context )
throws Exception {
pageTitle = PathParser . render ( crawler . getFullPath ( page ));
String html = makeHtml ( context );
SimpleResponse response = new SimpleResponse ();
response . setMaxAge ( 0 );
response . setContent ( html );
return response ;
}
...
}