自顶向下编程

自顶向下编程

代码的写作方式

clean code: book review

newspaper metaphor

现在 代码的写作方式 是一个类似于写报纸的方式

什么是类似于写报纸的方式???

就是头版头条在最前面,后面才是细节,所有的代码就是要像新闻稿一样。最关键的东西

最大的值在前面体现,不要写一些类似于散文的东西。

同理

在代码方面 就是最关键的函数写在最上面,其他的私有的函数和细节逻辑的子函数,就往文件的下面放,现代化的语言 函数放在什么地方都可以。

自顶向下的编程方式是什么样子

思考一个问题 最开始思考大层次的逻辑 不要纠结细节 以高层次 主干逻辑为主

刚开始 不纠结里面的细节 而是把里面主干的逻辑全给写出来了。

先把框架逻辑组织好,后续再来填这些各个功能代码。我的理解,写算法就像造人造房子( -> - >) 别想歪了,首先,就是要搭骨架,骨架搭好了,再去填充各个细节的代码。以后要有这种意识,在日常工作中写这些工程性的代码会更加的游刃有余。(业务代码的业务逻辑相对比较冗余繁复,冗余的逻辑一层层下来,写代码要写的快同时bug少的话,关键是要解决最上层的主干逻辑部分,类似上面,先用子函数的形式把它全部写好)

class solution {
	public boolean isPalindrome(String s) {
    // 高层次(主干逻辑)
    // 1. filter out number & char; 2. reverse and compare
    String filtereds = _filterNonNumberAndChar(s);
    String reversedS = _reverseString(filteredS);
    return reversedS.equalsIgnoreCase(filteredS);
  }
  private String _reverseString(String filteredS) {
    return null;
  }
  private String _filterNonNumberAndChar(String s) {
    return null;
  }
}

然后就是 (换我就是google reverseString 看 stackoverflow ,然后string remove, string filter alphanumeric)填各个功能代码。

class solution {
	public boolean isPalindrome(String s) {
      // 高层次(主干逻辑)
      // 1. filter out number & char; 2. reverse and compare
      String filteredS = _filterNonNumberAndChar(s);
      return _reverseString(filteredS).equalsIgnoreCase(filteredS);
    }
    private String _reverseString(String s) {
      return new StringBuilder(s).reverse().toString();
    }
    private String _filterNonNumberAndChar(String s) {
      return s.replaceAll("[^a-zA-Z0-9]", "");
    }
}
posted @ 2020-04-11 13:46  jaiodfjiaodf  阅读(307)  评论(2编辑  收藏  举报