פועלים לפי המדריך של Google לסגנון TypeScript.
מעבר ל-TypeScript ול-ES6
Blockly נכתב במקור ב-ES5.1 בהתאם לקריאה ישנה יותר,
את הגרסה העדכנית של סגנון Google JavaScript
guide. קוד שנכתב מחדש צריך לעמוד בדרישות של מדריך הסגנון הנוכחי ולהשתמש בתכונות של שפת ES6, כמו let
, const
, class
, הקצאה של מבנה מפורק (destructuring assignment) במקרים הרלוונטיים.
יכול להיות שהקוד הקיים יתעדכן או שיישאר לא תואם. צוות Blockly
מנסה לקבל את ההחלטה הטובה ביותר תוך התחשבות בעקביות הקוד,
עבור משתמשי הספרייה - לדוגמה, ייתכן שנחליט לא לשנות את השם
פונקציות ציבוריות שכבר לא תואמות למדריך הסגנון.
מה מותר לעשות
- שימוש בכלים לזיהוי שגיאות בקוד ולעיצוב.
- אנחנו משתמשים ב-eslint ויש לנו
.eslintrc.js
קובץ הגדרה עם כללים לסגנון המועדף עלינו. - לעיצוב האוטומטי אנחנו משתמשים בערך יפה יותר.
- מריצים את הפקודה
npm run lint
כדי להריץ את איתור השגיאות בקוד ואת הפקודהnpm run format
כדי להריץ את בפורמט הזה.
- אנחנו משתמשים ב-eslint ויש לנו
- כניסת פיסקה באמצעות רווחים ולא טאבים.
- השתמשו בשימושים.
- צריך להשתמש בפונקציה
camelCase
למשתנים ופונקציות. - שימוש ב-
TitleCase
בכיתות. - כדי לציין קבועים, משתמשים ב-
ALL_CAPS
. - משתמשים בסוגריים מסולסלים לכל מבני הבקרה.
- חריג: אפשר להשמיט את הסוגריים המרובעים בהצהרות של
if
בשורה אחת.
- חריג: אפשר להשמיט את הסוגריים המרובעים בהצהרות של
- משתמשים במירכאות בודדות (חוץ מהכתיבה של JSON).
- הצהרה מחדש על משתנים בלולאות של
for
. כלומר, תמיד כותביםfor (const i = 0; ...)
במקוםfor (i = 0; ...)
.- אם לא עושים זאת, גוברת הסיכון שלאחר שינוי מכוון מחדש ברמה גבוהה יותר המשתנה יהיה ללא משויך לאף מכונה וירטואלית ויהפוך להפתעה גלובלי.
- צריך להתחיל את התגובות באותיות רישיות ולסיים אותן בנקודות.
- צריך ליצור בעיות ב-GitHub עם משימות לביצוע ולקשר אותן באמצעות
TODO(#issueNumber)
. - מוסיפים הערות לכל דבר באמצעות TSDoc.
מה אסור לעשות
- כניסת פסקה באמצעות טאבים.
- משתמשים בקו תחתון בסוף שמות של משתנים או פונקציות.
- בקודים ישנים יותר נעשה שימוש בקו תחתון כדי לציין נכסים או פונקציות פרטיים או פנימיים. ייתכן שהקודים האלה ימשיכו להתקיים, אבל אסור להוסיף קוד חדש לפי המוסכמה הזו.
- שימוש בחשבון
snake_case
. - צריך להשתמש במירכאות כפולות (חוץ מאשר כשכותבים JSON).
- שימוש ב-TSDoc בפורמט לא תקין.
- ה-TSDoc שלנו מתפרסם באופן אוטומטי כחלק מהתיעוד שלנו.
- צריך לכתוב
TODO (username)
.- במקום זאת, אפשר ליצור בעיות ב-GitHub עם משימות TODO ולקשר אותן באמצעות
TODO(#issueNumber)
.
- במקום זאת, אפשר ליצור בעיות ב-GitHub עם משימות TODO ולקשר אותן באמצעות
- שימוש בחשבון
string.startsWith
. במקום זאת, אתם צריכים להשתמש ב-Blockly.utils.string.startsWith
.
TSDoc
צוות Blockly משתמש ב-TSDoc כדי להוסיף הערות לקוד שלנו היא ליצור תיעוד. אנחנו מצפים ל-TSDoc לכל המאפיינים הציבוריים של הכיתות, ולכל הפונקציות המיוצאות.
כדי לנתח כראוי את התגובות ב-TSDoc, הן חייבות להתחיל ב-/**
ולהסתיים ב-*/
.
סוגים
הסוגים לא מופיעים ב-TSDoc כי המידע הזה נמצא ישירות בקוד TypeScript. אם אתם עורכים אחד מקובצי ה-JavaScript הנותרים, צריך לכלול הערות לגבי סוגים בהתאם למסמכי העזרה של Closure Compiler.
חשיפה
פונקציות או מאפיינים שצריך לגשת אליהם רק בספריית Blockly צריך לסמן ב-@internal
. הפעולה הזו מונעת מהנכסים האלה
שמופיעים במסמכים הציבוריים. משתני הגדרת חשיפה אחרים צריכים להיות ממוקמים ישירות בקוד TypeScript, ולא ב-TSDoc.
מאפיינים
TSDoc לנכסים צריך לכלול תיאור של הנכס. יושמטו לגבי מאפיינים עם הסבר עצמי.
/**
* The location of the top left of this block (in workspace coordinates)
* relative to either its parent block, or the workspace origin if it has no
* parent.
*
* @internal
*/
relativeCoords = new Coordinate(0, 0);
פונקציות
הערות לפונקציות צריכות לכלול
- תיאור של הפונקציה
- תג
@param
אחד לכל פרמטר, כולל- שם
- תיאור
- תג
@returns
אם הפונקציה תחזיר ערך עם תיאור של הערך המוחזר.
אפשר להשמיט תיאורים לפונקציות, לפרמטרים או לערכים להחזרה אם הם כמו הסבר עצמי.
לדוגמה:
/**
* Find the workspace with the specified ID.
*
* @param id ID of workspace to find.
* @returns The sought after workspace or null if not found.
*/
export function getWorkspaceById(id: string): Workspace | null {
return WorkspaceDB_[id] || null;
}