zoukankan      html  css  js  c++  java
  • clean code(一)

    代码整洁之道对于程序的重构及可读性至关重要。开始整洁之道吧!!!

    一、抽离try catch 模块

        public void delete(Page page){
            try {
                deletePageAndAllReference(page);
            }catch(Exception e){
                logError(e);
            }
        }
    
        private void deletePageAndAllReference(){
            deletePage();
            registry.deleteRefence(page.name);
            configKeys.deleteKey(page.name.makeKey());
        }
    
        private void logError(Exception e){
            logger.log(e.getMessage());
        }

    将try和catch代码的主体部分抽离出来。delete只与错误处理有关,容易理解。deletePageAndAllReference只与完全删除一个page有关。

     二、注释

      好的注释尽量利用方法名称来传递信息。注释提供了有关实现的有用信息,而且还提供了某个决定后面的意图。用于警告会出现某种后果的注释也是有用的

        //TODO-MdM these are not need
        //we expected this to go away when we do the checkout model
        VersionInfo makeVersion() throws Exception{
            return null;
        }

      TODO: + 说明:在标识处有功能代码待编写,待实现的功能在说明中会简略说明。

      对于代码中多余的注释应该删除,可能读注释的时间都比读代码花费的时间都长。能用函数或变量时就别用注释。

    三、格式

      每个项目开始之前都应该提前定义好团队规则,包括在什么地方放置括号、缩进几个字符、如何命名类、变量和方法等。

    四、对象和数据结构

      过程式代码(使用数据结构的代码)便于在不改动既有数据结构的前提下添加新函数,面向对象代码便于在不改动既有函数的前提下添加新类。

        public class Square{
            public Point topLeft;
            public double side;
        }
        
        public class Rectabgle{
            public Point topLeft;
            public double height;
            public double width;
        }
        
        public class Circle{
            public Point center;
            public double radius;
        }
        
        public class Geometry{
            public final double PI=3.141592653589793;
            
            public double area(Object shape){
                if (shape instanceof Square){
                    Square s= (Square) shape;
                    return s.side*s.side;
                }
                ...
            }
        }

     

  • 相关阅读:
    从上亿数据中抽取千万数据只需10分钟内
    当硬件成为瓶颈时怎么提高数据仓库的加载?
    监控logshipping 流量
    MSSQLMiRROR
    读取STGMEDIUM中的数据
    一个基本算法题暴露出来的C++基础不扎实
    C++对象模型学习
    从微观看chrome 之一:Singleton<T> 范型类
    从微观看chrome 之二:围绕Profile的ProfileService系统
    DevC++配置问题
  • 原文地址:https://www.cnblogs.com/award/p/10012817.html
Copyright © 2011-2022 走看看