xo הוא eslint לעניים

אין מצב שאני כותב שורה אחת בלי שהפרויקט יכלול בתוכו תשתית כלשהי של static code analysis. אם זה ג'אווהסקריפט אז בדרך כלל אני משתמש ב-eslint. למה אני משתמש בבדיקת קוד סטטית? מאוד פשוט, זה גורם לקוד שלי להראות טוב, להיות קריא, מונע ממני לבזבז זמן על תקלות מטופשות, מונע מראש בעיות ביצועים וחורי אבטחה. בדיקת קוד סטטית מוצלחת שלא מאפשרת לי להכניס קוד בעייתית לפרויקט שלי היא הבסיס של הבסיס. איך אני יכול להציג בפני קולגות, מנהלים או לקוחות קוד שנראה רע? קוד שמשמשים בו בעירבוביה אידנטציות של רווחים וטאבים? מרכאות כפולות ומרכאות בודדות? זה נראה פשוט רע.
אם מדובר בפרויקט ג'אווהסקריפטי, אני בדרך כלל מעדיף את eslint לבדיקות קוד סטטיות. הוא מהיר, מכיל הרבה אפשרויות של autofix שחוסכות ממני לשבור את הראש, אינטגרציות טובות עם הרבה סוגי IDE ואפשרות להרחבות שונות ומשונות כולל תוספים שאני יכול לכתוב לבד אם אני רוצה. יש רק בעיה אחת קטנה עם eslint, עבור כל פרויקט אני צריך לקנפג את הכללים שאני רוצה לאכוף על הקוד. זה לא מאמץ גדול במיוחד, בהתחשב בכך שכל דקה שאני משקיע על התשתית של הקוד חוסכת לי שעות של באגים מוזרים.

אבל מה קורה עם פרויקטים קטנים? באופן עקרוני לכל אחד יש את ה-eslintrc (קובץ הקונפיגורציות של eslint) משלו. אבל בדרך כל יש בו טוויקים ובלגנים שלא תמיד צריך בכל פרויקט. וגם לא תמיד זוכרים איפה הוא. בנוסף, צריך להכניס גם את ה-eslint ל-npm יחד עם הנתיבים המתאימים. זו לא עבודה קשה מדי, אבל בטח עבודה קשה כשמדובר על פרויקט קטנטן. מה הפתרון? הפתרון הוא xo. מעטפת ל-eslint שכוללת המון דברים נחמדים כמו תצוגה יפה ומאוד ויזואלית, מהירות בשל מננון caching והכי חשוב: אפס עבודה בהתקנה וקינפוג. כל מה שצריך לעשות זה להתקין את xo באופן גלובלי:

npm install --global xo

ואז לכתוב

xo --init

ו… זהו! מאחורי הקלעים, xo תכניס את עצמה כבר לתוך הסקריפט של npm test (לפני שהבדיקות רצות) ולכם יש בדיקת קוד סטטית בלי קונפיגורציות כלל. אם לפני היה לכם משהו כזה:

{
	"name": "awesome-package",
	"scripts": {
		"test": "ava"
	},
	"devDependencies": {
		"ava": "^0.20.0"
	}
}

אחרי ההרצה של xo init יהיה לנו משהו כזה:

{
	"name": "awesome-package",
	"scripts": {
		"test": "xo && ava"
	},
	"devDependencies": {
		"ava": "^0.20.0",
		"xo": "^0.18.0"
	}
}

איזה כללים יש ב-xo? בגדול היוצרים של xo הכניסו פשוט את מה שמקובל בשוק וזהו. ובינינו? לפרויקט קטן זה מספיק. צריכים לשנות? אפשר, כאמור לשנות את הקונפיגורציה דרך xo. אבל בגדול, אם כבר אתם צריכים לשנות משהו, יש סיכוי יותר מסביר שהאפליקציה שלכם גדלה והגיע הזמן לנטוש את xo לטובת שימוש ישיר ב-eslint בלי אבסטרקציות. בכל מקרה, טוב להכיר 🙂 פירוט נוסף, בדוקומנטציה המאוד בהירה שלהם.

תצוגת שגיאה של xo

תצוגת שגיאה של xo

כדאי תמיד להשאר מעודכנים! הרשמו לעדכונים של האתר במייל! - המייל יישלח כל יום ראשון בעשר בבוקר ויכיל אך ורק את המאמרים שהתפרסמו באינטרנט ישראל. ללא ספאם, ללא הצפות, ללא בלגנים. 🙂

אהבתם? לא אהבתם? דרגו!

לא אהבתי בכלללא אהבתיבסדראהבתיאהבתי מאוד (2 הצבעות, ממוצע: 5.00 מתוך 5)


אל תשארו מאחור! יש עוד מה ללמוד!

כתיבת תגובה

האימייל לא יוצג באתר.

רישום