כתיבת מדריך לGO
-
עבר כבר קצת יותר מחצי שנה מאז שעברתי לGO
וברוך השם אני מתקדם לאט לאט
באפון כללי השיטת לימוד שלי (בכל שפה/טכנולוגיה) היא להתחיל מהאמצע
ולקלוט את הבסיס, וכל פעם שאני צריך לעשות משהו שמעולם לא עשיתי, לקרוא קצת מדריכים ולעבור לשלב הבא.
החסרון בזה זה שיש כמה איזורים "מתים" שאני אני לא מצליח להושיב את עצמי על הכסא , ולהבין אחת ולתמיד איך זה עובד באמת.
למשל מתי משתמשים בפויינטרים? איך עובד בדיוק כל הסוגי משתנים(Struct,Slices,map,byts ועוד)?
אני אמנם משתמש בזה כל הזמן אבל מרגיש שאני מפספס פה משהו
(אני רואה בנקודות אחרות שאחרי שאני קולט איך זה עובד בlow level, יותר קל לפתור בעיות ,כי מבינים יותר מה קורה )
למעשה חשבתי לכתוב מדריך בעברית לתכנות בGO,(כפי הידוע לי המדריך היחיד שיש בעברית זה באתר הרשמי והוא לא משהו)
וזה יעזור לי להתמקד בכל הנקודות הנ"ל
(ואם זה יעזור למישהו ללמוד את השפה אז זה יהיה עוד בונוס).אני עדיין מתלבט מה הדרך הכי טובה לכתוב מדריכים,
אפשר לעבור על כל הפונקציות של השפה, ולנסות להסביר מה כל דבר עושה
או לכתוב מדריך לבניית X (למשל שרת HTTP), ולעבור על הקוד ולהסביר מה כל דבר עושה
החסרון בשיטה השניה זה ששוב יש חלקים שמתפספסים אבל מצד שני אני חושב שזה הדרך הכי מעניינת ללמוד.
מה אתם אומרים?
וכן האם יש כאן מישהו שיתקן אותי על טעויות? @yossiz ? @יוסף-בן-שמעון ? -
@nigun אמר בכתיבת מדריך לGO:
כפי הידוע לי המדריך היחיד שיש בעברית זה באתר הרשמי והוא לא משהו
http://goprog.co.il/
http://www.softwarearchiblog.com/2015/12/go-intro-part1.html
http://www.softwarearchiblog.com/2015/12/
http://www.softwarearchiblog.com/2016/01/go-intro-3-oo.html -
@אהרן אמר בכתיבת מדריך לGO:
@nigun אמר בכתיבת מדריך לGO:
כפי הידוע לי המדריך היחיד שיש בעברית זה באתר הרשמי והוא לא משהו
לא עובד לי כבר כמה חודשים.
http://www.softwarearchiblog.com/2015/12/go-intro-part1.html
http://www.softwarearchiblog.com/2015/12/
http://www.softwarearchiblog.com/2016/01/go-intro-3-oo.htmlצודק, שכחתי לציין את זה
אבל גם זה לא נראה לי מדריך מספיק, וודאי למי שלא מגיע משפות דומות
אלא בלוג נחמד בשביל להכיר את השפה -
- קוד קריא.
- קוד קריא.
- קוד קריא.
- אסינכרוני (אם מישהו חשב להשוות לPHP ).
- מהיר וחסכוני (כיוון שאין צורך במפרש, כי זה מתקמפל לשפת מכונה).
- אחרי הקיפול לא צריך לדאוג מכל הדיפנדנסיס (אא"כ אתה קורא לתוכנה כל שהיא דרך EXEC)
לעומת זאת בנוד לפעמים אתה מעדכן משהו ותוכנה מפסיקה לפעול
כנ"ל בPHP ששינוי בהגדרות פתאום שובר לך קוד ישן ששכחת ממנו בכלל.
-
רק להגיב על האשכול, עברתי על המדריך שכתבת והחלטתי שהיום יהיה hello world
כבר המון זמן שאני רוצה ללמוד Go אני קורא עליה לאחרונה אבל לא ממש מתקדם מעשית.כמה שאלות לי אליך
למה אתה בעצם משתמש בGo?
עד כמה שאני מבין הקוד הוא אותו קוד אבל כדי לתמוך במגוון מערכות אצטרך לקמפל על כל מערכת בנפרד, אני צודק?
איפה החולשות של השפה (מה לא תעשה איתה)? -
@trew אמר בכתיבת מדריך לGO:
למה אתה בעצם משתמש בGo?
למה לא?
בעיקר כי היא שפה אסינכרונית, פשוטה, ומינימאלית
ובעיקר מסיר את כל העטיפות, והתלויות בזמן ריצה המיותרות (לטעמי) בשפות דינאמיות.עד כמה שאני מבין הקוד הוא אותו קוד אבל כדי לתמוך במגוון מערכות אצטרך לקמפל על כל מערכת בנפרד, אני צודק?
לא בהכרח, אם אתה מדלוור את אותו תוכנה לכמה שרתים של לינוקס אין צורך לקמפל שוב ושוב, אבל בכל מקרה זה לא נורא כי הקימפול מהיר, ולא לוקח הרבה יותר זמן משמירה בעורך קוד.
איפה החולשות של השפה (מה לא תעשה איתה)?
הצד לקוח לא חזק כל כך.
אמנם יש טמפלייטים, אבל כנראה בגלל קשיחות של המשתנים זה פחות נוח
אני לא מפתח צד לקוח, אז אני לא יכול לפרט כל כך.פיתוח תוכנות נייטיב גם לא כל כך מצוי, אמנם יש פרוייקטים נחמדים כמו fyne.io אבל לא יודע עד כמה הוא בשל.
-
@nigun אמר בכתיבת מדריך לGO:
@trew אמר בכתיבת מדריך לGO:
למה אתה בעצם משתמש בGo?
למה לא?
בעיקר כי היא שפה אסינכרונית, פשוטה, ומינימאלית
ובעיקר מסיר את כל העטיפות, והתלויות בזמן ריצה המיותרות (לטעמי) בשפות דינאמיות.עד כמה שאני מבין הקוד הוא אותו קוד אבל כדי לתמוך במגוון מערכות אצטרך לקמפל על כל מערכת בנפרד, אני צודק?
לא בהכרח, אם אתה מדלוור את אותו תוכנה לכמה שרתים של לינוקס אין צורך לקמפל שוב ושוב, אבל בכל מקרה זה לא נורא כי הקימפול מהיר, ולא לוקח הרבה יותר זמן משמירה בעורך קוד.
איפה החולשות של השפה (מה לא תעשה איתה)?
הצד לקוח לא חזק כל כך.
אמנם יש טמפלייטים, אבל כנראה בגלל קשיחות של המשתנים זה פחות נוח
אני לא מפתח צד לקוח, אז אני לא יכול לפרט כל כך.פיתוח תוכנות נייטיב גם לא כל כך מצוי, אמנם יש פרוייקטים נחמדים כמו fyne.io אבל לא יודע עד כמה הוא בשל.
מערכות התכוונתי לינוקס ווינדוס מאק
ברור לי שקימפול על לינוקס פותר לי את כל הלינוקסים הבאים (כמובן תלוי ארכיטקטורה) -
@trew אמר בכתיבת מדריך לGO:
עד כמה שאני מבין הקוד הוא אותו קוד אבל כדי לתמוך במגוון מערכות אצטרך לקמפל על כל מערכת בנפרד, אני צודק?
כן
@nigun אמר בכתיבת מדריך לGO:
למה שתצטרך לקמפל לכל המערכות את אותו קוד (אא"כ מדובר בתוכנה לדסקטופ)?
כי יש להם פורמט שונה עבור קבצי בינארי ויש להם API שונה. גם תוכנת שורת הפקודה משתמשת ב-API של מערכת ההפעלה.
אגב, יש פרוייקט מדהים של מישהי שמאפשר בינארי אחד לכל מערכות ההפעלה וגם אפשר להריץ את אותו בינארי יש על ברזלים.
פרוייקט מדהים!
https://github.com/jart/cosmopolitan -
-
@yossiz אמר בכתיבת מדריך לGO:
@nigun אמר בכתיבת מדריך לGO:
או שהכל "מצוייר" לבד
אאל"ט, אין בכלל ממשק גרפי.
אם אין ממשק גרפי אז זה פשוט
לא צריך ספריות מיוחדות -
@trew אמר במדריך: כתיבת אפליקציות בGO:
אתר חביב שמציג בצורה מסודרת ופשוטה את GO ואלו כלים היא מספקת
https://gobyexample.com/יש כמה אתרים מוצלחים
דווקא האתר הזה פחות אהבתי
אולי ננסה לרכז את כל האתרים ללימוד השפה.