PHPで読み取り可能なリンターを紹介します。これには、コードの可読性を向上させる16のルールが含まれています。主な利点は次のとおりです。
- 速度 -1000ファイルあたり1秒未満
- ベースライン設定 -プロジェクトのすべてのエラーを一度に修正することはできませんが、現在のエラーで構成を作成します。そして、それらを無視しますが、新しいものに反応します。
- ルールはアナログ(主観的)よりも簡単に記述できます
2つの重要な免責事項:
- 私は主な貢献者なので、主観的になることができます。Readableはもともとベルギーの会社の役人のために書かれました。彼らはこれをしばらくの間内部で使用しており、オープンソースプロジェクトを読み取り可能にすることを決定しました。
- JSで書かれています。
インストールと起動
読み取り可能はnpm経由でインストールされます:
$ npm install @officient/readable --save-dev
インストール後、構成ファイルを作成する必要があります。
$ npx readable --init
そして、あなたは走ることができます:
$ npx readable
ルール
現在、読み取り可能な16のルールがあります。
- namespace-max-files-名前空間内のファイルの最大数
- argument-override-関数の引数の値の変更を禁止します
- file-max-size-ファイルの最大行数
- empty-catch —
catch
- class-comment — - ,
- forbidden-functions — (
eval
,print_r
...) - missing-braces —
if
,for
... - variable-length — (
$id
,$i
) - function-max-size —
- loop-max-size —
- forbidden-function-prefix — . ,
checkSomething
— , ? - if-assigment —
if
- complex-if —
&&
||
if
- ternary-max-length —
- loop-max-nest —
- max-nest —
readable , . — . , - , :
- readable . , .
- . , .
例としてloop-max-sizeルールを見てみましょう。彼のすべてのコード:
const loops = ['for', 'foreach'];
module.exports = {
check(maxLines, tokens, report) {
tokens.matchAll(loops, (token) => {
const end = token.copy().step().stepToClosing(); // skip ()
end.step().stepToClosing();
const lines = (end.current().line - token.current().line);
if (lines > maxLines) {
report(`Loop is longer than ${maxLines} lines [${lines}].`, token.current());
}
});
},
};
ルールは次のように述べています。
- すべてを見つける
for
とforeach
。 - 次のトークンを取ると
.step()
、それは左括弧になり(
ます。右括弧に移動します.stepToClosing()
。 - 2番目のステップを繰り返しますが、ループの本体(
{
および}
)について行います。 - サイクルボディの長さを確認してください。
結論の代わりに
私は、コードの追加のリンターとして自分のプロジェクトで読み取り可能を使用しています。私はすべて、特にベースラインが好きです(公平に言うと、詩篇にもこれがあります)。彼は補助リンターのニッチを占める機会があります。