כלים או קטגוריות

30/06/2024

ג'ודי לי פרסמה רשימה של 20 כלים שכל מתכנת ומתכנתת צריכים להכיר. היא כללה את הכלים הבאים: VS Code, Copilot, Docker, Kubernetes, Postman, Jira, Slack, Figma, Node.js, Webpack, Terraform, VS Code Live Share, Sentry, SonarQube, Prometheus, Grafana, Ansible, Elasticsearch, CircleCI, Tailwind CSS.

כשמקבלים כזאת רשימה יש כמה שאלות שכדאי לשאול לפני שצוללים ללמוד את הכלים (אם בכלל צריך):

  1. למי הרשימה מיועדת? איזה סוג מפתחים ירצו את הכלים האלה?

  2. מה המטרה של כל כלי? האם יש כלים אחרים עדיפים שאני כבר עובד איתם?

  3. איפה ההזדמנות שלי לשפר את הפרודוקטיביות?

  4. איפה ההזדמנות שלי ללמוד יכולות חדשות?

אני מתחיל עם השאלה הראשונה - בגלל שהרשימה כוללת פריימוורק ל CSS, כלי לבאנדלינג של קבצי צד-לקוח וכלי עיצוב אני מבין שהיא מיועדת למפתחי צד-לקוח. בגלל כלי ה Deployment וה Monitoring אני מבין שהיא מיועדת ל DevOps ובגלל Node ו Elastic אני מבין שיש פה קריצה למפתחי צד שרת. חיבור כל ה-3 שם אותי במגרש של Full Stack Developers.

עכשיו בתור Full Stack Developer אני יכול להמשיך ולשאול האם אני באמת צריך את הכלים האלה דרך שלושת השאלות הבאות - מה המטרה של הכלי, איפה הזדמנות הלמידה ממנו והאם הוא באמת רלוונטי ל Workflow שלי. סריקה זריזה של הכלים מראה שלכל אחד מהם יש אלטרנטיבות לא פחות טובות וחשובות, ולכן אם היו שואלים אותי הייתי מארגן את הרשימה לפי נושאים:

  1. סביבת פיתוח - בין אם זה יהיה VS Code, הכלים של Jetbrains או vim, כדאי למצוא סביבת פיתוח שאתם אוהבים וכל הזמן לחפש סביבות חדשות.

  2. יועץ AI - יש לנו את ChatGPT, Claude וכמובן copilot, אבל גם את ה AI של פייסבוק וזה של גוגל ומיסטרל ורבים נוספים. כדאי להכיר כלים כאלה וללמוד איך לשלב אותם בצורה אפקטיבית ב Workflow שלנו.

  3. כלי Deployment ו CI/CD - חשוב להבין איך תוכנה עוברת מהמחשב שלנו לשרת או שרתים בענן ואיך היא מנוהלת שם. יש המון כלים שיכולים לעזור בזה כמו Docker, Kubernetes, Ansible, Terraform אבל גם Github Actions ורבים נוספים.

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

  5. בסיסי נתונים - יש המון סוגים של בסיסי נתונים מעניינים החל מ Postgresql הסטנדרטי דרך DynamoDB, Mongo, CouchDB, neo4j ורבים נוספים. כדאי להכיר כמה שיותר סוגים של בסיסי נתונים כדי להתאים את בסיס הנתונים למערכת.

  6. שפות פיתוח - מפתחי Full Stack רגילים לעבוד ב TypeScript גם בצד שרת וגם בצד לקוח וזה באמת מאוד נוח. היום בנוסף ל node.js יש גם את bun וגם את deno שמריצים TypeScript באופן זה. בנוסף יש עדיין הרבה שפות פיתוח שמתקמפלות ל JavaScript ומאפשרות בנייה של יישומי Full Stack בשפה אחת. נסו למצוא פריימוורקים כאלה ותראו איזה מהם מתאימים לפרויקט שלכם.

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