ממיר רישיות לוקח ביטוי או מזהה וכותב אותו מחדש בכל סגנון שמות נפוץ: camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, Title Case, Sentence case ועוד. מפתחים משתמשים בו כל הזמן: בשינוי שמות משתנים, ביצירת שמות עמודות במסד נתונים, בכתיבת שמות שדות ב-API שתואמים למדריך סגנון, ובהפיכת טקסט שהמשתמש הזין ל-slug לכתובת URL.
אקוסיסטמות שונות מעדיפות סגנונות שונים. JavaScript ו-Java אוהבות camelCase; Python ו-Ruby אוהבות snake_case; מחלקות CSS וכתובות URL משתמשות ב-kebab-case; משתני סביבה וקבועים משתמשים ב-CONSTANT_CASE. ממיר רישיות מאפשר להפוך ביטוי לסגנון הנכון בלי לעשות את זה תו אחר תו בראש.
החלק הקשה הוא לא הכתיבה מחדש, אלא *הפירוק לטוקנים*. ממיר רישיות צריך קודם לפצל קלט מעורב כמו XMLHttpRequest, iOSDevice או read_HTML5Tags למילים הנכונות, ורק אז לחבר אותן מחדש בסגנון שנבחר. מפרקים חכמים מטפלים בראשי תיבות (XML, iOS) ובספרות בחן.
מה תלמדו תוך כדי המרת רישיות
לכל קהילת שפה יש סגנון מועדף. התאימו את עצמכם למוסכמה של בסיס הקוד שבו אתם כותבים.
פירוק לטוקנים מפצל קלט מעורב לפי אותיות גדולות, מפרידים (_ - .) וגבולות של ספרות לפני החיבור מחדש.
ראשי תיבות הופכים המרת רישיות לדו-משמעית: האם XMLParser צריך לחזור כ-xmlParser או כ-xMLParser? בחרו את המוסכמה שבסיס הקוד שלכם משתמש בה והיו עקביים.
אותן מילים, חמישה סגנונות. בחרו את זה שמתאים לקובץ שאתם עורכים.
המרת משתנה JS ל-Python
JavaScript
const accessTokenExpiresAt =...;
Python
access_token_expires_at =...
רוב הצוותים שומרים שם קנוני אחד במודל הדומיין ומתרגמים אותו בגבול בין שפות או בין שכבות API.
הפיכת כותרת ל-slug לכתובת URL
כותרת
10 Best Practices for REST APIs
Slug
10-best-practices-for-rest-apis
slugs הם kebab-case + אותיות קטנות + תווים בטוחים בלבד. הם משמשים גם כמקטעי URL וגם כשמות מחלקות CSS.
טעויות נפוצות בהמרת רישיות
לערבב סגנונות באותו קובץ או באותה שכבה (userName, user_name באותו מודול). בחרו סגנון ואכפו אותו עם linter.
לכתוב ראשי תיבות ברישיות לא עקביות (XmlParser לעומת XMLParser). החליטו פעם אחת לכל בסיס קוד והיצמדו לזה.
לשכוח שמזהים במסד נתונים לפעמים מנורמלים לרישיות אחידה: userName ו-username עשויים להיות אותה עמודה ב-PostgreSQL אבל שונות ב-MySQL.
ליצור slug לכתובת URL בלי לנרמל סימנים על אותיות ובלי להסיר סמלים. slugs צריכים להכיל רק אותיות ASCII, ספרות ומקפים.
להמיר רישיות ידנית ברשימות ארוכות. ממיר (או שורה אחת של lodash.snakeCase()) מהיר יותר ופחות מועד לטעויות.
שאלות נפוצות על ממיר רישיות
מה זה camelCase?
camelCase כותב באות גדולה את תחילת כל מילה חוץ מהראשונה ומחבר אותן בלי מפרידים (accessTokenExpiresAt). זה הסגנון השולט למשתנים ולמתודות ב-JavaScript וב-Java.
מה זה snake_case?
snake_case כותב כל מילה באותיות קטנות ומחבר אותן בקווים תחתונים (access_token_expires_at). זה הסגנון המקובל ב-Python, ב-Ruby וברוב שמות העמודות במסדי נתונים יחסיים.
מה ההבדל בין PascalCase ל-camelCase?
שניהם כותבים באות גדולה את תחילת כל מילה שאחרי הראשונה. ההבדל הוא באות הראשונה: PascalCase כותב אותה באות גדולה (UserProfile), ו-camelCase לא (userProfile). ברוב האקוסיסטמות PascalCase שמור לשמות מחלקות ולקומפוננטות React.
איך ממירים טקסט ל-slug בטוח ל-URL?
הפכו לאותיות קטנות, החליפו רווחים וקווים תחתונים במקפים, הסירו סימנים מאותיות (é → e), ומחקו תווים שאינם אותיות, ספרות או מקפים. לרוב ממירי הרישיות יש מצב slugify שעושה את כל זה בצעד אחד.
להשתמש ב-camelCase או ב-snake_case בפרויקט שלי?
התאימו לשפה: camelCase ל-JavaScript, Java ו-Swift; snake_case ל-Python, Ruby ו-Rust. בתוך בסיס קוד, העקביות חשובה יותר מהבחירה הספציפית: linter (ESLint, Pylint, Rubocop) ישמור על האכיפה.