Those who know, know.

  • Mia
    link
    fedilink
    arrow-up
    5
    ·
    1 month ago

    It really depends on the context frankly. I did say it was a crappy example ;)
    Try to read this snippet I stole from Clean Code and tell me if it’s readable without having to uselessly jump everywhere to understand what’s going on:

    public class SetupTeardownIncluder {
      private PageData pageData;
      private boolean isSuite;
      private WikiPage testPage;
      private StringBuffer newPageContent;
      private PageCrawler pageCrawler;
    
    
      public static String render(PageData pageData) throws Exception {
        return render(pageData, false);
      }
    
      public static String render(PageData pageData, boolean isSuite) throws Exception {
        return new SetupTeardownIncluder(pageData).render(isSuite);
      }
    
      private SetupTeardownIncluder(PageData pageData) {
        this.pageData = pageData;
        testPage = pageData.getWikiPage();
        pageCrawler = testPage.getPageCrawler();
        newPageContent = new StringBuffer();
      }
    
      private String render(boolean isSuite) throws Exception {
         this.isSuite = isSuite;
        if (isTestPage())
          includeSetupAndTeardownPages();
        return pageData.getHtml();
      }
    
      private boolean isTestPage() throws Exception {
        return pageData.hasAttribute("Test");
      }
    
      private void includeSetupAndTeardownPages() throws Exception {
        includeSetupPages();
        includePageContent();
        includeTeardownPages();
        updatePageContent();
      }
    
    
      private void includeSetupPages() throws Exception {
        if (isSuite)
          includeSuiteSetupPage();
        includeSetupPage();
      }
    
      private void includeSuiteSetupPage() throws Exception {
        include(SuiteResponder.SUITE_SETUP_NAME, "-setup");
      }
    
      private void includeSetupPage() throws Exception {
        include("SetUp", "-setup");
      }
    
      private void includePageContent() throws Exception {
        newPageContent.append(pageData.getContent());
      }
    
      private void includeTeardownPages() throws Exception {
        includeTeardownPage();
        if (isSuite)
          includeSuiteTeardownPage();
      }
    
      private void includeTeardownPage() throws Exception {
        include("TearDown", "-teardown");
      }
    
      private void includeSuiteTeardownPage() throws Exception {
        include(SuiteResponder.SUITE_TEARDOWN_NAME, "-teardown");
      }
    
      private void updatePageContent() throws Exception {
        pageData.setContent(newPageContent.toString());
      }
    
      private void include(String pageName, String arg) throws Exception {
        WikiPage inheritedPage = findInheritedPage(pageName);
        if (inheritedPage != null) {
          String pagePathName = getPathNameForPage(inheritedPage);
          buildIncludeDirective(pagePathName, arg);
        }
      }
    
      private WikiPage findInheritedPage(String pageName) throws Exception {
        return PageCrawlerImpl.getInheritedPage(pageName, testPage);
      }
    
      private String getPathNameForPage(WikiPage page) throws Exception {
        WikiPagePath pagePath = pageCrawler.getFullPath(page);
        return PathParser.render(pagePath);
      }
    
      private void buildIncludeDirective(String pagePathName, String arg) {
        newPageContent
          .append("\n!include ")
          .append(arg)
          .append(" .")
          .append(pagePathName)
          .append("\n");
      }
    }
    

    That’s what I was talking about.