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

  • 相关阅读:
    eclipse中的项目无法在build/classes目录下生成.class字节码
    nginx的权限问题(Permission denied)解决办法
    application/x-www-form-urlencoded、application/json、multipart/form-data、text/xml简单总结
    jackson的使用和详解
    博客园自定义样式
    java基础
    k8s
    系统服务构建运维
    私有云技术
    工程文档编写
  • 原文地址:https://www.cnblogs.com/cando/p/2316946.html
Copyright © 2011-2022 走看看