• בלוג
  • מה יש לא לאהוב ב Jade?

מה יש לא לאהוב ב Jade?

07/01/2019

אם תפעילו את Express Generator בלי לציין View Engine תקבלו פרויקט שמשתמש ב View Engine בשם Pugs, אבל פעם קראו לו Jade והרבה אנשים ממשיכים עם השם הישן. מדובר על מנוע תבניות שבגדול הוא ממש נוח במיוחד בהשוואה ל EJS.

קחו דף HTML סטטי לדוגמא:

<div>
  <h1>Ocean's Eleven</h1>
  <ul>
    <li>Comedy</li>
    <li>Thriller</li>
  </ul>
</div>

אנחנו יכולים לכתוב אותו ב Jade ולקבל דף הרבה יותר נקי:

div
  h1 Ocean's Eleven
  ul
    li Comedy
    li Thriller

וזה רק משתפר אם נחליט להוסיף קצת לוגיקה לעמוד. הנה הרשימה בצורה דינמית בכתיב EJS:

<div>
  <h1>Ocean's Eleven</h1>
  <ul>
    <% items.forEach(function(item) { %>
        <li><%= item %></li>
    <% }) %>
  </ul>
</div>

ואותו דף עם רשימה דינמית ב Jade:

div
  h1 Ocean's Eleven
  ul
    each item in items
    li= item

או קוד עבור קישור ב EJS:

<a href="<%= link.href %>"><%= link.text %></a>

לעומת Jade:

a(href=link.href)= link.text

ובכל זאת אין ל Jade סיכוי, ואני אפילו לא חושב שזה באשמתו. HTML משחק תפקיד מאוד מרכזי בעולם ה Web היום. בארגונים רבים אנחנו מקבלים קוד HTML מבחוץ (למשל מהמעצבים או מצוות חיצוני), ובמקומות אחרים יש אנשי HTML ששמחים להישאר עם המיומנות והכלים שלהם. ההבדל התהומי בכתיב בין HTML ל Jade הוא שהופך את האחרון לחסר סיכוי.

באותו משפט מעניין להיזכר ב Scss, שגם לו מסתבר היה כתיב ישן והרבה יותר נקי שלא תמך אחורה ב CSS. החברים ב Sass הבינו את הבעיה והמציאו את Scss, כתיב שתואם לגמרי ל CSS ומרחיב אותו בעדינות, וכמובן שזה התחביר שבסוף כולם בחרו בו. כדאי לזכור את זה בפעם הבאה שאתם באים להמציא שפה חדשה שתשנה את העולם.