vertfn
v1.1.2
免責事項:誤検知。実際には、これは「執行」ではなく「探索」に役立ちます
垂直順序
一般に、関数呼び出し依存関係が下向きの方向を指すようにしたいと考えています。つまり、呼び出される関数は、呼び出しを行う関数である必要があります。これにより、ソースコードモジュールから高レベルから低レベルへの素晴らしいフローが作成されます。新聞記事のように、私たちは最も重要な概念が最初に来ることを期待しており、それらは汚染の詳細の最小量で表現されることを期待しています。低レベルの詳細が最後になると予想しています。これにより、詳細に没頭することなく、揚げ物からいくつかの機能から要点を取得して、ファイルをスキムしてファイルをスキムすることができます。
- クリーンコード、第5章、P84、ロバートC.マーティン、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 ;
}
...
}