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并增加培训的时间。我们在工作中需要做写一段时间的代码,然后有些专门的会议(让我们一起讨论,怎么的代码才是好的代码)。

  • 相关阅读:
    iptables的例子1
    Nginx教程
    bash编程基础
    centos7 PXE自动安装环境搭建
    矛盾破裂了
    20200823-矩阵的收尾与离散控制的跌跌撞撞
    20200817-三大公式的结束-频域法的再探
    markdown换行
    由二〇二〇新冠疫情引发的对于开源、分享这一理念的看法
    Windows简单使用记录
  • 原文地址:https://www.cnblogs.com/cando/p/2316946.html
Copyright © 2011-2022 走看看