סוף הדרך

היי!

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

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

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

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

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

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


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

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


הסיבה השנייה לשכתוב היא כי פשוט שנאתי את הקוד שלי. כבר אז הרגשתי שהוא מסורבל ולא יעיל. הדף של ההגדרות של התוסף היה פשוט מלא תגיות HTML שדחפתי לתוך העמוד של FxP עצמו, ולא כמו שהוא עכשיו (דף נפרד, שמוגדר לדפדפן שהוא באמת דף ההגדרות). ואת ההגדרות הייתי שומר לאחסון שהוגדר לאתר ולא לאחסון שהוגדר לתוסף (LocalStorage מול chrome.storage למבינים).
גם הקוד שיש עכשיו נראה לי מסורבל. אם היה לי זמן, הייתי כותב אותו מחדש - מסדר אותו ליותר פונקציות עם שמות משמעותיים, נפטר מה-indentים המוגזמים שמגיעים אפילו ל-10 רמות. 
ללמוד לפתח זה תהליך. עם השנים לומדים להסתכל אחורה ולומר "כמה מפגרים היינו אז" - בדיוק כמו החיים עצמם. והלמידה לא עוצרת. לדעתי זה דבר שחשוב לזכור.


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


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

תודה על הקריאה! ומי יודע, אולי נתראה בפרויקט הבא שלי.
טל.



תגובות