רשומות

מציג פוסטים מתאריך ינואר, 2021

מה ההבדל בין אוטומציה לפיתוח רגיל

תמונה
מבוא בתעשייה יש כיום שיח סוער מאוד על ההבדל בין אוטומציה לבין פיתוח. בעוד שיש אנשים שאומרים שאוטומציה זה פיתוח לכל דבר ומי שכותב אוטומציה צריך להסתכל על עצמו כעל מפתח, יש אנשים שרואים בפיתוח אוטומציה כתחום ששווה פחות, מתגמל פחות ודורש פחות הכשרה. הפוסט הזה אינו עוד שיחת מוטיבציה עם מסר של ״גם מפתחי אוטומציה הם מפתחים וצריך להתייחס אליהם ככה״. מטרת הפוסט היא להציג את נקודת מבטי האישית על תחום האוטומציה, על ההבדל בינו לבין תחום פיתוח התוכנה ה״רגיל״ לנסות לתת מענה לשאלה - מדוע אנשים רואים פער בין התחומים? קודם כל, מה זה פיתוח אוטומציה? יש הרבה הגדרות ל״מה זה אוטומציה״ ואני חושב שזו אחת הסיבות המרכזיות לדיון הבלתי נגמר על ההבדלים. כשאני מדבר על אוטומציה אני מדבר על כל קוד שנכתב כדי לעזור לנו לקדם את התהליכים שאחרת היו נעשים באופן ידני. כללי, נכון? זו בדיוק המטרה (בהמשך הפוסט נראה בדיוק למה ההגדרה כללית כל כך וכלל לא משנה). לפי ההגדרה הזו, כתיבת הספרייה selenium היא כתיבת אוטומציה, אם ניקח את זה קצת יותר רחוק, גם כתיבת המערכת jenkins היא אוטומציה. האם Jason Huggins ו Simon Stewart, שניים

יצירת חבילת pip ב-5 דקות

תמונה
מבוא כתבנו קוד, אנחנו מרוצים ממנו וחושבים שהוא יכול להועיל לעוד אנשים, אולי בתוך אותו ארגון בו אנחנו עובדים ואולי פשוט להוציא את החבילה לשימוש העולם. יש הרבה דרכים לחלוק קוד עם הקהילה, אבל אחת הנפוצות מבניהן היא יצירת חבילה שכל מה שהמשתמש יצטרך לעשות על מנת לצרוך אותה זה pip install . בפוסט הזה נדבר שלב אחרי שלב על איך יוצרים חבילת pip, מעלים אותה לשרת החבילות pypi.org  ומתקינים היכן שרק נרצה. חשוב לציין של-setuptools קיימים פיצ'רים רבים וחלקם גם מורכבים, שלא אגע ברובם. להרחבת הקריאה אני ממליץ כמו תמיד לגשת לדוקומנטציה הרשמית. למה לא סתם פרויקט בגיט שעושים לו clone? או אפילו git submodule? אם אני עובד בחברה, ובחברה הזו יש צוות שצריך ממני את הקוד שכתבתי, הוא יכול לצרוך אותו בעוד דרכים כמו clone או submodule . למה בעצם לא ללכת בדרך הזו? התשובה הפשוטה היא כי זה לא מסודר . pip מהווה עבורנו ניהול מסודר של חבילות וגם של תתי-התלויות שלהן. כשאנחנו עובדים מול גיט בתצורה של submodule או clone לפרויקט אנחנו צריכים לנהל בעצמנו את הגרסאות, ומכיוון שגיט עובד לפי commits, נצטרך להתקין את החבילה כ

איך להשיג פרודוקטיביות מקסימלית?

תמונה
מבוא בעולם התעסוקה כיום יש בעיה מהותית מאי פעם - הסחות דעת . היכולת לשבת ולבצע עבודה איכותית לאורך זמן כמעט ונעלמה מהשוק, ובטח שהיא כבר לא עיקרו. בתחום התוכנה ובחברות ההייטק מרגיש לי שזה לא פחות גרוע. מגיעים לעבודה (מאוחר יחסית), עובדים חצי שעה, מגיע חבר, שותים קפה, עובדים עוד כמה דק׳, פגישת דיילי סטנדאפ (כי חייבים להתעדכן), ממשיכים לעבוד, הסלאק פתוח, מישהו צריך עזרה עם משהו שאנחנו התעסקנו בו, אז מה, לא נעזור? עולים לזום, ארוחת צהריים, קפה של אחרי, happy hour ועוד מיליון פעילויות שהחברה מארגנת. והכי חשוב - שעה ביום של ויכוחים על Naming. לאחרונה קראתי את הספר Deep Work של Cal Newport (פרופסור למדעי המדעי המחשב מ MIT בעבר ומאוניברסיטת ג׳ורג׳טאון בהווה שהקדיש מרבית חייו למחקר על פרודקטיביות). והחלטתי לפנות לספר על מנת לענות לנו על השאלה, איך יוצאים מהמעגל הזה ומשיגים פרודוקטיביות אמיתית ויציבה? בספר יש מספר רב של נקודות מעניינות וטיפים למחשבה, מטרתי בפוסט היא לא לסכם את הספר, אלא להציג את הנקודות המעניינות בו ואיך הן עזרו לי. ניופורט (המחבר) מחלק את הספר לשני חלקים, בראשון הוא מציג את המו