IDEs ועורכי השפה הטובים ביותר

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

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

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

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

ישנם יותר מעשרה כלי שפה של Go שתוכל להתקין בספריות תחת תיקיית GOPATH עם go getהפקודה, לאחר התקנת Go עצמה. רבים מהעורכים שהערכתי משתמשים באחד או יותר מכלים אלה.

לך IDEs

יש מספר מפתיע של IDE התומכים ב- Go. עם זאת, המשמעות של "תמיכה" משתנה. ארבעה IDEs בלטו עבורי: Gogland, Eclipse with goclipse, LiteIDE ו- Komodo IDE.

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

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

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

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

Komodo IDE תומך בבדיקת תחביר Go (הדבקה) והדגשה, צביעת תחביר, קיפול קוד ותכונות אחרות לשיפור פרודוקטיביות. קומודו תומכת גם במודיעין קוד Go עם השלמות, טיפים להתקשרות, קווי מתאר והגדרה להגדרה. Refactoring כולל שינוי שם של משתנים וחברי כיתה וחילוץ שיטות. Komodo תומכת בבדיקות יחידות Go, שיתוף פעולה בקודים, בקרת גרסאות, קליפות אינטראקטיביות ופרופיל קוד. הטענה העיקרית של קומודו לתהילה היא שהיא תומכת בכל שפות הקוד הפתוח העיקריות, כולל Python, Node.js, Ruby, Go, Perl ו- Tcl.

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

לך עורכים

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

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

Atom, Brackets ו- Visual Studio Code הם שלושת העורכים שבלטו עבורי בעבודה בשפת ה- Go. כולם בחינם ובקוד פתוח. עם זאת, BBEdit, Emacs, Notepad ++, Text Sublime, TextMate ו- Vim משתלבים כולם בתוספי שפה של Go, ולכולם יש תומכיהם. Emacs, Notepad ++ ו- Vim הם קוד פתוח וחינמי. BBEdit הוא מסחרי, אבל אחיו הקטן TextWrangler הוא בחינם.

עורך Atom מ- GitHub נשלח עם חבילת ה- go-go שתומכת בדקדוק של Go ובקטעי טקסט. חבילות נוספות ל- Go מביאות פונקציונליות רבה יותר. לדוגמא, go-plus משתלב בכלי Go סטנדרטיים רבים (להשלמה אוטומטית, עיצוב, linting, בדיקה) כדי לספק סביבה כמו IDE, ו- go-debug משתלב עם debugger delve.

לעורך Brackets מבית Adobe מספר הרחבות קהילתיות לתמיכה ב- Go. אלה כוללים Go-IDE, המשמש gocodeלהשלמה אוטומטית; Go-Syntax, שמשתמש ב- CodeMirror לצורך הדגשת תחביר; ו- Go Go Formatter המשמש gofmtלעיצוב קוד goimportsוניהול יבוא.

קוד Visual Studio תומך בהדגשת תחביר Go מחוץ לקופסה. תכונות נוספות מסופקות על ידי תוסף vscode-go, המשתלב עם יותר מעשרה כלי Go סטנדרטיים. אם אין לך את ה- GOPATH שלך, התוסף יבקש ממך להגדיר אותו ברגע שתנסה לערוך קובץ שפה של Go; אתה יכול להגדיר אותו לפרויקט ו / או לסביבת המערכת. אם לא מותקנים לך כלי Go, התוסף יבקש להתקין אותם במקומות הסטנדרטיים כפי שנקבע על ידי ה- GOPATH שלך.

ענני Go IDE מבוססי ענן

IDEs מבוססי ענן הם חידוש לאחרונה יחסית במרחב פיתוח התוכנה. יש להם שני יתרונות טבועים: הם אינם דורשים הגדרה מקומית פרט לדפדפן תואם, והם עשויים לאפשר עריכה על ידי מספר מפתחים אם הם מיועדים לכך. בצד החיסרון, IDEs מבוססי ענן לעיתים קרובות סובלים מפיגור, מה שעלול לגרום למפתחים להתעסק ולהפריע ל"זרם "המאפשר לקודדים להיות פרודוקטיביים ביותר. שלושה IDEs מבוססי ענן תומכים כיום בשפת Go: Cloud9, CodeEnv ו- Wide.

Cloud9 הוא IDE מבוסס-ענן רב-לשוני התומך ב- Go out of the box. זה מתחבר למאגרים של GitHub, Bitbucket ו- Google Cloud Platform, ויש לו אזורי עבודה שתוכלו לשתף ולשבט. בנוסף לעורך קוד עם ערכת תכונות נרחבת ומערכת קבצים מקוונת, יש לו MySQL ומסדי נתונים אחרים, חלונות מסופיים ומיידיים, וכריכות מקלדת הניתנות להתאמה אישית, עם מצבים Vim, Emacs ו- Sublime Text המסופקים כסטנדרט. השלמה אוטומטית וניקוי באגים ל- Go עדיין ניסיוניים, אך הדגשת תחביר, לוח ההפעלה, תצוגת המתאר והבידוד נתמכים במלואם.

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

Wide הוא IDE מבוסס אינטרנט לצוותים שנכתב בשפת התכנות Go. הוא משתמש בעורך תכנות מבוסס קוד CodeMirror עם הדגשת תחביר בעזרת gocode, השלמה אוטומטית, עיצוב קוד ושיתוף פעולה בזמן אמת. Wide מציין את LiteIDE כתלות.

גוגלנד

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

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

Gogland משתמש באותה מערכת אקולוגית של תוספי JetBrains כמו IntelliJ IDEA ו- WebStorm, והיא כבר כוללת תכונות רלוונטיות רבות שעוברות בירושה מאותם מוצרים. לדוגמא, אתה יכול להשתמש ב- Gogland לעבודה עם HTML ושפות ומסגרות חזיתיות, בדיוק כמו WebStorm. Gogland גם מאפשר לך לעבוד עם מסדי נתונים של SQL, כמו IntelliJ IDEA ו- DataGrip. אם אתה צריך לשלב את תמיכת Node.js עם קידוד ה- Go שלך או זקוק לתמיכה ב- Subversion בנוסף לשילוב Git, זה עניין מהיר של הוספת התוספים.

קוד Visual Studio

קוד Studio Studio עם תוסף vscode-go הוא עורך Go נחמד שעובד טוב ומשלב Git טוב. קוד Visual Studio אכן זקוק לעדכונים ולהפעלה מחדש לפחות חודשי, אך לעתים נדירות הוא מרגיש איטי במהלך העריכה. בצילום המסך למטה אנו רואים את הסייר משמאל, התקנת כלים Go בפינה השמאלית התחתונה ועריכת קוד בפינה השמאלית העליונה.

הכלים Go מאפשרים את התוסף vscode-go, המספק תכונות עריכה ובדיקת קוד רבות. אלה כוללים רשימות השלמה (שימוש gocode), עזרה לחתימה (שימוש gogetdocאו godefפלוס godoc), קטעי מידע, מידע מהיר (שימוש gogetdocאו godefפלוס godoc), מעבר להגדרה (שימוש gogetdocאו godefפלוס godoc), חיפוש הפניות (שימוש guru), מתאר קבצים (שימוש go-outline), חיפוש סמלי סביבת עבודה (באמצעות go-symbols), שינוי שם (שימוש gorename), build-on-save (using go buildand go test), lint-on-save (using golintor gometalinter), פורמט (באמצעות goreturnsאו goimportsאו gofmt), ליצור שלד של בדיקות יחידה (באמצעות gotests), להוסיף יבוא (באמצעות gopkgs), ויישום ניפוי באגים באופן חלקי (באמצעותdelve).

זה הרבה מאוד פונקציונליות שימושית, אם כי לא כמה שאתה מקבל ב- Gogland IDE. שידור המסך בקובץ הקריאה vscode-go עושה עבודה טובה בהדגמת אופן הפעולה של רוב התכונות.

ענן 9

מבין שלושת IDEs בענן התומכים ב- Go, נראה שהמעניין ביותר כרגע הוא Cloud9. יש לו עורך התכנות הפונקציונלי ביותר מבין השלושה ותומך בכ- 17 שפות בנוסף ל- Go. למרות שהשלמת קוד השפה שלו Go מסומנת כניסויי, מצאתי שהוא עובד די טוב ולא גרם הרבה לעיכוב הקלדה.

עורך Ace של Cloud9 תומך כעת בהדגשת תחביר ליותר מ -100 שפות תכנות. המספר 17 לעיל מיועד לשפות שבהן יש גם תמיכה אחרת, כגון הפעלת קוד, מוך, מתאר, השלמת קוד וניקוי באגים.

סביבות עבודה של Cloud9 מריצות כעת את אובונטו 14.04 ו- Go 1.7.3. אתה יכול לעדכן את התקנת ה- Go שלך ממעטפת ה- Bash (ראה בתחתית צילום המסך), וכן להריץ את ה- Go שלך ותוכניות אחרות מ- Bash.

כפי שראינו, עומדות בפניך אפשרויות רבות אפשריות של סביבת תכנות לפיתוח Go. בעוד שבחרתי ב- Gogland כ- GO IDE עם כל התכונות הטובות ביותר, קוד Visual Studio עם vscode-go כעורך ה- Go הטוב ביותר ו- Cloud9 כ- IDE של Cloud Cloud הטוב ביותר עבורי , יש יותר מ -30 אפשרויות אחרות. בהתחשב במידת הבחירה האישית של סביבות פיתוח תוכנה, כדאי לנסות כמה ולראות אילו מתאימים ביותר לצרכים ולהעדפות שלך.