Backend ↔ Frontend ድንበር
Backend `user_first_name` ይሰጥዎታል፤ frontend `userFirstName` ይፈልጋል። ይለጥፉ፣ ይቅዱ፣ ይለጥፉ — ተጠናቀቀ። በናሙና API ምላሽ ውስጥ ያለ እያንዳንዱን ቁልፍ በአንድ ደረጃ ለመቀየር JSON ጥቅል ሞዱን ይጠቀሙ (ከዚያ በውጤቱ ላይ የተመሠረተ codegen ቴምፕሌት ይጻፉ)።
ማንኛውንም ሕብረቁምፊ ወደ 11 የሰየማ ስምምነቶች በአንድ ጊዜ ይቀይሩ — camelCase, PascalCase, snake_case, kebab-case እና ሌሎችም። እንዲሁም እያንዳንዱን ቁልፍ በተደጋጋሚ የሚጽፍ JSON-keys ጥቅል ሞድ። ሁሉም በአሳሽዎ ውስጥ።
ማንኛውንም ሕብረቁምፊ ወደ 11 የሰየማ ስምምነቶች በአንድ ጊዜ ይቀይሩ — camelCase, PascalCase, snake_case, kebab-case እና ሌሎችም። እንዲሁም እያንዳንዱን ቁልፍ በተደጋጋሚ የሚጽፍ JSON-keys ጥቅል ሞድ። ሁሉም በአሳሽዎ ውስጥ።
ሁሉም ባለ ብዙ ቃል identifier-ዎችን (ወይም የፋይል ስሞችን፣ URL-ዎችን፣ CSS class-ዎችን) ያለ ክፍተት ለመጻፍ መንገዶች ናቸው። camelCase ከመጀመሪያው በኋላ ያሉትን እያንዳንዱን ቃል ይካፒታላይዝ ያደርጋል (`userFirstName`)፣ በJavaScript, Java, Swift ጥቅም ላይ ይውላል። snake_case ሁሉንም ወደ ትንንሽ ፊደላት ይቀይራል እና በ underscore ያገናኛል (`user_first_name`)፣ በPython, Ruby, SQL ጥቅም ላይ ይውላል። kebab-case hyphen ይጠቀማል (`user-first-name`)፣ በCSS, HTML, URL slug-ዎች፣ command-line flag-ዎች ጥቅም ላይ ይውላል። PascalCase የመጀመሪያ ፊደል እንዲሁ የተካፒታላይዝ የተደረገ camelCase ነው (`UserFirstName`)፣ በብዙ ቋንቋዎች ለclass / type ስሞች ጥቅም ላይ ይውላል።
Tokeniser-ው ሁለት የወሰን ህጎች ይጠቀማል፦ ከታች ወደ ላይ (`a` በ`B` ሲከተል = ይከፋፍላል) እና caps-then-Title (የካፒታል ፊደላት ሰልፍ በትንሽ ፊደል ሲከተል ከመጨረሻው ካፒታል በፊት ይከፋፍላል)። ስለዚህ `XMLHttpRequest` ወደ `[XML, Http, Request]` → `xml_http_request` / `xmlHttpRequest` / `XmlHttpRequest` ይሆናል። `userIDToken` ወደ `[user, ID, Token]` → `user_id_token` ይሆናል። ይህ አብዛኛዎቹ የቋንቋ style guide-ዎች የሚመክሩትን ይዛመዳል።
Identifier-ዎች እና JSON ፈጽሞ መሣሪያዎን አይለቁም። DevTools → Network ይክፈቱ እና በለውጥ ወይም በቅዳ ጊዜ ዜሮ ወደ ውጪ የሚሄዱ ጥያቄዎችን ያያሉ።
ከክላሲክ camelCase / snake_case እስከ dot.case / path/case — እንዲሁም በጎጆ-ነክ ነገር ውስጥ ያለ እያንዳንዱን ቁልፍ ለመቀየር JSON-keys ጥቅል ሞድ።
camelCase, PascalCase, snake_case, CONSTANT_CASE, kebab-case, COBOL-CASE, dot.case, path/case, Title Case, Sentence case, UPPERCASE, lowercase። አንዴ ይለጥፉ፣ እያንዳንዱን ውጤት ወዲያውኑ ይመልከቱ።
Identifier-ዎችን በሁሉም የግቤት ቅጦች ላይ በትክክል ይከፍላል — `XMLHttpRequest` → `xml_http_request`, `userIDToken` → `user_id_token`። አጭር ቃላትን፣ አሃዞችን እና የተቀላቀሉ መለያዎችን (_, -, ., /) ያለ ግራ መጋባት ይይዛል።
ጎጆ-ነክ JSON ነገር ይለጥፉ እና በመረጡት ቅጥ ውስጥ እያንዳንዱን ቁልፍ እንደገና ይጽፉ — በተደጋጋሚ። እንደ አማራጭ የሕብረቁምፊ እሴቶችንም ይቀይሩ። array-ዎችን፣ ዓይነቶችን እና አወቃቀርን ይጠብቃል።
እያንዳንዱ የውጤት ረድፍ የራሱ የቅዳ ቁልፍ አለው — ይጫኑ እና እሴቱ በclipboardዎ ውስጥ ይሆናል። እይታዊ ማረጋገጫ፤ የtoast መልዕክት ጩኸት የለም።
እያንዳንዱ ለውጥ በመሣሪያዎ ላይ በJavaScript ይሰራል። ምንም identifier፣ ምንም JSON፣ ምንም የclipboard እንቅስቃሴ ፈጽሞ አይተላለፍም። DevTools → Network ይክፈቱ እና ዜሮ ወደ ውጪ የሚሄድ ጥያቄ ያረጋግጡ።
ንጹህ JavaScript፣ የframework runtime የለም። የቀዝቃዛ ጭነት ከ25 KB gzipped በታች ነው። ለማንኛውም ሕብረቁምፊ ሁሉም 11 ለውጦች ከ1 ms በታች ይጠናቀቃሉ።
ሁለት ሞዶች — ነጠላ-ሕብረቁምፊ እና JSON-keys ጥቅል።
ለአንድ identifier ወይም ሐረግ ነጠላ ሕብረቁምፊ — አንዴ ይተይቡ / ይለጥፉ፣ ሁሉንም 11 case ውጤቶች ይመልከቱ። በጎጆ-ነክ API ምላሽ ወይም config ፋይል ውስጥ ያለ እያንዳንዱን ቁልፍ መቀየር ሲፈልጉ JSON ቁልፎች (ጥቅል)።
ነጠላ-ሕብረቁምፊ ሞድ ማንኛውንም ግቤት ይቀበላል — `userFirstName`, `user_first_name`, `user-first-name`, `USER FIRST NAME`, `XMLHttpRequest`ንም እንኳ። Tokeniser-ው በትክክል ይከፍለዋል እና ለእያንዳንዱ የውጤት ቅጥ እንደገና ያገናኛል። JSON ሞድ ማንኛውንም ትክክለኛ JSON ነገር ይቀበላል — ጥልቀቱ ምንም አይደለም።
በነጠላ-ሕብረቁምፊ ሞድ ውስጥ፣ ሁሉም 11 ውጤቶች በአንድ ጊዜ ይታያሉ — የሚፈልጉትን ይምረጡ። በJSON ሞድ ውስጥ ከdropdown አንድ ዒላማ case ይምረጡ፤ በነገሩ ውስጥ ያለ እያንዳንዱ ቁልፍ በዚያ ቅጥ እንደገና ይጻፋል።
ወደ clipboard ለመላክ ከማንኛውም የውጤት ረድፍ አጠገብ ያለውን የቅዳ አዶ ይጫኑ። ለJSON ውጤት፣ ሙሉ የውጤት block-ውን ይቅዱ — በቀጥታ ወደ codebase-ዎ ወይም API client ይጥሉ።
አንዴ መለጠፍ እና እያንዳንዱን ቅጥ ማግኘት ጣቶች የሌለውን እንደገና መሰየም የሚበልጥባቸው አራት የተለመዱ ሁኔታዎች።
Backend `user_first_name` ይሰጥዎታል፤ frontend `userFirstName` ይፈልጋል። ይለጥፉ፣ ይቅዱ፣ ይለጥፉ — ተጠናቀቀ። በናሙና API ምላሽ ውስጥ ያለ እያንዳንዱን ቁልፍ በአንድ ደረጃ ለመቀየር JSON ጥቅል ሞዱን ይጠቀሙ (ከዚያ በውጤቱ ላይ የተመሠረተ codegen ቴምፕሌት ይጻፉ)።
Python ላይብረሪ ወደ JavaScript ሊያስተላልፉ ነው? የPython source-ውን snake_case identifier-ዎች ይውሰዱ እና በcamelCase ውጤት ውስጥ ያስኪዱዋቸው። ውጤቱን ወደ JS port-ዎ ይጥሉ። ብልህ tokeniser-ው `__double_underscore` እና ተከታይ አሃዞችን ሳይሰበር ይይዛል።
`MY_AWESOME_FEATURE_FLAG` (የenv var ስምምነት) ወደ `myAwesomeFeatureFlag` (JS variable) ወይም `my_awesome_feature_flag` (Python) ይቀይሩ። የCONSTANT_CASE / camelCase / snake_case round-trip ትክክለኛ ነው።
BEM kebab-case ይጠብቃል፦ `.user-card__avatar--large`። ከንድፍ አውጪ JS variable ስም አግኝተዋል (`userCardAvatarLarge`)? በአንድ ደረጃ ይቀይሩ። ለTailwind utility-ዎች፣ npm package ስሞች፣ URL slug-ዎች እና CLI flag ስሞች ጠቃሚ ነው — ሁሉም kebab-caseን ይመርጣሉ።
Identifier-ዎች እና JSON ፈጽሞ መሣሪያዎን አይለቁም። DevTools → Network ይክፈቱ እና በለውጥ ወይም በቅዳ ጊዜ ዜሮ ወደ ውጪ የሚሄዱ ጥያቄዎችን ያያሉ።
navigator.clipboard.writeText APIን ይጠቀማሉ፤ ምንም አይመዘገብም።
በሰየማ ስምምነቶች፣ በAPI ንድፍ እና በrefactoring ላይ በእጅ የተመረጡ ንባቦች።
Language conventions, framework defaults, and the team-trumps-style rule. With practical examples for JavaScript, Python, Go, Rust, and CSS.
Why most APIs accidentally pick the wrong style — and three patterns (interceptor, codegen, manual) for keeping both sides happy without the bugs.
ሁሉም ባለ ብዙ ቃል identifier-ዎችን (ወይም የፋይል ስሞችን፣ URL-ዎችን፣ CSS class-ዎችን) ያለ ክፍተት ለመጻፍ መንገዶች ናቸው። camelCase ከመጀመሪያው በኋላ ያሉትን እያንዳንዱን ቃል ይካፒታላይዝ ያደርጋል (`userFirstName`)፣ በJavaScript, Java, Swift ጥቅም ላይ ይውላል። snake_case ሁሉንም ወደ ትንንሽ ፊደላት ይቀይራል እና በ underscore ያገናኛል (`user_first_name`)፣ በPython, Ruby, SQL ጥቅም ላይ ይውላል። kebab-case hyphen ይጠቀማል (`user-first-name`)፣ በCSS, HTML, URL slug-ዎች፣ command-line flag-ዎች ጥቅም ላይ ይውላል። PascalCase የመጀመሪያ ፊደል እንዲሁ የተካፒታላይዝ የተደረገ camelCase ነው (`UserFirstName`)፣ በብዙ ቋንቋዎች ለclass / type ስሞች ጥቅም ላይ ይውላል።
Tokeniser-ው ሁለት የወሰን ህጎች ይጠቀማል፦ ከታች ወደ ላይ (`a` በ`B` ሲከተል = ይከፋፍላል) እና caps-then-Title (የካፒታል ፊደላት ሰልፍ በትንሽ ፊደል ሲከተል ከመጨረሻው ካፒታል በፊት ይከፋፍላል)። ስለዚህ `XMLHttpRequest` ወደ `[XML, Http, Request]` → `xml_http_request` / `xmlHttpRequest` / `XmlHttpRequest` ይሆናል። `userIDToken` ወደ `[user, ID, Token]` → `user_id_token` ይሆናል። ይህ አብዛኛዎቹ የቋንቋ style guide-ዎች የሚመክሩትን ይዛመዳል።
JSON ነገር — ጥልቅ ጎጆ-ነክ የሆነውንም — ይለጥፉ እና ዒላማ case ቅጥ ይምረጡ። መሣሪያው ሙሉውን ዛፍ depth-first ይዞራል፣ እያንዳንዱን ቁልፍ ይቀይራል (በarray-ዎች ውስጥ ያሉ ቁልፎችን ጨምሮ)፣ እና እንደገና የተገነባውን JSON ያወጣል። Array-ዎች፣ ዓይነቶች (number / boolean / null)፣ እና አወቃቀር በትክክል ይጠበቃሉ። የእያንዳንዱን string-valued መስክ ይዘት በተመሳሳይ tokeniser በተጨማሪ እንደገና ለመጻፍ "Also convert string values"ን ይቀያይሩ።
የቋንቋዎን ዋነኛ ስምምነት መጀመሪያ ይከተሉ፣ ከዚያ ቡድንዎን በሁለተኛነት። ነባሪ፦ ለJS / Java / Swift / Kotlin / Go camelCase (የተላኩ ስሞች PascalCase ይጠቀማሉ)፣ ለPython / Ruby / Rust / SQL ዓምዶች snake_case፣ ለCSS class-ዎች / HTML attribute-ዎች / URL ዱካዎች / npm package-ዎች / CLI flag-ዎች kebab-case፣ ለenvironment variable-ዎች እና የቋንቋ ቋሚዎች SCREAMING_SNAKE_CASE። በንብርብሮች መካከል ሲቀይሩ (snake_case API → camelCase frontend)፣ አንድ ወሰን ይምረጡ እና ቀሪውን ስርዓት ወጥነት ያለው ያድርጉት።
የለም። Tokenisation፣ እያንዳንዱ ለውጥ፣ እና JSON-keys ጥቅል ሞድ ሁሉም በአሳሽዎ ውስጥ እንደ JavaScript ይሰራሉ። DevTools → Network ይክፈቱ እና በአጠቃቀም ጊዜ ዜሮ ወደ ውጪ የሚሄዱ ጥያቄዎችን ያያሉ። ለcookie-consent ሁኔታ አንድ cookie እና ለቋንቋ ምርጫ አንድ cookie እንጠቀማለን፣ እሱ ብቻ ነው።