1、由于必须水平滚动,因此难以快速概览和理解任何代码。单行代码太长;
2、依赖项注入是一种软件设计模式,其中一个或多个依赖项(或服务)被注入或通过引用传递到一个依赖对象(或客户端)中,并成为客户端状态的一部分。该模式将客户的依赖项的创建与其自身的行为分开,这使程序设计可以松散耦合,并遵循依赖项倒置和单一职责原则。
class SomeClass { 公共功能__construct(){ $ this-> object = new SomeOtherClass(); //不符合规定 } } class SomeClass { 公共功能__construct(SomeOtherClass $ object){ $ this-> object = $ object; } }
3、表达式的复杂性是由数量限定&&
,||
if(((($ condition1 && $ condition2)||($ condition3 && $ condition4))&& $ condition5){...} //糟糕的 ((my_first_condition()|| my_second_condition())&& my_last_condition()){...} //看起来还不错
4、认知复杂度是衡量功能的控制流程难易程度的一种度量。具有高度认知复杂性的功能将难以维护。
5、具有布尔返回值的方法的名称应以“ is”或“ has”开头
6、未使用的局部变量应删除
7、“ if ... else if”构造应以“ else”子句结尾
8、控制流语句“ if”,“ for”,“ while”,“ switch”和“ try”不应嵌套得太深
9、function 功能不应该太复杂
10、不应在子表达式中进行分配
if($ val = value()&& check()){//不合规 } $ val = value(); 如果($ val && check()){ } or if($ val == value()&& check()){//也许实际上是赋值运算符 }