zoukankan      html  css  js  c++  java
  • 意大利面代码

    Spaghetti code是一个反模式(见《A Big Ball of Mud》)。在这个模式中,代码交织在一起,导致可读性、可维护性很差。

    image

    从编程语言上来看,goto是Spaghetti code的一个显著例子。在运用goto语句的程序中,程序执行指令能够调整到程序中的任何地方。但是这种灵活性会带来复杂性(可读性差,可维护性差)。后来,人们提出了“结构化编程”。

    是不是“结构化编程”就能解决Spaghtti code了呢? 在我看来,以下的情况依然会导致意大利面代码是出现

    1. 不恰当的包依赖。比如具体依赖了抽象,特殊依赖于公共。

    2. 随意的类位置。比如一个UI的类写到业务逻辑的包里了,还比如Servlet的类放到工作流程相关的包里。

    3. 长方法。一个方法越长,方法里面的if...else...就会越多。当if...else...里面嵌套if...else...的时候,这个方法的可读性就很低了。

    对于以上列举的意大利面代码,我的建议是: 专门的人员(比如架构师),制定规矩--比如什么类写到什么地方, 同时做好code review并增加培训的时间。我们在工作中需要做写一段时间的代码,然后有些专门的会议(让我们一起讨论,怎么的代码才是好的代码)。

  • 相关阅读:
    [Axiom 3D]1.初识Axiom
    [.Net]System.OutOfMemoryException异常
    一个恶心的需求
    度分秒的正则表达式
    CSLA.Net学习(3)INotifyPropertyChanged和IDataErrorInfo
    [转载]高斯正反算
    分带?不分带?
    chm帮助文档制作及C#调用
    OleDb未指定错误
    [学习笔记]工厂方法用于数据库开发
  • 原文地址:https://www.cnblogs.com/cando/p/2316946.html
Copyright © 2011-2022 走看看