Ruby שונה שפה

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

הבעיה הראשונה שהיתה לי היא לבחור בטכנולוגיה המתאימה לפרוייקט. בעבר כתבתי לאותו לקוח כלים שכתובים ב PHP ובג'אווה (כאשר אותו לקוח מעדיף את ג'אווה על פני כל טכנולוגיה אחרת).

האפליקציה מקבלת מידע ב XML-RPC, ובגלל שיש לי ספרייה ממש נחמדה ב PHP אשר משתמשת בה, החלטתי להישאר איתה, וקליטת המידע מתבצעת בPHP.

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

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

בשביל לכתוב שדון (daemon) ברובי, כל מה שאני צריך זה 3 שורות קוד, כאשר 2 מהן עושות import, ועוד שורה שלמה של להגיד למחלקה בשם Daemons להריץ קובץ שנמצא תחת do loop. ממש ממש פשוט.

ובנוסף היו לי ספריות לAsterisk Manager Interface וכמובן ל Asterisk Gateway Interface, מה שאומר שאני לא צריך להתעסק בשטויות (כמו להגדיר daemon בפרל, PHP, C ופיתון, או יצירת התממשקות של AMI בפסקל).

מה שנשאר לי לעשות זה Copy Paste (לאחר בדיקה וניסויים) ל ThreadPool שנבנה בשביל רובי ע"י אנשים נחמדים וזהו ! אני יכול להתעמק רק בקוד שאני חייב לכתוב.

התוצאה היא 300 שורות קוד (כולל copy paste של ה ThreadPool, הערות, רווחים וכו') ב3 קבצים, כאשר קובץ אחד הוא השדון שלנו, הקובץ השני הוא קוד שמדבר עם AMI, והקוד השלישי הוא בעצם משמש בתור AGI.

לפעמים הגמישות בטכנולוגיה משתלמת.

2 מחשבות על “Ruby שונה שפה

  1. נדב ויניק

    מסכן הלקוח שאתה מתעלל בו.

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

    לדעתי זה בסדר שיהיו עוד כמה עשרות שורות אם יש אחידות בין כל המערכות

  2. Omer Zak

    לדעתי, אם שפת תכנות מאפשרת ליישם פתרון ב-3 שורות קוד קצרות ולא מסובכות, אפשר לצפות מכל מתכנת סביר ללמוד ולהבין את הקוד אפילו אם אינו מכיר את שפת התכנות ואפילו אם קוראים לה Brainf**k.

כתיבת תגובה

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

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s