פתחי מילוט

24/07/2019

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

import os
os.system('mkdir -p foo/bar/mydir')

במיוחד אם לא הכרתם את os.makedirs.

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

async function main2() {
  const res = await db.Label.findAll({
    attributes: [
      [sequelize.fn('COUNT', sequelize.col('Books.id')), 'count'],
      [sequelize.col('name'), 'name'],
    ],
    include: {
      model: db.Book,
      attributes: [],
      required: true,
    },
    group: ['Label.id'],
    });
  console.log(res);
}

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