jquery - היית טובה, אבל חלאס
רגע של היסטוריה
בואו נתחיל בעבר.. בימים שהיו מתכנתים בnotepad, מתפללים שהקוד שכתבנו יעבוד ובעיקר מקללים את javascript או איך שאקרא לה מעתה במאמר - JS, כיוון שלא הבנו איך היא עובדת ומה קורה איתה. והיה צורך אמיתי בכלי שיעשה סדר בכל הבלאגן הזה!
עוד בימים שבקשה לשרת נראתה ככה:
קצת מגעיל, לא? הרי מה עם כל העקרונות של Clean code? (מי שעדיין משתמש בבקשות בצורה כזאת בבקשה בבקשה בבקשה שיחקור קצת על fetch. )
מישהו היה חייב לבוא ולעשות כאן קצת סדר! הרי זה לוקח שעות על גבי שעות לכתוב כל פעם:
על מנת להשיג אלמנט בדף..
ואם שכחנו נקודה, גרש או חלילה טעינו באיות של הפקודה, כלום לא עובד ואין סיכוי להבין מה קרה! ושוב נכנעים לפתרון הקל: אוו!! אני שונא כל כך JS! זו שפה לא ברורה ומשוגעת!
אז זהו, שכבר ממזמן לא..
המצב היום
אם נזרוק מבט קטן אל github - שהוא במקרה המאגר העולמי לקוד פתוח, שדרך אגב קיים לו גיבוי בכספת כמו המתכון של קוקה קולה למקרה בו יחרב העולם... ונרצה לראות מהן השפות המשומשות ביותר היום, נוכל לראות בבירור ש:
JS מככבת במקום הראשון, וזה דיי הגיוני, מי רוצה בעידן המודרני להוריד תוכנות דסקטופיות? אה רגע.. הכל עבר למובייל? אפליקציות? כנסו שנייה אחת לחנות האפליקציות שלכם (פליי סטור או אפפ סטור, אני לא שולל..) וספרו לי כמה אפליקציות מחכות אצלכם לעדכון.. נשמע שאתם מעריכים את העבודה הקשה של מפתחי האפליקציות שלכם ובאמת דואגים לעדכן.
נכון, אתם לא מעדכנים, בדיוק כפי שכותבי האפליקציות לא יעדכנו אפליקציות אחרות אצלם בסמארטפון או חלילה "במחשב", וזה טבעי, אנחנו בני אדם במאה ה21, העידן שבו הכל זמין במהירות שיא ואנשים הופכים להיות יותר ויותר עצלנים, לכן אפליקציות ווב, שמקבלות עדכון בכל פעם בו אנו מרעננים את העמוד הן הפתרון.
רגע של מחשבה...
אז כבר הבנו שJS כרגע מהמובילות בעולם,אז.. איך היא כל כך לא נוחה לפיתוח? אז זהו! שהמצב כבר מזמן לא ככה, סביבות הפיתוח של היום (הIDE) מאוד חכמות ודואגות להשלמה אוטומטית בצורה מדהימה.
אתם לא בטוחים איך כותבים קוד מסויים? רוצים לבדוק משהו על הקוד שלכם? אין בעיה, פתחו את הDevTools, כנסו לconsole והתחילו לתקתק את הקוד שלכם במהירות הבזק ורק לאחר שבדקתם שהוא עובד העתיקו אותו אל סביבת הפיתוח כמו שצריך..
מהירות הפיתוח בשפה סקריפטית היא עצומה, וזה החוזק הכי גדול שלה, אני כותב קוד בconsole - אני רואה את התוצאה באותה השנייה, בלי קימפולים, בלי מעברי ביניים ובלי משחקים. האתר שלי עלה בדפדפן? אני רוצה לבדוק מה יקרה עבור קוד מסויים ? מעולה! פותח את הDevTools ובודק בלייב. הגעתי למצב שהתחרטתי ואני רוצה לנסות שוב? ריפרש קטן לעמוד והכל חוזר למצב ההתחלתי.
אז לפי הטענות שלך אין לנו בכלל צורך בספריות פיתוח לJS בוא נגרוט את NPM ותפסיק לבלבל את המוח
אני יודע מה אתם חושבים.. כותב המאמר כותב אותו בצורה מאוד סובייקטיבית, כשאני ניגש לפיתוח מערכת גדולה אני צריך כלים שיעזרו לי להתמודד איתה ובזה אתם צודקים בצורה מעולה.
אבל.. ויש אבל גדול. גרסת הJS הנוכחית - ES6 מביאה עמה הרבה חידושים ופונקציונליות.
בעידן בו הכל צריך לעבוד בצורה מהירה ולמידע יש חשיבות, נעדיף להמנע ככל האפשר משימוש בדברים לא הכרחיים. וכן. לטעון ספרייה שלמה ששוקלת המון! בכדי להשיג את אותה הפונקציונליות שכבר קיימת בJS רק כדי לקצר 2 מילים שגם ככה הקלדתי באמצעות השלמה אוטומטית - מיותר.
הדוגמה הטובה ביותר היא שימוש בספריית axios של node כדי לשלוח בקשות לשרת מבלי שבאמת השתמשתי בפונקציונליות שבה. הרי בקשת fetch בסיסית עונה על הצורך ברוב הפעמים אלא אם אני מחפש קונפיגורציה מתקדמת יותר.
אמ;לק: אז מה בעצם אני טוען כאן?
שימוש בספריות הוא מבורך! נמנע ככל האפשר מחזרה על קוד ותמיד נעדיף להשתמש בקוד שכבר כתבו עבורינו, הרי זה היתרון של open source ושל פיתוח באמצעות האינטרנט וכמובן stackoverflow.
אבל ויש אבל, לפני כל שימוש בספריה חדשה, החובה היא עלינו לבדוק האם באמת יש לנו צורך בפונקציונליות שלה, האם ES6 והשפה לא עונים על הצרכים האלו? האם חיפשנו מספיק? או שסתם ככה למדנו בקורס לפני 10 שנים שעושים ואנו ממשיכים לעשות כי "זה פשוט עובד אז למה לשנות?". הרי זה התפקיד שלנו בתור מתכנתים טובים - תמיד להשאר רלוונטים, לחקור, לחפש, לנסות לפתור בעיות בצורה טובה ויעילה יותר. והעמסת ספריה כבדה וענקית על פרויקט שלא לצורך - היא בדיוק ההפך הגמור מכך.
סיכום
יש הרבה שיסכימו איתו, ויש כאלו שלא מסוגלים לתכנת ווב מבלי להשתמש בjquery, ולהם אסיים את המאמר בתמונה הבאה: