أود أن أقدم لبتة قابلة للقراءة . يحتوي الآن على 16 قاعدة من شأنها تحسين إمكانية قراءة التعليمات البرمجية. وتشمل المزايا الرئيسية:
- السرعة - أقل من ثانية لكل 1000 ملف
- الإعداد الأساسي - لا يمكنك إصلاح جميع الأخطاء في المشروع في وقت واحد ، ولكن يمكنك إنشاء تهيئة بالأخطاء الحالية. وتجاهلهم ، لكن رد فعل على الجديد.
- القواعد أسهل في الكتابة من النظير (ذاتي)
إخلاء مسؤولية هامان :
- أنا المساهم الرئيسي ، لذلك يمكنني أن أكون ذاتية. تمت قراءة مقروء أصلاً للشركة البلجيكية قاصرة . لقد استخدموه داخليًا لبعض الوقت الآن ، وقرروا جعل مشروع مفتوح المصدر قابل للقراءة.
- هو مكتوب في شبيبة.
التثبيت والبدء
مثبت للقراءة عبر npm:
$ npm install @officient/readable --save-dev
بعد التثبيت ، تحتاج إلى إنشاء ملف تكوين:
$ npx readable --init
ويمكنك تشغيل:
$ npx readable
قواعد
يوجد حاليًا 16 قاعدة في المقروءة:
- مساحة الاسم - max-files - الحد الأقصى لعدد الملفات في مساحة الاسم
- الوسيطة تجاوز - يحظر تغيير قيمة وسائط الدالة
- حجم الملف الأقصى - الحد الأقصى لعدد الأسطر في الملف
- الصيد الفارغ - الحظر المفروض على
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()
. - كرر الخطوة الثانية ولكن لجسم الحلقة (
{
و}
). - تحقق من طول دورة الجسم.
بدلا من الاستنتاج
أستخدم المقروء في مشاريعي مثل اللتر الإضافي للكود. يعجبني كل شيء ، وخاصة الخط القاعدي (في الإنصاف ، يحتوي المزمور أيضًا على هذا). لديه الفرصة لاحتلال مكانة اللتر المساعد.