המחשבים, האפליקציות, האינטרנט ומה שבניהם

‏ • 22 בפברואר, 2015

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

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

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

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

הנדסת תוכנה

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

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

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

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

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

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

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

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

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

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

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

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

את אבטחת המידע ניתן לחלק לשני סגמנטים עיקריים:

1. אבטחת מידע ברמת התשתיות

2. אבטחת מידע ברמת הקוד

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

פיתוח לאינטרנט ולסלולאר, השינויים של עולם הדיגיטל ומה צופן לנו העתיד

פיתוח אינטרנט או פיתוח רשת הוא תהליך של פיתוח תוכנה שפועלת ברשת האינטרנט המוכרת לנו כ- WWW-World Wide Web או תוכנה אשר עובדת על גבי פרוטוקול HTTP דרך שרתי האינטרנט על גבי דפדפני אינטרנט.

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

בניגוד לפיתוח תוכנה מסורתי שנעשה בדרך כלל בסביבת פיתוח אחידה ועל פלטפורמה אחידה. פיתוח אינטרנט הוא כאוטי הרבה יותר ומפתחי אינטרנט נדרשים לפתח במגוון שפות ועל מגוון פלטפורמות. כך למשל מפתח PHP העוסק בפיתוח CRM הפועל באינטרנט, נדרש מן הסתם להכרות מעמיקה עם PHP ועם סביבת עבודה אחת לפחות כגון Eclipse או Zend. בנוסף להכרות מעמיקה עם מסד נתונים כגוןMySqlנדרשת גם הכרות עם טכנולוגיות כמו HTML5, CSS3 וגם עם טכניקות חדשות יותר כגון JQuery. בנוסף צריך הבנה נוספת גם בנושאים כמו נגישות אינטרנט, קידום אתרים (SEO) וכמובן אבטחת מידע ברמת התשתית וברמה האפליקטיבית.

בנוסף, התחום מתפתח ומשתנה. בניגוד לתכנות מסורתי, השינויים קורים מהר, במיוחד בתחום קוד הפתוח. למשל, קהילת הקוד הפתוח – Open Source היא האחראית לפיתוח ה-JQuery הפופולארי שקיים כיום בכל אתר ובכל אפליקציה מבוססת מובייל. כמו כןקהילה זו גם אחראית על פיתוח של פלטפורמות פיתוח תוכן חינמיות כגון Word Press, Joomla ועוד.

כפועל יוצא של מגוון הטכנולוגיות הרב והעדכונים והחידושים השונים בתחום, נוצרו שני תתי תחומים של פיתוח אינטרנט. מחד, משרד אחורי – Back End האחראי על צד השרת וכולל את הפיתוח של בסיס הנתונים והלוגיקה העסקית ומאידך המשרד הקדמי – Front End האחראי על צד הלקוח וכולל שילוב של טכנולוגיות צד לקוח כגון HTML5, CSS3, JQuery ועוד.

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

שנת 2013 הייתה שנה מעניינת מהרבה בחינות, אך בתחום האפליקציות מדובר בשיא כל הזמנים. לאט לאט המובייל נוגס עוד משוק ה-PC, והאפליקציות הטבעיות(native apps) מאיימות על האינטרנט הקלאסי, ובכך מגבילות את הגישה לאינפורמציה שהייתה פעם חופשית ברשת. מגמה שמביאה לחלוקה של הרשת ליחידות אינפורמציה שלא מקושרות אחת לשנייה. ובעיצוב, החיקויים של ממשקי חומרה מערימים קשיים רבים בהתממשקות עם טכניקות חדשות של הצגת אינפורמציה.
כדי לתת מענה מקצועי לבעיה זו, אחת האפשרויות הנפוצות ביותר בעולם הפיתוח ליצירת אפליקציה לאייפון, אנדרואיד וווינדוס פון היא לפתח אתר מותאם סלולאר המבוסס על הטכנולוגיות של צד לקוח וצד שרת. זו אחת ההעדפות הנפוצות ביותר בשוק התעשייתי. מאידך, ניתן לפתח את אותןאפליקציות בשפות הטבעיות שלהן ואנו מיחסים זאת כ-Native Development.

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

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

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

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

מתכנני ממשק משתמש הם אלו שאחראים על תכנון ממשק המשתמש באופן שיקל על המשתמשים לבצע את האינטגרציה עם האתר. אלו מוכרים כמומחי UI (User Interface) או UX (User Experience). למרות שהתפקיד שלהם קשור לעיצוב הם בדרך כלל אינם מעצבים ותפקידם הוא להנחות את המעצבים והמפתחים על מנת ליצור ממשק משתמש מנצח.

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

תגיות: ,

תגובות בפייסבוק