• 自顶向下编程


    自顶向下编程

    代码的写作方式

    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]", "");
        }
    }
    
  • 相关阅读:
    Python-模块
    POJ 1631 nlogn求LIS
    POJ 1274 二分图匹配
    POJ 3661 DP
    POJ 3662 二分+Dijkstra
    POJ 3666 DP
    POJ 2373 单调队列优化DP
    祝自己生日快乐
    POJ 2385 DP
    POJ 3122 Pie 二分答案
  • 原文地址:https://www.cnblogs.com/ssaylo/p/12679251.html
Copyright © 2020-2023  润新知