יום רביעי, 10 בספטמבר 2014

Visual Studio 2013 IDE - Part 2

שלום רב,

אכן זהו החלק השני של סקירת VS 2013 IDE.
על הפרק:
  • Code map.
  • Seeing function return values.
  • IntelliSense out of the way.
  • Box selection.
  • Adding labels to breakpoints.
  • Notifications.
  • Start Page.
  • CodeLens.

חסות ומתחילים.

Code map

גילוי נאות: ה feature הזה כבר נחשף בפנינו ב Update 1 של VS 2012, אז למי מאיתנו שלא עדכן - שווה להישאר.
הנה מה שנקבל לאחר לחיצה על כפתור ה code map במצב debug ומעבר על הקוד באמצעות step into F11. מעבר על הקוד באמצעות step over לא יניב תוצאות בחלון ה code map. העץ אשר מוצג מצד ימין למטה, נבנה בצורה דינמית בהתאם לכיוון הקוד שבו בחרנו ללכת.


מיקום הכפתור code map הינו ב tool bar וגם תחת Debug | Show Call Stack on Code Map. 






העץ יכול לגדול בצורה די משמעותית בהתאם לתרחיש ולכן מומלץ (ע"י קליק ימין בחלון ה Code Map) לארגן אותו מעט ע"י הסרת פונקציות פחות משמעותיות עבורנו, סימון פונקציות בצבעים, הוספת הערות ועוד. ניתן גם (שוב, ע"י קליק ימין) להגיע בצורה זריזה לתוכן הפונקציה.
אגב, חץ צהוב על גבי התרשים, מראה לנו היכן אנחנו ממוקמים מבחינת ה call stack.


החלון הנפתח כתוצאה מקליק ימין על גבי חלון ה Code Map.















ועכשיו מעבר לפרטים הקטנים, הרימו את הראש ותחשבו על התמונה הגדולה! מצליחים?
לא עוד debug לתרחיש ארוך עם שאלות כמו האם ביקרנו באזור הזה? ואם כן, איך הגענו לשם. שימושי ביותר לדעתי.
לגבי השאלה השלישית המתבקשת: כשביקרנו בפונקציה ההיא, מה היו ערכי הפרמטרים איתם הגענו אליה, קיים feature שכבר בטח מוכר לכם ואפילו אשמח להרחיב עליו בצורה מעמיקה בקרוב: IntelliTrace.

אז רגע לפני שממשיכיםהלאה, יש לי 2 דברים אליכם על מנת לסגור את  הפינה:

1. אני נאלץ להרוס מעט את החגיגה ולציין שה CodeMmap זמין רק בגרסת ה Ultimate של Visual Studio.
2. בשלב זה, ניתן לעשות את הקסם רק בשפות הבאות:
  • #C 
  • VB 
  • ++C 
  • JavaScript 

Seeing function return values

OK, אז ה Feature הבא עלה מתוך רחשי ליבם של משתמשי Visual Studio, אגב, שווה להזכיר כאן את Microsoft UserVoice (לינק), שזהו בעצם אתר בו כל אחד יכול להציע רעיון או לבקש שינוי או סתם לומר את אשר על ליבו וע"י כך מביא את אותה הארה/הערה לתשומת ליבם של אנשי מיקרוסופט, בדיוק כמו שקרה בדוגמא הבא:

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

























בדוגמא כאן למעלה, תוכלו להבחין שרגע לפני היציאה מהפונקציה, התווספה לנו שורת מחץ בדמות: string.Concat returned, אשר מאפשרת לנו, ללא כל מאמץ מצידנו,  לראות את הערך המוחזר מן הפונקציה (דרך מסך Autos). אפשרות נוספת והפעם מתוך מסך ה Immediate, היא להזין את המשתנה ReturnValue$ בשורה ריקה וע"י כך לקבל את הערך המוחזר.

IntelliSense out of the way

מה היינו עושים בלי ה IntelliSense??
אבל יש גם רגעים נדירים בהם המידע המוצג (של ההשלמה האוט') לנגד עיניניו מסתיר מעט את את הקוד שבקובץ, בדיוק כמו במקרה הבא:
















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




















Box Selection

Feature נחמד שקיים כבר מ VS 2010 לדעתי, אבל רציתי בכל זאת לציין אותו.
מדובר על היכולת לסמן מידע בצורה אנכית ומרובה שורות. הסימון מתבצע באמצעות ALT וקליק שמאל על העכבר וכמובן הסימון עצמו.














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

Adding labels to breakpoints

האפשרות לתייג breakpoints כבר קיימת מ VS 2010. המידע הבא מעודכן עבור VS 2013.

לאחר שסימנו מספר breakpoints:




























קליק ימין על אחת מהן ולחיצה על Edit Labels יקפיץ חלונית להוספת תגית אשר תשוייך ל breakpoint הנבחר.


















לחיצה על ALT + CTRL + B תפתח עבורנו את מסך ה breakpoints, שם נוכל לסנן את הרשומות ע"פ תגית מסויימת, כמו בדוגמא שלהלן:









הסינון, יכול לעזור מאוד כאשר נרצה להתמקד ב breakpoints החשובים לנו וזאת ע"י תיוג מראש.

הלאה.

Notifications

אחד היתרונות בעבודה מקוונת ומחוברת ל Microsoft Account, היא האפשרות לקבל הודעות ועדכונים שוטפים המותאמים לחשבון שלך.
ב VS 2013 ריכזו עבורנו את כל סוגי ה Notifications במקום אחד ובחלקו העליון מצד ימין של המסך מופיע חיווי לגביהן:







לחיצה על ה Notifications Icon תיפתח עבורנו את חלונית ה Notifications.

קיימות מספר אפשרויות תצוגה לNotifications Icon:







והנה דוגמא למידע המופיע בחלונית ה Notifications:
























ניתן יהיה למצוא שם מידע על עדכונים ל VS, מידע על עדכונים ל Extensions ועוד.

Start Page

נראה שדף הפתיחה ב VS 2013 הותאם להציג מידע שימושי יותר מגרסאות קודמות וזאת בהתאם לדרישות של המשתמשים המועברות דרך אתר ה UserVoice.
המראה כעת הרבה יותר נקי ומכיל 3 עמודות מרכזיות:
  • פתיחת פרוייקטים קיימים/יצירת חדשים.
  • העשרה (What's New & Videos).
  • הודעות (עדכונים שונים, פרסום מועד הרצאות המועברות ב LIVE ועוד) .
כך זה נראה:



















CodeLens

בכמה מילים: כל המידע בלי לזוז מהספה.
במילה אחת: מבריק.

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

אז מעל לכל פונקציה ומחלקה, התווספה לנו שורה תמימה אשר טומנת בחובה הפתעות רבות.
כל שורה יכולה להציג לנו את כל ההפניוית אשר קשורות לאותה פונקציה/מחלקה, היא מציגה לנו את כל המשתמשים שביצעו שינוי ו Check In לאותה פונקציה/מחלקה, השורה הזאת גם יכולה להציג לנו את ה Changeset History ברמה של מחלקה/פונקציה, Related Bugs ובכלל את כל ה Work Items הקשורים לקובץ.



דוגמא לתצוגת ההפניות לאותה פונקציה, לחיצה על השורה ונועבר לתוכן הפונקציה הקוראת. קיימת אפשרות גם לראות את ההפניה ע"י תרשים (לינק ל Code Map).




תצוגת כל ה Work Items הקשורים (ניתן להיכנס לפירוט שלהם ע"י לחיצה על השורה המתאימה).


תצוגת Changeset History:



אם יש גם Unit Tests הקשורים לפונקציה, נקבל גם חיווי לגבי כמות ה אשר Tests בוצעו בהצלחה.
ישנה גם אפשרות להגדיר בדיוק מה נרצה לראות בשורת המידע:
Tools | Options | Text Editor | All Languages | Code Information Indicators.

בקיצור יש כאן בהחלט Feature נורא עוצמתי ומבטיח המציג כמעט את כל המידע האפשרי אודות קובץ מסוים (ברמת מחלקות ופונקציות) ובצורה די חיננית. הוא יכול להיות שימושי מאוד עבור קבוצות פיתוח אשר משלבות יכולות ALM בצורה שוטפת (אגב, פוסט בנושא ALM בהקשר של VS 2013 כבר בקנה, אז יש למה לצפות).

ה CodeLens מגיע בגרסת ה Ultimate, אז אל תתביישו לבקש את הגרסה מהמנהל/ת שלכם, תגידו לו שאתם הולכים להיות יעילים עוד יותר :-)

מקווה שעזרתי לכם להתרשם מה IDE החדש.

תודה,
יניב

יום חמישי, 12 ביוני 2014

Visual Studio 2013 IDE - Part 1

שלום רב,

Visual Studio 2013, שוחרר באופן רשמי בתאריך ה 17/10/2013.
מאז מיקרוסופט הספיקו להוציא Update 1 (בתאריך ה 20/01/2014).
Visual Studio 2013 הביא עימו לא מעט תוספות ושינויים.
בפוסטים הבאים ארחיב בעיקר על הנושאים הבאים:
  • IDE (שני חלקים). 
  • Net 4.5.1. 
  • Asp .Net 4.5.1.
  • ALM.

פוסט זה (וגם זה שיבוא אחריו) יוקדש ל IDE החדש, ויסקור את החידושים הרבים שמביא עימו.
אז האם אנחנו המפתחים, בזכות ה IDE החדש, עומדים להיות יעילים יותר? האם חיינו עומדים להשתנות?
כל התשובות ממש מעבר לפינה, אז קדימה.

על הפרק:

  • roaming settings.
  • IDE themes.
  • Quick Launch.
  • some nice keyboard shortcuts.
  • enhanced scroll bar functionality and map mode.
  • async loading.
  • moving out braces with tab.

roaming settings
מי  מאיתנו לא מגדיר את סביבת הפיתוח שלו בדיוק בצורה בה הוא אוהב לעבוד? כעת נוכל להנות מאותן הגדרות מכל מחשב.
על מנת שנוכל להנות מהיכולת הזאת, מיקרוסופט מבקשת מאיתנו בצורה מאוד ידידותית, להתחבר (לחיצה על sign in בפינה הימנית העליונה) עם ה Microsoft Account שלכם.






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

הגדרות הסביבה הבאות ישמרו עבור ה Microsoft Account שלכם:

under Tools Options Environment

 Fonts & Colors options page -
Keyboard options page -
 StartUp options page -
Theme settings on General options page -

under Tools Options
Text Editor options pages -

:על מנת לאפשר את שמירת ההגדרות, נגדיר בדף הבא את העדפותינו






















IDE themes

:תוסף נחמד מאוד המאפשר לנו לבחור בזריזות את ערכת הנושא החביבה עלינו
Visual Studio 2013 Color Theme Editor.

.לינק להורדה

under tools:


change color theme:


Quick Launch

אחד ה Features המרגשים יותר הוא תיבת ה Quick Launch, הממוקמת בחלקו העליון מצידו הימני של המסך וניתנת להפעלה גם באמצעות הקיצור: CTRL + Q. אגב, קיים גם ב VS 2012.
כל הגדרה מהתפריט אשר עד היום רציתם למצוא ולא באמת זכרתם היכן היא נמצאת, קרובה אליכם יותר מתמיד.
כל חיפוש של מילה או חלק ממילה יניב רשימת תוצאות ע"פ קטגוריות, עם פירוט מדויק של מיקום ההגדרה בתפריט.


קטגוריות החיפוש:

Menus
פריטי הגדרה מתוך התפריט המלא.
לצורך חיפוש ממוקד קטגוריה, ניתן להשתמש במילה MENU@ לפני מילות החיפוש.

Tools | Options 
פריטי הגדרה מתוך תת התפריט: Tools | Options.
לצורך חיפוש ממוקד קטגוריה, ניתן להשתמש במילה OPT@ לפני מילות החיפוש.

Most Recently Used @MRU
התוצאות יציגו את 5 הפריטים האחרונים שנמצאו, אשר עונים על החיפוש שהוזן.
לצורך חיפוש ממוקד קטגוריה, ניתן להשתמש במילה MRU@ לפני מילות החיפוש.

Open Documents @DOC
קטגוריה מאוד מעניינת למציאת קבצים מבין אלו שפתוחים. שימו לב שאין מדובר על חיפוש טקסט בתוך קובץ (לשם כך ניתן לחפש בתיבת ה Search Solution Explorer אשר ניתנת להפעלה באמצעות הקיצור:
; + CTRL.
לצורך חיפוש ממוקד קטגוריה, ניתן להשתמש במילה DOC@ לפני מילות החיפוש.


keyboard shortcuts

כאלה שכבר קיימים:

- הזזת שורה כלפי מעלה או מטה: alt + up/down arrow key. 
- עבור הזזת קבוצת שורות כלפי מעלה או מטה יש לסמן את השורות ואז: alt + up/down arrow key. 
-  CTRL + SHIFT + >/< :Zoom in and out. 
- פירמוט אוט' של טקסט: CTRL + K, CTRL + D (כל מילה נוספת מיותרת). 
- סימון קטע כהערה: CTRL + K, CTRL + C, ביטול ההערה: CTRL + K, CTRL + U. 

כאלה ששודרגו:

 -  פתיחת תיבת CTRL + , :Navigate To. מדובר על חיפוש קבצים (גם הסגורים) ומעבר אליהם. ישנה
    אפשרות לתצוגה מקדימה של תוכן הקבצים.
























וחידושים אמיתיים:



Peek Definition Feature

תצוגה מקדימה של פונקציה: כאשר עומדים על שם פונקציה ולוחצים Alt + F12, נפתח מתחת לסמן חלון עם תוכן הפונקציה (מגניב!).





enhanced scroll bar functionality and map mode

עוד חידוש שיכול לתרום באופן משמעותי הוא שיפור הפונקציונליות של ה scroll bar. זה המקום לציין את המגמה שניתן לשים לב אליה, אשר חלק מהיכולות של ה IDE בדרך כלל נחשפות בפנינו באמצעות ה Productivity Power Tools ומיקרוסופט בוחרת לאמץ חלק מיכולות אלו ולהכניס אותן בצורה אינטגרטיבית לתוך ה IDE הבא. לכן סיכוי טוב שנושא זה מוכר לכם כבר מגרסת VS 2012 (אם התקנתם את ה Productivity Power Tools של VS 2012).
בכל אופן, ה scroll bar החדש מציג לנו את מיקום הסמן, breakpoints, הוא מסמן לנו בצבעים את השינויים שנשמרו (ירוק) ואת אלו שעדיין לא (צהוב) והוא אפילו מסמן לנו את מיקום השגיאות שלנו (באדום). אז רבותיי, איפה הכפיים?
map mode מאפשר לנו להגדיר את ה scroll bar בצורה רחבה, עם רמת פירוט גבוהה (וניתן להגדיר עד כמה גבוהה) הכולל אפשרות tooltip לתצוגה מקדימה של הקוד.

ניתן להגיע להגדרות ה scroll bar דרך ה Quick Launch, אבל אפשר גם ע"י קליק ימין על ה scroll bar ובתפריט הנפתח ללחוץ על scroll bar options.

ב 2 התצוגות הבאות תוכלו להתרשם מהמידע שה scroll bar מציג לנו ע"פ הצבעים כפי שהסברתי למעלה. אגב השינויים


bar mode:

















map mode:















async loading

האם כבר קרה לכם שפתחתם solution גדול יחסית וה UI פשוט קפא? האם זה קרה לכם גם בזמן build? נפלא, מכיוון שכעת הפעילויות הנ"ל מבוצעות בצורה אסינכרונית וכתוצאה מכך, בזמן שהן מתרחשות ה UI יהיה זמין לנו עבור פעילות אחרת. שינוי קטן אשר יכול לתרום לשיפור היעילות שלנו.

moving out braces with tab
התחלתם להגדיר פונקציה, פתחתם סוגר וקיבלתם את השני בחינם ועכשיו שימו לב היכן נמצא הסמן שלכם, ממש התוך הסוגריים. VS 2013 מסדר לנו יציאה זרירה עם מקש ה TAB, לחיצה עליו והסמן ימוקם אחרי הסוגריים. אגב, זה פועל גם עם מרכאות. נחמד.

עד כאן החלק הראשון הסוקר את החידושים ב Visual Studio 2013.

בקרוב מאוד החלק השני, אז תהיו בסביבה.

תודה,
יניב

יום שבת, 15 במרץ 2014

שיטת נת"י - כי קריירה צריך לתחזק!

שלום לכם,

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

1. תחושה כללית של חוסר הערכה.
2. לא מסתדרים עם הבוס.
3. לא מסתדרים עם הצוות.
4. התפקיד הפך למשמעם ולא מאתגר (בעצם, הוא תמיד היה כזה).
5. תנאי שכר (מי אמר הכי חשוב?).

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

1. פחות רוצים לעבוד מולם.
2. פחות סומכים עליהם.
3. פחות מעבירים אליהם אחריות.
4. פחות מקדמים אותם לאורך השנים.

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

להשקפתי, לאותו עובד, יש שתי אפשרויות:
1. לחפש תפקיד/מקום חדש (האם שם יצליח להביא מעצמו את אותן אנרגיות שחסרו לו?).
2. לאמץ את שיטת נת"י - אחת ולתמיד.

אז מהי בעצם שיטת נת"י?

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

הקושי: צריך לתחזק 3 מישורים עיקריים כל הזמן (כן, כל הזמן).
החלק הטוב: נחישות, תשוקה וידע (קרי 3 המישורים) - לגמרי תלויים בך!
הרווח: תמיד קינאתם באותו עובד מוכשר אשר קיבל מלוא הערכה, אותו אחד שקודם לתפקיד בכיר? אני מאמין שכל אחד יכול להגיע לשם (כן, כל אחד).

אפילו הוא:















אז איך עושים את זה?

אבני היסוד אשר יש לתחזק בקביעות:

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



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

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















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

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














הידע שאנחנו רוכשים הוא החלון ראווה של הקריירה שלנו. אנחנו לא יכולים להרשות לעצמנו, כמהנדסי תוכנה (ולא רק אנחנו), לקבל החלטה בה נפסיק לעדכן את המדפים שלנו. אנחנו לא יכולים לדעת מתי נדרש לשווק עצמנו שוב עבור התפקיד הבא, ומה נעשה אז? נתחיל להדביק פער של שנים, בהן התפתחו שפות, טכנולוגיות וגישות חדשות?
אז תתחילו עם בניית רשימה של 10 נושאים שתמיד רציתם ללמוד או להשתפר בהם. אני ממליץ להתחיל עם העשרות של עד שעה בשבוע, על מנת לבנות הדרגתיות. מומלץ מאוד להחליט על יום מסוים (או יותר נכון לילה) וללמוד בכל session כזה נושא אחד ברור ומוגדר וזאת על מנת לא להתבדר ולהתפזר עם כמות המידע האינסופית. סיימתם את כל הנושאים? מעולה, התנדבו להעביר אותם בפני אנשים במקום עבודתכם ובמקביל הוסיפו 10 נושאים חדשים.
הידע הנרכש יתרום רבות לקריירה שלכם, יעלה את הביטחון העצמי בתפקיד הנוכחי וגם יגרום לכם להישאר מעודכנים עבור התפקידים הבאים.
ידע, לגמרי תלוי בכם, במאמץ לא גדול באופן יחסי, תוכלו להיכנס למסלול העשרה.

נחישות + תשוקה + ידע = נת"י.
קדימה, רעננו את הגישה לקריירה שלכם, כי גם היא בדומה לזוגיות דורשת תחזוקה :-)

תודה,
יניב

יום שישי, 7 בפברואר 2014

!HTML 5 (five) is kicking and alive

שלום לכם,

על הכתפיים הרחבות של HTML5 הונחו משקולות די כבדות.
HTML5 iconהתינוק, שנולד באופן רשמי במאי 2011, קיבל משימה לא פשוטה, הוטל עליו להיות יורש העצר הרשמי של HTML 4.01, הידוע בכינויו המלך הבלתי מעורער של הרשת מאז 1999 ועל הדרך גם לערער את יציבותו של XHTML הנוקשה.
אבל הרכב מנצח לא מחליפים ולכן HTML5 נבנה על בסיסו האיתן של HTML4 ולמעשה מציע סט של Features על גביו.
אחת ממטרות העל של HTML 5, שפת הסימון לעיצוב דפי אינטרנט, היא לספק תכנים עשירים בעזרת HTML CSS ו Javascript, וללא צורך בתוספים של third-party companies.
תגיות כמו <canvas>, <video>, <audio> מציעות חלופה לשימוש ב Flash על גבי HTML 4.01.
HTML5 תוכננה לשמש כ cross platform, ויכולה לספק אחידות פונקציונלית וחזותית בין אם אתה גולש דרך PC, Tablet או Smartphone.

כגישה לחיים, HTML5 הינו הרבה יותר סלחני מ XHTML חמור הסבר.
אין חובה להקפיד על trailing slash, אין חובה לעטוף ערכים בגרשיים (אם אין רווחים) וקיים רק <!doctype>
יחיד ופשוט: <!DOCTYPE html>.
ומה זה אם לא החיים הטובים, או האקונה מטטה כפי שטימון הסוריקטה ופומבה חזיר היבלות הרבו לשנן באוזני סימבה הצעיר בסרט מלך האריות.



HTML5 is Backwards Compatible
שימו לב לדבר הבא: נוכל להמשיך לציית לחוקים המחמירים של XHTML ולהכניס קצת סדר לקוד שלנו, בעצם אין סיבה שלא נעשה כך.
אם נרצה להשתמש באלמנטים חדשים כגון email input type למרות שחלק מהלקוחות שלנו עדיין מריצים HTML4 - לא נורא, דפדפנים ישנים יותר יתרגמו זאת לשדה טקסט רגיל, כך שהמוטיבציה להוסיף ולחדש די גבוהה.

Local Storage
מנגנון שמירת נתונים ב Client למצבים בהם cookies פחות יעילים.
המידע נשמר כ key/value ובעל קיבולת של לפחות 5MB ומידע זה לעולם לא עובר ל Server.
ל HTML5 קיימים שני סוגי אובייקטים:
1. localStorage (המידע נשמר ללא הגבלת זמן).
2. sessionStorage (המידע נשמר כל עוד הטאב פתוח).

HTML5 Geolocation
בעזרת Geolocation API נוכל לקבל מידע אודות המיקום הגרפי של משתמש מסוים (באישורו בלבד),
גם אם הדפדפן רץ מאחורי proxy, בעזרת GPS, WLAN ועוד, כתובת ה IP האמיתית תזוהה.

באמת שקל להתחיל.
שינוי קטנטן בדמות <!DOCTYPE html> וזהו, אתם די שם. דפדפן מתקדם שתומך באחד או יותר Features, יטפל בתגיות החדשות בחפץ לב, בעוד IE 6 נניח, יצנן את ההתלהבות שלכם ו"ירנדר" את הדף בהתאם ליכולותיו. 
ופה יש עניין קטן שצריך לחדד, אין באמת (נכון לרגע זה) דפדפן אשר מריץ את כל ה Features של HTML5, כל חברת דפדפנים, בוחרת להתרכז בתמיכה ביכולות שהיא רואה לנכון עבורה ועבור משתמשיה.
וכך, ניתן לצפות שהמירוץ החרישי בין חברות הדפדפנים ימשיך להתנהל והתמיכה ביכולות HTML5 תשתפר וככל שהשיפור יעמיק, נבחין ללא ספק במגמה של שימוש נרחב ביכולות אלו.

HTML5 כאן כדי להישאר, אז אמצו אותו בהקדם.

יום חמישי, 2 בינואר 2014

Boxing and UnBoxing

שלום רב,

לפניכם עוד פוסט מסדרת הפוסטים הקצרים אשר מיועדים להעביר מסר אחד בצורה מהירה.
חשבתי לכתוב כמה מילים על Boxing & UnBoxing, אז הנה..

אז בעצם מדובר על פעולה שהיא מקרה פרטי של Casting.
כשאנחנו מדברים על Boxing אנחנו מתכוונים ל value type to a reference type conversion.
לדוגמא המרה של integer ל object.
בתהליך ה Boxing, ה value type מוקצה על ה Heap (זהו בעצם העתק הערך של ה value type המקורי), ואליו מצביע object הנמצא ב Stack.

Unboxing, לעומת זאת, זה בדיוק אותו דבר רק הפוך, הכוונה להמרה של אותו boxed reference type חזרה אל value type.
בפעולה זאת, ה boxed reference type, עובר תהליך של unboxing מה Heap, ומתבצעת השמה ל value type אשר מוקצה ב Stack.

אם עדיין לא ברור, התרשים הבא הולך לפזר את הערפל שנותר:


     
                                                                                                                                        



























תודה,
יניב