§

Liƙa rubutu

§

Duk halaye

text
  • camelCase
  • PascalCase
  • snake_case
  • CONSTANT_CASE
  • kebab-case
  • dot.case
  • path/case
  • Title Case
  • Jumla case
  • ƙanƙane
  • BABBA

Al'adun haruffa suna ɓoye muryar wata cibiya ta kowane codebase da kuma buga: jagorar salon JavaScript ta Google da jagorar salon Airbnb na GitHub suna ɗaure sunayen masu canji zuwa camelCase, yayin da Python's PEP 8 da Rust's RFC 430 suna buƙatar snake_case don ayyuka da CONSTANT_CASE don daidaita module. Masu haɓaka software a faɗin Afirka suna ganin waɗannan al'adu suna da mahimmanci musamman lokacin da ke aiki akan manyan ayyukan open-source ko takardun API na duniya.

Menene canza halin rubutu?

Canza halin rubutu yana ɗaukar kirtanin shigarwa kuma yana fitar da kalmomin ɗaya da aka nuna a cikin al'adar haruffa daban. Maƙasudan da aka fi sani sune camelCase da PascalCase (ana amfani da su don masu tanadar a cikin yawancin yarukan da suke da ƙofofin gefe), snake_case da CONSTANT_CASE (Python, Ruby, Rust, macros na C), kebab-case (URL, sunayen ajin CSS, ƙamus na HTML, sunayen kunshin npm), dot.case (maɓallai na tsara, hanyoyin abin da ke cikin JavaScript), path/case (masu tanadar irin na tsarin fayil), Title Case da Jumla case (taken labarai da rubutu), da cikakken ƙanƙane da BABBA. Wannan mai canza yana gano iyakokin kalmar ta halitta a cikin shigarwa — sarari, hyphens, layin ƙasa, aya, slash, da sauyin ƙanƙane→babba da ke alama ga masu tanadar irin na helloWorld — kuma yana sake haɗa su tare da mara raba da tsarin babba da kowane halin maƙasudi ke buƙata.

Yaya canza haruffa ke aiki?

Ana aiki da shigarwa gaba ɗaya a cikin mai bincike ta amfani da mai raba ƙanƙana na JavaScript na asali da masu tsara goma sha ɗaya. Matakan matakin sama sune:

  1. Ana karanta shigarwa a zahiri daga textarea — kowane byte da ka liƙa ana kiyaye shi a cikin ƙwaƙwalwa a cikin gida.
  2. Mai raba yana raba shigarwa a kan sarari, layin ƙasa, hyphens, aya, da slash, sannan yana kara raba kowane yanki a kan iyakokin ƙanƙane→babba (don helloWorld ta zama ["hello", "World"]) da kuma a kan iyakokin harufi↔lamba (don v2API ta zama ["v", "2", "API"]).
  3. Ana tace tokens fanko kuma ana ƙanƙantawa da tokens da suka rage ta amfani da String.prototype.toLocaleLowerCase don haruffa na Unicode a cikin Turkanci, Jamusanci, da sauran harsuna ana kiyaye su daidai.
  4. Masu tsara goma sha ɗaya sannan suna haɗa tokens zuwa kowane halin maƙasudi bi da bi — camelCase, PascalCase, snake_case, CONSTANT_CASE, kebab-case, dot.case, path/case, Title Case (tare da jerin kalmomin ƙanƙana don and, the, of, da dai sauransu su kasance ƙanƙane sai dai a matsayin kalmar farko ko ta ƙarshe), Jumla case, cikakken ƙanƙane, da cikakken BABBA.
  5. Ana rubuta fitar zuwa layuka ɗaya a kowane hali a cikin grid ɗin sakamakon; kowane layi yana da maɓallin kwafin sa na musamman wanda ke amfani da asynchronous Clipboard API tare da dawowa na synchronous document.execCommand('copy') don tsofaffin mai bincike.

Me ya sa amfani da mai canza haruffa?

  • Sake fasalin masu tanadar: sake sunan mafita na JavaScript daga user_id zuwa userId, aikin Python daga helloWorld zuwa hello_world, ko daidaita Rust daga maxBuffer zuwa MAX_BUFFER ba tare da shirya harafi ɗaya ɓangare ɗaya ba.
  • Canza maɓallai na tsara: juyawa daga JSON da ke cike da maɓallai na camelCase zuwa YAML na snake_case don sabis na Python, ko zuwa kebab-case don shafi na Helm, a liƙa ɗaya.
  • Rubuta taken labarai: liƙa wani taken da ka tsara ka karanta baya cikin sifar Title Case (tare da ƙananan kalmomin Chicago Manual of Style) kusa da sifar Jumla case (AP Stylebook) — zaɓi ko wacce buga ɗinka ke amfani da ita.
  • Samar da ramukan URL: liƙa taken rubutun blog ka kwafi sifar kebab-case kai tsaye zuwa filin slug na CMS ɗinka — mai raba yana sarrafa alamomi da jimlolin kalmomin da yawa ba tare da barin masu raba marasa amfani a baya ba.

Waɗanne amfani na gama-gari na canza haruffa akwai?

Sauyi tsakanin al'adun haruffa yana bayyana a cikin injiniyancin software, rubuta abun ciki, da injiniyancin bayanai:

  • Sake fasalin lambar: sake sunan masu tanadar a cikin codebase lokacin da jagorar salon ta canza (misali JavaScript camelCase → Python snake_case yayin sake rubuta baya) ba tare da gabatar da kuskuren rubutu ba.
  • Sake siffanta payload na API: canza maɓallai na JSON na camelCase zuwa snake_case kafin ciyar da su zuwa ɓangaren Ruby on Rails ko Django, ko zuwa kebab-case don sunan ajin CSS-in-JS.
  • Rubuta taken labarai da ramukan: samar da taken shafi na Title Case, bayanin meta na Jumla case, da ramukan URL na kebab-case daga taken tushe ɗaya a matakin ɗaya.

Yaya misali na canza haruffa ke kama?

Liƙa Hello World API a cikin shigarwa. Grid ɗin sakamakon yana nuna layuka goma sha ɗaya a lokaci ɗaya: helloWorldApi (camelCase), HelloWorldApi (PascalCase), hello_world_api (snake_case), HELLO_WORLD_API (CONSTANT_CASE), hello-world-api (kebab-case), hello.world.api (dot.case), hello/world/api (path/case), Hello World Api (Title Case), Hello world api (Jumla case), hello world api (ƙanƙane), da HELLO WORLD API (BABBA). Shigarwa ɗaya da aka liƙa a matsayin helloWorldAPI tana rabawa zuwa kalmomin iri ɗaya guda uku — mai gano iyakar ƙanƙane→babba yana sarrafa wannan sifar ma.

Shin wannan yana gudana a cikin mai bincike na?

Ee. Mai raba da masu tsara goma sha ɗaya kusan layi 120 na JavaScript na asali ne da ke gudana a cikin tab ɗin mai bincike. Babu abin da ake lodawa, babu mai aiki na sabis da ke matsa shigarwa, kuma shafin baya yin buƙatun cibiyar sadarwa sifili don mataki na canza kansa. Zirga-zirgar waje kawai itace hanyoyin kaya na lodin shafi na ma'auni (CSS, fonta, analytics) — rubutunka bai kai Ultim8Soft ba.

Wane tsari na haruffa ya kamata in yi amfani da shi don sunayen mafita?

Ya dogara da harshe da jagorar salon ƙungiyar. Codebase na JavaScript da TypeScript suna amfani da camelCase da yawa don mafita da ayyuka, PascalCase don aji da abubuwa na React, da CONSTANT_CASE don sunayen mafita na yanayi da daidaita matakin module — jagorar salon JavaScript ta Google da jagorar salon Airbnb duk biyun suna ɗaure waɗancan zaɓuka. Python (PEP 8), Ruby, da Rust suna son snake_case don mafita da ayyuka, PascalCase don aji, da CONSTANT_CASE don daidaita matakin module. Codebase na C da C++ (kernel na Linux, LLVM) suna jingina akan snake_case don ayyuka da CONSTANT_CASE don macros na mai sarrafa kafin. Idan kana shakka, gudanar da mai duba ko mai tsara ƙungiyar ka — zai gaya maka al'ada wacce ake aiwatar da ita.

Yaya ake rabawa shigarwa zuwa tokens?

Mai raba da farko yana raba shigarwa a kan duk gudu na sarari, layin ƙasa (_), hyphen (-), aya (.), ko slash (/). Sannan ana raba kowane yanki da ya samu a kan iyakokin ƙanƙane→babba (don helloWorld ta zama ["hello", "World"]) da kuma a kan iyakokin harufi↔lamba (don v2API ta zama ["v", "2", "API"]). Ana tace tokens fanko, kuma ana ƙanƙantawa da tokens da suka rage ta String.prototype.toLocaleLowerCase. Masu tsara sannan suna sake yin babba da sake haɗa tokens tare da mara raba da kowane halin maƙasudi ke buƙata. Dabarar tana sarrafa siffofin masu tanadar na gama-gari shida duka — camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, da rubutu na yau da kullun da ke da sarari.

Yaya game da Unicode / haruffa waɗanda ba ASCII ba?

Haruffa na Unicode suna tsira daga yawon. Mai raba yana amfani da String.prototype.toLocaleLowerCase da toLocaleUpperCase, waɗanda ke girmama ƙa'idodin haruffa masu keɓanta ga harshe — Turkanci mai aya da marasa aya i, ƙanƙantawa na Jamusanci ß zuwa SS, haruffa na Latin masu laɓe a cikin Faransanci da Sifaniyanci, da dai sauransu. Haruffa marasa harufi waɗanda BA su shiga cikin saiti na raba ba (sarari, _, -, ., /) — misali lambobi, haruffa masu laɓe, ko haruffa na CJK — ana kiyaye su a cikin token da suka bayyana a ciki kuma masu tsara suna fitar da su a zahiri. Wannan yana nufin shigarwa kamar nœud_principal tana rabawa zuwa ["nœud", "principal"] kuma tana canzawa a fili zuwa nœudPrincipal (camelCase) ko NœudPrincipal (PascalCase).

Wannan mai canza haruffa shafin ɗaya ne mai tsayuwa da ke gudanar da mai raba da masu tsara goma sha ɗaya gaba ɗaya a cikin mai bincike — babu ɗakin karatu na vendor, babu kiran cibiyar sadarwa a kowane canjin, babu asusun. Liƙa kowane rubutu a sama, duba fitar haruffa goma sha ɗaya gefen gefen, ka kwafi ɗayan da kake buƙata.