ב-Online
 
 
 
 
 
 
 
 
איך בונים תוכנה – חלק ו' 

איך בונים תוכנה – חלק ו'

 
 
עידו גנדל

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

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

תיעוד

נניח שבעוד חצי שנה, מישהו ימצא במקרה באג נסתר אבל חמור מאד בתוכנה שלכם, ויהיה צורך לחזור ולתקן אותה. האם תוכלו להבין מה שכתבתם? ואם בזכות התוכנה ההיא הפכתם למנכ"לים של חברת תוכנה קטנה ואתם מעסיקים מתכנתים אחרים שיעשו את העבודה השחורה הזאת – האם הם יצליחו להבין את מה שאתם כתבתם? או שהם יבזבזו ימי עבודה שלמים רק בניסיון לקבוע מי נגד מי? כל עוד הקוד טרי בזכרונכם, ועדיף מאד בזמן הכתיבה עצמה, הוסיפו המון הערות בתוך הקוד, שמסבירות מה כל דבר עושה. מובן שאין צורך לרדת לרמה של "השורה הבאה מוסיפה 1 למונה X" – אפשר להסתפק ברמה הפונקציונלית הכללית, כגון "פונקציה זו עוברת על רשימת האלמנטים בדיאגרמת וורונוי ומעדכנת את המיקומים החזותיים שלהם באופן יחסי לשינויים בגודל התצוגה" – אם כי גם פירוט רב יותר יתקבל בברכה.
 
 
 
תיעוד זה מיועד למתכנתים שרואים את הקוד. ומה בדבר המשתמשים של התוכנה? כאשר הם ירצו לבצע משהו שאינו מובן מאליו – למי הם יפנו? אליכם? מוטב להכין מראש מדריך למשתמש וקובץ עזרה מסודר. את שניהם אפשר לכתוב ב-HTML בסיסי; אם התוכנה שלכם מורכבת מספיק כדי להצדיק יותר מזה, סביר להניח שגם הכתבה הזאת כבר קטנה עליכם. הסתכלו על הניסוחים והמבנה של קובצי עזרה של תוכנות קיימות – זהו, לרוב, המדריך הטוב ביותר ליצירת עזרה שימושית. כמו במקרה של הממשק, גם כאן מוטב שלא המתכנת עצמו ייצור את המדריכים, משום שבשבילו הכל ברור וידוע, והוא לא רואה את התוכנה דרך עיניים של משתמש חיצוני. התיעוד צריך להיות תמציתי, בשפה קלה וברורה. מומלץ להוסיף דוגמאות פשוטות לכל סעיף, ויש להקדיש תשומת לב מירבית לאינדקס ולאפשרויות החיפוש, כדי שאפשר יהיה למצוא כל דבר בצורה הכי מהירה וקלה שרק אפשר.
 

שפות

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

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

וזה עוד כלום: מה עם כל הטקסט שהתוכנה מציגה? הודעות השגיאה, התוויות של הרכיבים הגרפיים, קובצי העזרה וכו'? בעניינים כאלה עוסקים מומחי הלוקליזציה, וכמו כל סוג של תרגום, העבודה שלהם לא מובנת לציבור הרחב, שבטוח שלתרגם משהו זה הדבר הכי פשוט וקל בעולם. דמיינו לכם מתרגם שעומד מול קובץ ענק שמכיל את כל הטקסטים שבתוכנה, בלי שום סדר והיגיון נראים לעין. מבקשים ממנו לתרגם את שם השדה "Condition". האם זהו "תנאי" או "מצב"? איך אפשר לדעת? המתרגם הטכני חייב לבצע עבודת ניחוש ותיקון-לאחור קפדנית ומייגעת. נניח שהתשובה הנכונה במקרה זה היא "מצב", כיצד תתרגמו כעת את שמות השדות האחרים "Status", "State" (שזה אולי בכלל "מדינה") ו-Situation? האם "Delete request" זו מחיקת בקשה, או אולי בקשת מחיקה? ללא ההכנה והפיקוח הנכונים, תרגום התוכנה שלכם עלול להפוך אותה לקטסטרופה.
 

הפצה

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

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

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

תחזוקה

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

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

כל הזכויות שמורות 2011 © נענע 10 בע"מ
 
 
 
 
כל הזכויות שמורות © Nana10 בע"מ
Video powered by