תכנות RAD

רוב המפתחים בעולם לא מכירים סביבות RAD, ולא יודעים כיצד לתכנת "נכון" בעזרת אותם כלים.

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

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

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

מפקח האובייקטיםאבל יישור זה בסה"כ עיצוב, ואנחנו צריכים להשקיע בראש ובראשונה בשימושיות, מה שאומר תכנות (למרות שגם עיצוב הוא חלק משימושיות). כלי העזר לכלים הגרפיים הוא כמובן ה Object Inspector או "מפקח האובייקטים" (בתרגום שאני רוצה לעשות :)). ה OI, לוקח תכונות שנמצאות תחת חלק ה published במחלקה, ובעצם באמעצות RTTI מצליח לתת לנו אפשרות לשים ערכים שונים. עוד דבר שניתן לראות ב OI הוא השימוש באירועים.

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

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

הלשונית האחרונה ששמה הוא Restricted (היא חדשה, וקיימת רק מגרסת 0.9.25 – גרסת הפיתוח או 0.9.26 – הגרסה היציבה שעוד לא יצאה בזמן כתיבת הפוסט) מספרת לנו אילו תכונות הן בעיתיות כאשר מדובר בתכנות חוצה פלפורמות, כאשר הן מציגות איזו מערכת גרפית לא תצליח לעבוד עם התכונה מסויימת, ולחיצה על מקש ימני ובחירה של האפשרות Restricted תפתח גם הסבר בנושא.

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

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

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

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

מחשבה אחת על “תכנות RAD

  1. פינגבק: לקוח גרפי ל xml-rpc « לראות שונה

כתיבת תגובה

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

הלוגו של WordPress.com

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

תמונת Twitter

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

תמונת Facebook

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

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

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

מתחבר ל-%s