הבלוג של ינון פרק

טיפים קצרים וחדשות למתכנתים

8 רעיונות למערכות שאתם יכולים להתחיל לבנות היום

05/01/2019

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

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

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

  1. מערכת לניהול Affiliates- אפשר להירשם אליה ולהגדיר Affiliate חדש והמערכת כבר תנפיק אוטומטית את הלינק לתת לאותו Affiliate ותגיד לכם כמה ערוץ המכירה הזה היה אפקטיבי.

  2. מערכת CRM (כן, עדיין אנשים משתמשים בכאלה). תראו לדוגמא את Powerlink CRM הישראלים.

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

  4. מערכת הזמנות לאירועים, כולל אישור הגעה בווטסאפ.

  5. מערכת ניהול יומנים לחדרי בריחה (או לספרים, או למטפלים הוליסטיים).

  6. מערכת לפיתוח בוטים לטלגרם. כמו כמו זה: https://instamake.io/bots.html

  7. מערכת לניהול ושליחת וידאו- אתה מעלה וידאו ויכול להטמיע אותו באתרים. קצת כמו יוטיוב אבל עם אפשרות להגבלת גישה, לאנאליטיקס וכו'. כמו זה: https://wistia.com/

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

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

רק תעשו לי טובה, אל תחכו לרעיון טוב. הרבה יותר משתלם לקחת רעיון ולעשות אותו טוב.

מה ללמוד?

04/01/2019

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

במקביל אנחנו חיים בתקופה של פיצולים אינסופיים- עבודה שבעבר היתה נעשית על ידי מתכנת PHP ו DBA נותנת היום פרנסה למפתחת Front End, מעצבת, מפתחת Back End, יועץ לשיפור ביצועים, מומחית אבטחת מידע וכמובן אחראי הנגישות. אז נכון שלאנשי ה PHP והאורקל יש היום פחות מה לעשות, אבל אם הם השכילו לראות בזמן את השינויים ולמצוא לעצמם תפקיד בסיבוב הנוכחי מצבם לא רע בכלל.

אבל גם בתוך התפקידים החדשים יש לנו אינספור פיצולים- מתכנת React לעומת מפתחת Angular לעומת איש Vue. אנשי ה Mobile Web עם החיים המאתגרים שלהם ובצד השני מעצבים שגם כותבים HTML/CSS ו JavaScript. מתכנתי TypeScript ויש לי גם חבר שכותב ב Closure Script. וכל אחד כזה חי בעולם שלו עם המומחיות שלו ועם הבלוגים שלו.

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

הצגת זמנים בעברית ב JavaScript

03/01/2019

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

המשך קריאה

האבא שעשה לי את היום

02/01/2019

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

בלי לעשות סצינה, בלי להגיד לילד ש"אתה רואה זה מסוכן אז אסור ללכת על הגדר",

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

סיכום שנה ותוכניות ל 2019

01/01/2019

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

  1. גלגלי עזר

  2. לא בשבילי

  3. יותר מהר מאופניים

  4. הודעות קומיט מוצלחות ומוצלחות פחות

  5. 8 שאלות שכדאי לברר לפני שמתחילים לעבוד כמתכנתי Front End

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

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

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

טיפ לפסיכומטרי

31/12/2018

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

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

״אחי אל תשאל איך התרסקתי מהחווק השלישי בסולם בשבוע שעבר, עד היום כל הגוף שלי כואב.״

״יש לכם פה סולמות עם 5 חווקים? אני צריך משהו גבוה״

״אני חייב סולם חדש נשבר לי החווק השלישי אתמול״

״המרחק בין חווקי הסולם לא יעלה על 30 סנטימטרים.״

ככל שאנחנו משתמשים במילה ביותר הקשרים יש יותר סיכוי לזכור אותה, ואותו הדבר תופס גם כשאנחנו כותבים קוד. קשה מאוד לזכור מה זה DFS רק מקריאת ספרים על אלגוריתמים, אבל אחרי שאתם משתמשים באלגוריתם לפתור 4-5 בעיות מהעולם האמיתי יהיה לכם קשה מאוד לשכוח אותו.

טפסים דינמיים בריילס

30/12/2018

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

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

המשך קריאה

הדבר הנכון לעשות

29/12/2018

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

לכן אני חושב שכדאי לשנות נקודת מבט ולשאול לגבי הקוד הזה שאלות אחרות:

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

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

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

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

קוד שאי אפשר לבדוק

28/12/2018

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

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

וכדי להחליט על ההזזה עצמה כדאי לזכור את מטרת הבדיקות:

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

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

עכשיו לגבי הקוד הזה שאי אפשר לבדוק ... מה אתה רוצה לבדוק לגביו? ואיפה הוא צריך להיות כדי שתצליח לכתוב את הבדיקה שרצית?

פטריות

27/12/2018

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

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