‏הצגת רשומות עם תוויות finalclass. הצג את כל הרשומות
‏הצגת רשומות עם תוויות finalclass. הצג את כל הרשומות

יום שבת, 7 בדצמבר 2013

197 Final Class 35 Continuous Deployment in Large Companies


  • מסביב לשולחן העגול: גילי, אורי, ערן, יונתן, איתי, עידו ורן.
  • על הפרק: מעבר ל Continuous Deployment בענק הכחול.
  • האתגר: איך מעבירים תוכנה משווקת בקופסא לתוכנה כשירות?
  • המעבר התבצע בשלבים: משחרור גרסא שנתי לשחרור רבעוני ובהמשך חודשי ושבועי..
  • הגביע הקדוש: Continuous Delivery - שחרור גרסא רציף.
  • מצווה גוררת מצווה: עושים Continuous Deployment? לא נעשה גם בדיקות? ומה עם אוטומציה?
  • השינוי צריך לבוא מבפנים - לא נכפה Test Coverage מינימלי לצוותים.
  • לא להעיר דובים משנתם - קוד הלגסי עובד עד עכשיו ללא באגים? בדיקות שם יהיו בעדיפות נמוכה.
  • לא לחשוש מלפתח תלות בכלים אוטומטיים.
  • מה לגבי כח אדם? בודקים ידניים הוסבו לפיתוח בדיקות אוטו'.
  • Mean time to Failure מתחלף ב Mean time to Recovery.
  • לקיצוניים שבינינו - וותרו על בדיקות ובצעו רק ניטור מדוקדק של הסביבה החיה.
  • כדאי לשמור על טעם טוב בכמה ואיך בודקים - יש דבר כזה יותר מדי בדיקות.
  • שיניתם סכימה? כדאי שהשינוי יהיה עם תאימות לאחור ולפנים.
  • בלוג של HubSpot - איך לשווק פנימית צורך בשינוי תשתיתי.

הקובץ נמצא כאן האזנה נעימה ותודה רבה לאורן אפרתי על התמלול!

יום שבת, 16 בנובמבר 2013

195 Final Class 34 - Anti Patterns

?אנטי פטרנס - או במלים אחרות, למה להיות חיוביים כל הזמן

התאשפזו בכפייה: ערן, ארז, עידו, איתי, יונתן ורן.
  • Scaffolding - לפעמים הפיגומים מחליפים את היסודות.
  • חילול קוד אוטומטי - משהו מסריח בשפה?
  • קומפילציה מ CoffeeScript ל JavaScript עלולה להיות בעייתית ללא Source Maps,
בדומה לקומפילציה בין LESS ל CSS.
  • איך אפשר בלי root of all evil - D. Knuth) Premature Optimization)?  נפוץ במיוחד בנסיון למקבל תהליכים ע"ח סיבוך הביצוע.
  • טיפ מרן לראיונות - קיבלתם משימת תכנות? קודם כל שיעבוד, ורק אח"כ תחשבו על שיפורים.
  • איך מזהים אנטי-פטרן? כשהקוד מתחיל להסתבך, משהו פה לא מריח טוב.
  • לא לבצע Code Reviews.
  • עצי ירושה גדולים שהופכים ליער - אולי כדאי לעבור להכלה במקום ירושה.
  • אנטי-פטרנס חמים מהתנור של איתי: לא לשלוט בAPI של השפה  (Vector.java מישהו?) וקבועים שרירותיים בקוד.
  • לסיום, מור"קים מ Orbitz: מסטר JIRA.


הקובץ נמצא כאן האזנה נעימה ותודה רבה לאורן אפרתי על התמלול!

יום שני, 26 באוגוסט 2013

190 Final Class 32: Web APIs

  • התאשפזו במחלקה: ישי, יונתן, ערן, גילי ורן.
  • בראשית היתה CORBA.
  • היום REST שולט ללא עוררין.
  • ל Public APIs יש מחיר - תיעוד!
  • אצל רן הכל התחיל עם rss והוא אפילו לא ידע את זה.
  • Facebook API: דוגמא ל API מצטיין.
  • כאשר ה REST API מספיק עשיר, אין צורך לפתח קליינטים אחרים במגוון שפות.
  • ישי היה נותן ב API טוב סימנים: אפשר לעבוד איתו בקלות עם curl?
  • ZooKeeper הוא ה ESB החדש.
  • load-balancing ו fail-over ? תנו לקליינט לשבור ת'ראש
  • אנטי-פטרן: שימוש באותו המודל גם לשמירה ב Database וגם לסיריאליזציה ב API
  • WebSocket: טוען חדש לכתר במקום Http Long-Polling:
    • מאפשר ערוץ דו-כיווני של שליחת הודעות מהקליינט לשרת ולהפך.
    • בצד השרת יידרש non blocking io (בג'אוה Jetty מצטיין בכך)
  • השוואה מפורטת ראו כאן.

הקובץ נמצא כאן האזנה נעימה ותודה רבה לאורן אפרתי על התמלול!

יום שלישי, 16 ביולי 2013

187 Final Class 31 - ThoughtWorks Radar 2013


  • הסוקרים המקומיים: רן, עידו, ארז וישי.
  • טרנדים כלליים שהרדאר השנה מציין:
  • עולם העבודה ללא גבולות -  עבודה תתבצע יותר ויותר מחוץ לכותלי המשרד וסביבות העבודה יופעלו בענן ויהיו נגישות מכל מקום.
  • שימוש בפרקטיקות מוכחות בתחומים שעד עתה התעלמו מהם
  • הנגשת כלי אנליטיקת מידע - קלות שימוש ומחיר (קוד פתוח): כבר לא יידרש דוקטורט בתחום לבצע אנליזות על מידע.
  • תשתיות כקוד - Continuous Delivery ו DevOps הן רק הסנוניות למגמה זו.

  • הרדאר סוקר ארבע קטגוריות: טכניקות, פלטפורמות, כלים, ושפות תכנות / Frameworks.
  • כל קטגוריה מקבלת אחד מארבעה ציונים:
  • Adopt- מומלץ ביותר, Trial- שווה לבדוק, Assess- שווה לבדוק אך לא בשל, Hold- עדיף להימנע.

  • פלטפורמות - Adopt
  • Elastic Search:  מנוע חיפוש ואנליטיקה התומך בחיפוש חופשי, Facets, ועוד. מזכיר את Lucene.
  • MongoDB: בסיס נתונים NoSQL- הרבה יתרונות אך גם לא מעט חסרונות, רן היה נותן רק Trial.
  • Data Structure Server :Redis- מהיר כמו Memcache, תומך במסטר/סלייב.
לא מומלץ לריצה מעל דטה-סנטר שונים. ניתן לבצע איתו גם משימות סנכרון בסגנון ZooKeeper.
  • Continuous Integration: רן ממליץ על  CircleCI ו Travis CI -  שרותי CI בענן המחוברים לGit.
  • כלים - Adopt
  • D3: ספריית Javascript לתצוגת גרפים. וקיימות גם הרחבות שלה: NVD3 ו Rickshaw.
  • NuGet: כלי בסגנון Maven עבור עולם הדוט.נט.
  • Graphite: מע' גרפים בזמן-אמת, כתובה בPython ומשתלבת יפה עם כלי ניטור כמו Nagios.
  • כלים - Trial
  • Logstash: מע' לניתוח לוגים בעלת יכולת הבנה סמנטית בעזרת אוסף פלאגינים מרשים.
  • PhantomJS: ללכת עם להרגיש בלי- סטאק וובי מלא ללא דפדפן. מצוין לביצוע אוטומוציות.
  • כלים - Assess
  • Reactive Extension - Microsoft RX: כלי לביצוע Complex Event Processing.
  • כלים - Hold
  • Maven: החלום ושברו. התחיל מבטיח אך הXML המרובים הכניעו אותו לבסוף.
מומלץ לעבור לכלי בילד מבוססי שפות אימפרטיביות ולא דקלרטריביות כמו גריידל ורייק.
  • שפות - Adopt
  • סקאלה ממשיכה לצבור תאוצה, בעיות ידועות כמו תמיכה בגרסאות קודמות מתחילות להיפתר.
מתכנתים מוכשרים בדומיינים של מע' מקבילות ועיבוד מידע נמשכים לשפה.
פריימוורקס חדשניים נכתבים ישירות עבור סקאלה כמו Play.
  • LESS  - CSS Frameworks ו Sass: קימפול CSS בצד השרת יכול לחסוך הרבה בעיות.

    פוסט בנושא של websockets, אותו הזכרנו בפרק זה, מהחברה של ישי, המשווה wss ל https התפרסם מאוחר יותר, והרי הקישור







הקובץ נמצא כאן האזנה נעימה ותודה רבה לאורן אפרתי על התמלול!

יום שני, 17 ביוני 2013

185 final class 30 caching


Don't say a prayer for me now, Save it 'til the morning after” - Duran Duran, Save a prayer
  • שומרים טוב-טוב בלב (אבל רק עד שמשהו יותר חשוב יגיע) - ישי "השקט", גילי "המביט", איתי "מישיר המבט" ורן "המארגן". הנושא שמור בתוך כספת - Caching.
  • יבגני ודמיטרי נתנו בראש בכנס רברסים בנושא Cache - שווה צפיה.
  • Caching אפשר לעשות בכל מיני רמות, בכל מיני מקומות, לכל מיני דברים.
  • בדרך כלל, מה שמשתמשים בו יותר נשאר בזיכרון.
  • החישוב יקר וכך גם הרשת - אלה הם אזורים מועדפים ל-Caching
  • בשפות עם GC, ככל שיש יותר אובייקטים בזיכרון, ככה ה-GC יטחן (אאוצ'!).
  • Cache invalidation - קשה, קשה...
  • גם Client side caching - קשה, קשה...
  • Memcached - סופר-דופר קאש. שווה.
  • תביא לי את הקובץ - אבל רק אם משהו השתנה.
  • כבר בכיתה ב' אנחנו עושים Caching ללוח הכפל. בהמשך, בתנאי שאתם תלמידים טובים וממושמעים, אתם עושים Caching לכל מה שאתם לומדים ויוצאים מבית הספר עם ידע שהוא כבר 4 שנים אחרי ה-Expiry של ה-TTL שלו.
  • ומה עם המפתחות? מה ההתפלגות שלהם?
  • כמו בעוד תחומים בחיים, אם ה-Cache שלך מפספס יותר מדי פעמים - אתה עושה משהו לא נכון.
  • במנועי החיפוש הגדולים היום (גוגל ו-בינג), רוב השאילתות מאוחסנות ב-Cache.

אירועים:
  • DevOpsDays בישראל. יש לכם משהו חכם להגיד? אנחנו רוצים לשמוע. ואם אתם רוצים להיות ספונסרים - אז גם אפשר.

הקובץ נמצא כאן, תודה ליותם אורון על התמלול.

יום שישי, 3 במאי 2013

179 Station Configuation

  • דואגים לסדר מופתי בתחנה ישי, ערן, ארז, עידו ורן. במרכז הזירה - איך ומתי הומצאה הקונפיגורציה האוטומטית לתחנת העבודה.
  • לרגל ה-1 במאי - שמיעת חובה. וגם קריאת חובה.
  • Boxen רגיש מאוד לגרסה של מערכת ההפעלה.
  • סביבת עבודה דומה אצל כולם. המממ.... נשמע כמו רעיון טוב...
  • אם אתה מקים למפתח את הסביבה, כנראה שהוא ידע קצת פחות טוב איך לפתור בסביבה הזו בעיות.
  • Pivotal Sprout הוא כלי דומה למה שעושה Boxen
  • ב-Outbrain יש דף Wiki שמסביר איך להתקין תחנה חדשה.
  • יש מי שיוכל להתעצבן כשמישהו אחר מחליט לו איפה דברים יהיו.
  • גם Disk Image הוא פיתרון.
  • בווינדוס מתקינים Visual Studio, מתקינים לו קובץ הגדרות, וזהו.
  • אפשר גם לשים את ה-Executables ב-SCM
  • dotfiles - ככה מאחסנים קונפיגורציה של כל הכלים שלכם.
  • לפעמים יש יתרון לסביבה הטרוגנית של תחנות עבודה.
  • אם ההתקנה פשוטה מספיק - אין צורך בכלי כלשהו בשביל ליצור סביבת פיתוח.
  • ווינדוס - זה לא משהו שמפתחים איתו. פשוט לא. אלא אם אתם מפתחים ב-#C
  • zsh - יש מי שמשתמש בזה (ויש גם כמה הטבות לחברי מועדון)
  • מי שעובד במודל PaaS לא תמיד מתעניין באיזה מערכת הפעלה יש ב-Production.
  • עדיף לא לשבור את השורות בצורה לא נכונה. בשביל זה יש מישהו אחר.


הקובץ נמצא כאן האזנה נעימה ותודה רבה ליותם אורון על התמלול!

יום שלישי, 16 באפריל 2013

175 Final Class 28


“Erase and rewind, 'cause I've been changing my mind” - Erase and rewind, The Cardigans.

  • משחזרים במרץ מה קרה בלילה הגורלי ההוא רן, עידו וערן, גילי, איתי ויונתן.
  • אז יש Backup? כדאי לוודא שיש (ואפשר גם לעשות Restore, ככה סתם, בשביל לנסות)
  • Database מבוזר - קווים לדמותו (ולדמות גיבויו).
  • CouchDB (ולא רק הוא) לא מוחק - רק כותב גרסה חדשה של המידע.
  • אטומים על דף נייר. מסודרים. גילי נחום©
  • לפעמים, צריך פשוט להבין שרק בסופו של דבר הדברים יסתדרו. קוראים לזה Eventual Consistency.
  • השטן הגדול יודע משהו על גיבוי והתאוששות. ו-Consistency. ו-Durability. וזה.
  • גיבוי של מערכת חיה הוא לא עניין טריוויאלי. מצד שני, לא בטוח שביום פקודה בכלל יהיה שימוש לגיבוי.
  • אם לא צריך לגבות את זה - אל תגבו את זה. כמה פשוט, ככה מפחיד.
  • טייפ גיבוי. אחחח, הנוסטלגיה... (שורה תחתונה - זה לא עובד. אבל נותן תחושה שהכול מגובה)
  • ל-S3 יש אח חורג (וקצת איטי. ומאותגר ביותר מבחינה אחת.), קוראים לו Glacier.
  • גיבוי בקסנדרה - לא עניין טריוויאלי. וגם במונגו לא תלקקו דבש.
  • בדיינמו הכול מגובה לאמאזון. איזה יופי.
  • גיבוי ב-Lucene? קלי קלות. שימו Hard Link. וזהו.
  • רן שולף דאטה סנטר'ס שלמים מהאדמה בשביל לגבות אותם. בחור חזק.
  • ובנושא אחר לגמרי: Backlog Grooming.
  • אם באים עם אותה בקשה כמה פעמים - כנראה שהיא חשובה. אפשר אפילו לעשות דברים מהיום להיום.
  • בבאגים מטפלים מייד או אף פעם לא. אורי נתיב ©
  • יואל ספולסקי מספר על מחסנים ומלאים. בשורה התחתונה - לכל דבר יש מחיר, גם לרשימה של באגים.
  • מדי פעם רן פשוט מוחק את כל הבאגים והפיצ'רים שלא באים לו טוב בעין. גילי עדיין מתאושש מההלם.
  • גילי רק מוסיף. ומוסיף. ומוסיף.
  • אם כבר עברו שבועיים והבאג לא טופל - לגרדום. גילי עדיין לא מבין איך אפשר למחוק באגים בלי לטפל בהם.

הקובץ נמצא כאן האזנה נעימה ותודה רבה ליותם אורון על התמלול.