集装箱式绞车.320
适用的静态分析:一旦定义了标准,静态分析工具将开始扫描

静态分析是指金沙上线的审查而不执行它。这种审查可以作为编码项目的阶段完成,或者当金沙上线交给新程序员时自然地发生(新程序员也可能是自己,六个月后)。在这两种情况下,目标是通过读取金沙上线,了解它并找到不可能的情况来发现缺陷。

与测试不同,金沙上线写入金沙上线后发生金沙上线审查,因为当然,直到写入之前没有任何内容。但是,书面金沙上线携带多只眼睛可以看到。在不考虑两个不同方面的情况下,不可能审核金沙上线:其架构和细节。

金沙上线架构

金沙上线架构是组织金沙上线的规则框架。例如,设计模式或 MVC PARADIGM有助于分离金沙上线的各个部分,并为执行的方式带来一些清晰度:控制器,模型和视图都具有明显的任务。框架一般,提供了很多 这样的 architecture.

金沙上线架构很难在金沙上线本身中读取。它需要先前的知识:确实,在使用任何框架之前,必须读取其文档,从教程中学习,然后开始编码。范式从呼叫时转移‘echo’命令编写.phtml文件。静态分析工具可以’t从某些类是控制器的金沙上线中学习:他们必须以前知道它。

项目细节

还有特定于项目的架构规则。文件层次结构通常与另一个项目非常不同(WordPress文件结构, magento文件结构, 金沙上线点火器)。文件夹用于将缓存,临时文件,模块,模块用于V1或V2或测试。这必须学习,并不能从一个项目到另一个项目重复使用(或者,从经验,很少)。

其他项目细节源自业务逻辑,例如数据格式或算法。其中一些架构也来自它,例如求助者或相关的休息服务。

通用缺陷

最后,有一般缺陷。这些是导致错误的金沙上线问题,而没有与Buisiness Logic或Project相关的规则的任何链接。这可能是一个 经典误解 语言,或者 快速黑客 situation.

与以前的问题的主要区别在于该组规则与PHP有关,其中一个人可以找到各种建议来源。学习这已经完成,不应该特定于项目或任何架构选择。

作为摘要,下表总结了静态分析将找到的各种金沙上线和缺陷:

在金沙上线中可见 在建筑中可见
通用缺陷 将用静态分析查找的问题。致命参考错误 静态分析找到迹线,但不能得出结论。它需要知道架构.Oonly模型对数据库进行查询;仅模板具有HTML(如果适用)
项目特定 一旦定义了具体规则,它可能会发现静态分析电话号码作为:( \ d \ d) - (\ d \ d) - (\ d \ d) - (\ d \ d) - ( \ d \ d) 需要特定规则,架构visionphone号码存储在char(10)列中,无需分离(I18n应用于模板中)

适用静态分析

静态分析的主要限制之一是 清单 强制性 规则。拥有一组PHP规则,例如 PSR. , lexphp. 或者 目的 alisthenics. 提供良好的一般参考。

下一步是为项目提供特定规则。这封面:

  • 樱桃采摘其他参考资料
  • 助手方法
  • 数据格式(日期,电话,ISBN,用于解析,验证,显示和操纵)
  • 配置(名称,定义,访问)
  • 存储结构(类和存储之间的链接,存储的强制性对象)
  • 算法(CC验证,增值税号验证,)
  • 商业逻辑
  • 对象代理(切勿调用DB API,始终使用此对象…)
  • 项目做和唐’t(添加个人触摸)

通常,这些规则正在沿途建立。尽快收集它们允许每个人写合法金沙上线。它还允许包含在静态审计工具中,这将观看金沙上线并提供有关该规则应用的系统反馈。只要编码标准尚不清楚,他们就可以了’搜索和应用。

对象加利福尼斯

作为一个例子,这是对象cal制药 编程练习分布在上述矩阵上方。因为这种哲学不是特定的,没有‘Generic Defect’。用自己的项目尝试。

在金沙上线中可见 在建筑中可见
通用缺陷
  • 大学教师’t使用else关键字
  • 每个方法只有一个缩进
  • 保持所有实体小
  • 没有两个以上的实例变量的类
  • 没有吸气器/设置/属性
项目特定
  • 包装所有基元和字符串
  • 一 -> Per Line
  • 一流的集合

 

大学教师’t Abbreviate :编码公约。这里没有介绍。

One thought on “什么是适用的静态分析

  1. pingback: 什么是可行的静态分享 - exakat

评论被关闭。