YAML Zen-ലേക്ക് 10 പടികൾ

നാമെല്ലാവരും അൻസിബിളിനെ സ്നേഹിക്കുന്നു, പക്ഷേ അൻസിബിൾ YAML ആണ്. കോൺഫിഗറേഷൻ ഫയലുകൾക്കായി നിരവധി ഫോർമാറ്റുകൾ ഉണ്ട്: മൂല്യങ്ങളുടെ ലിസ്റ്റുകൾ, പാരാമീറ്റർ-മൂല്യം ജോഡികൾ, INI ഫയലുകൾ, YAML, JSON, XML എന്നിവയും മറ്റു പലതും. എന്നിരുന്നാലും, അവയിൽ നിന്നെല്ലാം പല കാരണങ്ങളാൽ, YAML പലപ്പോഴും ബുദ്ധിമുട്ടുള്ളതായി കണക്കാക്കപ്പെടുന്നു. പ്രത്യേകിച്ചും, അതിന്റെ നവോന്മേഷദായകമായ മിനിമലിസവും ഹൈരാർക്കിക്കൽ മൂല്യങ്ങളുമായി പ്രവർത്തിക്കാനുള്ള ശ്രദ്ധേയമായ കഴിവുകളും ഉണ്ടായിരുന്നിട്ടും, YAML വാക്യഘടനയ്ക്ക് ഇൻഡന്റേഷനോടുള്ള പൈത്തൺ പോലെയുള്ള സമീപനം അരോചകമാണ്.

YAML Zen-ലേക്ക് 10 പടികൾ

YAML നിങ്ങളെ വിഷമിപ്പിക്കുകയാണെങ്കിൽ, നിങ്ങൾക്ക് കഴിയും-നിങ്ങൾ ചെയ്യണം! - നിങ്ങളുടെ നിരാശ സ്വീകാര്യമായ തലത്തിലേക്ക് കുറയ്ക്കാനും YAML-മായി പ്രണയത്തിലാകാനും ഇനിപ്പറയുന്ന 10 ഘട്ടങ്ങൾ സ്വീകരിക്കുക. ഈ ലിസ്റ്റിന് അനുയോജ്യമായത് പോലെ, ഞങ്ങളുടെ പത്ത് നുറുങ്ങുകൾ ആദ്യം മുതൽ അക്കമിട്ട് നൽകും, ഞങ്ങൾ ധ്യാനവും ആത്മീയ പരിശീലനങ്ങളും ഇഷ്ടാനുസരണം ചേർക്കും 😉

0. നിങ്ങളുടെ എഡിറ്റർ പ്രവർത്തിക്കുക

നിങ്ങൾക്ക് ഏത് ടെക്സ്റ്റ് എഡിറ്റർ ഉണ്ടെന്നത് പ്രശ്നമല്ല, YAML-ൽ പ്രവർത്തിക്കുന്നതിന് കുറഞ്ഞത് ഒരു പ്ലഗിൻ എങ്കിലും ഉണ്ടായിരിക്കും. നിങ്ങൾക്ക് ഒരെണ്ണം ഇല്ലെങ്കിൽ, അത് ഉടൻ കണ്ടെത്തി ഇൻസ്റ്റാൾ ചെയ്യുക. നിങ്ങൾ YAML എഡിറ്റുചെയ്യേണ്ട ഓരോ തവണയും തിരയുന്നതിനും സജ്ജീകരിക്കുന്നതിനും ചെലവഴിക്കുന്ന സമയം പലതവണ പ്രതിഫലം നൽകും.

ഉദാഹരണത്തിന്, എഡിറ്റർ പരമാണു സ്ഥിരസ്ഥിതിയായി YAML-നെ പിന്തുണയ്ക്കുന്നു, എന്നാൽ GNU Emacs-നായി നിങ്ങൾ അധിക പാക്കേജുകൾ ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതുണ്ട്, ഉദാഹരണത്തിന്, yaml-മോഡ്.

YAML Zen-ലേക്ക് 10 പടികൾ

YAML മോഡിലും സ്‌പെയ്‌സുകൾ പ്രദർശിപ്പിക്കുന്നതിലും ഇമാക്കുകൾ.

നിങ്ങളുടെ പ്രിയപ്പെട്ട എഡിറ്ററിന് YAML മോഡ് ഇല്ലെങ്കിൽ, ക്രമീകരണങ്ങൾ ഉപയോഗിച്ച് പ്രവർത്തിക്കുന്നതിലൂടെ ചില പ്രശ്നങ്ങൾ പരിഹരിക്കാനാകും. ഉദാഹരണത്തിന്, സ്റ്റാൻഡേർഡ് ഗ്നോം ടെക്സ്റ്റ് എഡിറ്റർ Gedit-ന് ഒരു YAML മോഡ് ഇല്ല, എന്നാൽ സ്ഥിരസ്ഥിതിയായി ഇത് YAML വാക്യഘടന ഹൈലൈറ്റ് ചെയ്യുകയും ഇൻഡന്റേഷനുകൾ ഉപയോഗിച്ച് വർക്ക് കോൺഫിഗർ ചെയ്യാൻ നിങ്ങളെ അനുവദിക്കുകയും ചെയ്യുന്നു:

YAML Zen-ലേക്ക് 10 പടികൾ

Gedit-ൽ ഇൻഡന്റുകൾ ക്രമീകരിക്കുന്നു.

ഒരു പ്ലഗിൻ ഡ്രോസ്പേസുകൾ Gedit-നായി, സ്‌പെയ്‌സുകൾ ഡോട്ടുകളായി പ്രദർശിപ്പിക്കുന്നു, ഇൻഡന്റേഷൻ ലെവലുകൾ ഉപയോഗിച്ച് അവ്യക്തതകൾ ഇല്ലാതാക്കുന്നു.

മറ്റൊരു വിധത്തിൽ പറഞ്ഞാൽ, നിങ്ങളുടെ പ്രിയപ്പെട്ട എഡിറ്ററെക്കുറിച്ച് പഠിക്കാൻ സമയം ചെലവഴിക്കുക. YAML-ൽ പ്രവർത്തിക്കുന്നതിന് അവനോ അവന്റെ വികസന കമ്മ്യൂണിറ്റിയോ എന്താണ് വാഗ്ദാനം ചെയ്യുന്നതെന്ന് കണ്ടെത്തുക, ആ സവിശേഷതകൾ ഉപയോഗിക്കുക. നിങ്ങൾ തീർച്ചയായും ഖേദിക്കേണ്ടിവരില്ല.

1. ഒരു ലിന്റർ ഉപയോഗിക്കുക

മികച്ച രീതിയിൽ, പ്രോഗ്രാമിംഗ് ഭാഷകളും മാർക്ക്അപ്പ് ഭാഷകളും പ്രവചിക്കാവുന്ന വാക്യഘടന ഉപയോഗിക്കുന്നു. പ്രവചിക്കുന്നതിൽ കമ്പ്യൂട്ടറുകൾ മികച്ചതാണ്, അതിനാലാണ് ഈ ആശയം ലിന്ററ. അതിന്റെ നിലനിൽപ്പിന്റെ 40 വർഷത്തിനിടയിൽ അത് നിങ്ങളെ കടന്നുപോയി, നിങ്ങൾ ഇപ്പോഴും ഒരു YAML ലിന്റർ ഉപയോഗിക്കുന്നില്ലെങ്കിൽ, യാംലിന്റ് പരീക്ഷിക്കാനുള്ള സമയമാണിത്.

ഇൻസ്റ്റാൾ ചെയ്യുക യാംലിന്റ് നിങ്ങൾക്ക് സാധാരണ Linux പാക്കേജ് മാനേജർ ഉപയോഗിക്കാം. ഉദാഹരണത്തിന്, ഇൻ Red Hat Enterprise Linux 8 അല്ലെങ്കിൽ ഫെഡോറ ഇത് ഇതുപോലെ ചെയ്തു:

$ sudo dnf install yamllint

അപ്പോൾ നിങ്ങൾ yamllint പ്രവർത്തിപ്പിക്കുക, അത് പരിശോധിക്കാൻ YAML ഫയൽ കൈമാറുക. നിങ്ങൾ ഒരു പിശകുള്ള ഒരു ഫയൽ ലിന്ററിലേക്ക് കൈമാറുകയാണെങ്കിൽ, ഇത് ഇങ്ങനെയാണ്:

$ yamllint errorprone.yaml
errorprone.yaml
23:10     error    syntax error: mapping values are not allowed here
23:11     error    trailing spaces  (trailing-spaces)

ഇടതുവശത്തുള്ള അക്കങ്ങൾ സമയമല്ല, പിശകിന്റെ കോർഡിനേറ്റുകൾ: വരിയും നിരയും. പിശകിന്റെ വിവരണം നിങ്ങളോട് ഒന്നും പറഞ്ഞേക്കില്ല, പക്ഷേ അത് എവിടെയാണെന്ന് നിങ്ങൾക്ക് കൃത്യമായി അറിയാം. കോഡിലെ ഈ സ്ഥലം നോക്കൂ, മിക്കവാറും എല്ലാം വ്യക്തമാകും.

yamllint ഒരു ഫയലിൽ പിശകുകളൊന്നും കണ്ടെത്തിയില്ലെങ്കിൽ, സ്ക്രീനിൽ ഒന്നും പ്രിന്റ് ചെയ്യപ്പെടുന്നില്ല. അത്തരം നിശ്ശബ്ദത നിങ്ങളെ ഭയപ്പെടുത്തുകയും നിങ്ങൾക്ക് കുറച്ചുകൂടി ഫീഡ്‌ബാക്ക് വേണമെങ്കിൽ, ഒരു ഇരട്ട ആമ്പർസാൻഡ് (&&) വഴി സോപാധികമായ എക്കോ കമാൻഡ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് ലിന്റർ പ്രവർത്തിപ്പിക്കാം:

$ yamllint perfect.yaml && echo "OK"
OK

POSIX-ൽ, മുമ്പത്തെ കമാൻഡ് 0 നൽകിയാൽ മാത്രമേ ഇരട്ട ആമ്പർസാൻഡ് ഫയർ ചെയ്യുന്നുള്ളൂ. കൂടാതെ yamllint കണ്ടെത്തിയ പിശകുകളുടെ എണ്ണം മാത്രം നൽകുന്നു, അതിനാലാണ് ഈ മുഴുവൻ സോപാധികമായ നിർമ്മാണവും പ്രവർത്തിക്കുന്നത്.

2. YAML അല്ല, പൈത്തണിൽ എഴുതുക

YAML നിങ്ങളെ ശരിക്കും വിഷമിപ്പിക്കുന്നുവെങ്കിൽ, അക്ഷരാർത്ഥത്തിൽ അതിൽ എഴുതരുത്. ആപ്ലിക്കേഷൻ മനസ്സിലാക്കുന്ന ഒരേയൊരു ഫോർമാറ്റ് YAML ആണ്. എന്നാൽ ഈ സാഹചര്യത്തിൽ പോലും, ഒരു YAML ഫയൽ സൃഷ്ടിക്കേണ്ട ആവശ്യമില്ല. നിങ്ങൾക്ക് ഇഷ്ടമുള്ളതിൽ എഴുതുക, തുടർന്ന് പരിവർത്തനം ചെയ്യുക. ഉദാഹരണത്തിന്, പൈത്തണിനായി ഒരു വലിയ ലൈബ്രറിയുണ്ട് pyyaml കൂടാതെ രണ്ട് പരിവർത്തന രീതികൾ: സ്വയം പരിവർത്തനം, സ്ക്രിപ്റ്റുകളിലൂടെയുള്ള പരിവർത്തനം.

സ്വയം പരിവർത്തനം

ഈ സാഹചര്യത്തിൽ, ഡാറ്റ ഫയൽ YAML സൃഷ്ടിക്കുന്ന ഒരു പൈത്തൺ സ്ക്രിപ്റ്റ് കൂടിയാണ്. ചെറിയ ഡാറ്റാ സെറ്റുകൾക്ക് ഈ രീതി ഏറ്റവും അനുയോജ്യമാണ്. നിങ്ങൾ JSON ഡാറ്റയെ ഒരു പൈത്തൺ വേരിയബിളിലേക്ക് എഴുതുക, ഒരു ഇറക്കുമതി നിർദ്ദേശം ഉപയോഗിച്ച് മുൻ‌ഭാഗം നൽകുക, കൂടാതെ ഫയലിന്റെ അവസാനം ഔട്ട്‌പുട്ട് നടപ്പിലാക്കുന്നതിനായി മൂന്ന് വരികൾ ചേർക്കുക.

#!/usr/bin/python3	
import yaml 

d={
"glossary": {
  "title": "example glossary",
  "GlossDiv": {
	"title": "S",
	"GlossList": {
	  "GlossEntry": {
		"ID": "SGML",
		"SortAs": "SGML",
		"GlossTerm": "Standard Generalized Markup Language",
		"Acronym": "SGML",
		"Abbrev": "ISO 8879:1986",
		"GlossDef": {
		  "para": "A meta-markup language, used to create markup languages such as DocBook.",
		  "GlossSeeAlso": ["GML", "XML"]
		  },
		"GlossSee": "markup"
		}
	  }
	}
  }
}

f=open('output.yaml','w')
f.write(yaml.dump(d))
f.close

ഇപ്പോൾ നമ്മൾ ഈ ഫയൽ പൈത്തണിൽ പ്രവർത്തിപ്പിച്ച് output.yaml ഫയൽ നേടുക:

$ python3 ./example.json
$ cat output.yaml
glossary:
  GlossDiv:
	GlossList:
	  GlossEntry:
		Abbrev: ISO 8879:1986
		Acronym: SGML
		GlossDef:
		  GlossSeeAlso: [GML, XML]
		  para: A meta-markup language, used to create markup languages such as DocBook.
		GlossSee: markup
		GlossTerm: Standard Generalized Markup Language
		ID: SGML
		SortAs: SGML
	title: S
  title: example glossary

ഇത് തികച്ചും സാധുതയുള്ള YAML ആണ്, എന്നാൽ yamllint നിങ്ങൾക്ക് മുന്നറിയിപ്പ് നൽകും - എന്നതിൽ ആരംഭിക്കുന്നതല്ല. ശരി, ഇത് സ്വമേധയാ ശരിയാക്കാം അല്ലെങ്കിൽ പൈത്തൺ സ്ക്രിപ്റ്റിൽ ചെറുതായി പരിഷ്കരിക്കാം.

സ്ക്രിപ്റ്റുകൾ വഴിയുള്ള പരിവർത്തനം

ഈ സാഹചര്യത്തിൽ, ഞങ്ങൾ ആദ്യം JSON-ൽ എഴുതുന്നു, തുടർന്ന് കൺവെർട്ടർ ഒരു പ്രത്യേക പൈത്തൺ സ്ക്രിപ്റ്റായി പ്രവർത്തിപ്പിക്കുന്നു, അത് YAML ഔട്ട്പുട്ടായി നിർമ്മിക്കുന്നു. മുമ്പത്തെ രീതിയുമായി താരതമ്യപ്പെടുത്തുമ്പോൾ, ഈ രീതി മികച്ചതാണ്, കാരണം പരിവർത്തനം ഡാറ്റയിൽ നിന്ന് വ്യത്യസ്തമാണ്.

ആദ്യം, നമുക്ക് ഒരു JSON ഫയൽ സൃഷ്ടിക്കാം example.json, ഉദാഹരണത്തിന്, നിങ്ങൾക്ക് അത് എടുക്കാം json.org:

{
	"glossary": {
	  "title": "example glossary",
	  "GlossDiv": {
		"title": "S",
		"GlossList": {
		  "GlossEntry": {
			"ID": "SGML",
			"SortAs": "SGML",
			"GlossTerm": "Standard Generalized Markup Language",
			"Acronym": "SGML",
			"Abbrev": "ISO 8879:1986",
			"GlossDef": {
			  "para": "A meta-markup language, used to create markup languages such as DocBook.",
			  "GlossSeeAlso": ["GML", "XML"]
			  },
			"GlossSee": "markup"
			}
		  }
		}
	  }
	}

തുടർന്ന് ഞങ്ങൾ ഒരു ലളിതമായ കൺവെർട്ടർ സ്ക്രിപ്റ്റ് സൃഷ്ടിച്ച് json2yaml.py എന്ന പേരിൽ സേവ് ചെയ്യും. ഈ സ്ക്രിപ്റ്റ് YAML, JSON പൈത്തൺ മൊഡ്യൂളുകൾ ഇമ്പോർട്ടുചെയ്യുന്നു, കൂടാതെ ഒരു ഉപയോക്തൃ-നിർദ്ദിഷ്ട JSON ഫയൽ ലോഡ് ചെയ്യുന്നു, പരിവർത്തനം നടത്തുന്നു, കൂടാതെ output.yaml ഫയലിലേക്ക് ഡാറ്റ എഴുതുന്നു.

#!/usr/bin/python3
import yaml
import sys
import json

OUT=open('output.yaml','w')
IN=open(sys.argv[1], 'r')

JSON = json.load(IN)
IN.close()
yaml.dump(JSON, OUT)
OUT.close()

ഈ സ്ക്രിപ്റ്റ് സിസ്റ്റം പാത്തിൽ സംരക്ഷിച്ച് ആവശ്യാനുസരണം പ്രവർത്തിപ്പിക്കുക:

$ ~/bin/json2yaml.py example.json

3. ധാരാളം പലപ്പോഴും പാഴ്സ് ചെയ്യുക

ചിലപ്പോൾ ഒരു പ്രശ്നത്തെ മറ്റൊരു കോണിൽ നിന്ന് നോക്കുന്നത് ഉപയോഗപ്രദമാണ്. YAML-ൽ നിങ്ങളുടെ ഡാറ്റ തമ്മിലുള്ള ബന്ധത്തെ പ്രതിനിധീകരിക്കുന്നതിൽ നിങ്ങൾക്ക് പ്രശ്‌നമുണ്ടെങ്കിൽ, നിങ്ങൾക്ക് അത് താൽകാലികമായി കൂടുതൽ പരിചിതമായ ഒന്നാക്കി മാറ്റാനാകും.

ഉദാഹരണത്തിന്, നിഘണ്ടു ലിസ്റ്റുകൾ അല്ലെങ്കിൽ JSON എന്നിവയിൽ പ്രവർത്തിക്കാൻ നിങ്ങൾക്ക് സുഖമാണെങ്കിൽ, സംവേദനാത്മക പൈത്തൺ ഷെല്ലിലെ രണ്ട് കമാൻഡുകൾ ഉപയോഗിച്ച് നിങ്ങൾക്ക് YAML-നെ JSON ആക്കി മാറ്റാം. നിങ്ങൾക്ക് ഒരു YAML ഫയൽ mydata.yaml ഉണ്ടെന്ന് പറയാം, അപ്പോൾ ഇത് ഇങ്ങനെയായിരിക്കും:

$ python3
>>> f=open('mydata.yaml','r')
>>> yaml.load(f)
{'document': 34843, 'date': datetime.date(2019, 5, 23), 'bill-to': {'given': 'Seth', 'family': 'Kenlon', 'address': {'street': '51b Mornington Roadn', 'city': 'Brooklyn', 'state': 'Wellington', 'postal': 6021, 'country': 'NZ'}}, 'words': 938, 'comments': 'Good article. Could be better.'}

ഈ വിഷയത്തിൽ നിങ്ങൾക്ക് മറ്റ് നിരവധി ഉദാഹരണങ്ങൾ കണ്ടെത്താൻ കഴിയും. കൂടാതെ, നിരവധി ഓൺലൈൻ കൺവെർട്ടറുകളും പ്രാദേശിക പാർസറുകളും ലഭ്യമാണ്. അതിനാൽ മനസ്സിലാക്കാൻ കഴിയാത്ത ഒരു കുഴപ്പം മാത്രം കാണുമ്പോൾ ഡാറ്റ റീഫോർമാറ്റ് ചെയ്യാൻ മടിക്കരുത്.

4. സ്പെസിഫിക്കേഷനുകൾ വായിക്കുക

ഒരു നീണ്ട ഇടവേളയ്ക്ക് ശേഷം YAML-ലേക്ക് മടങ്ങുന്നത്, സന്ദർശിക്കുന്നത് ഉപയോഗപ്രദമാണ് yaml.org കൂടാതെ സ്പെസിഫിക്കേഷനുകൾ (സ്പെസിഫിക്കേഷനുകൾ) വീണ്ടും വായിക്കുക. നിങ്ങൾക്ക് YAML-ൽ ബുദ്ധിമുട്ടുകൾ ഉണ്ടെങ്കിലും സ്പെസിഫിക്കേഷനിൽ എത്തിയിട്ടില്ലെങ്കിൽ, ഈ സാഹചര്യം ശരിയാക്കാനുള്ള സമയമാണിത്. സ്‌പെസിഫിക്കേഷനുകൾ എഴുതാൻ വളരെ എളുപ്പമാണ്, കൂടാതെ വാക്യഘടന ആവശ്യകതകൾ നിരവധി ഉദാഹരണങ്ങൾ ഉപയോഗിച്ച് ചിത്രീകരിച്ചിരിക്കുന്നു. ഗ്ലാവ് 6.

5. സ്യൂഡോ കോൺഫിഗറേഷനുകൾ

ഒരു പുസ്തകമോ ലേഖനമോ എഴുതുമ്പോൾ, ആദ്യം ഒരു പ്രാഥമിക രൂപരേഖ തയ്യാറാക്കുന്നത് എല്ലായ്പ്പോഴും ഉപയോഗപ്രദമാണ്, കുറഞ്ഞത് ഒരു ഉള്ളടക്ക പട്ടികയുടെ രൂപത്തിലെങ്കിലും. YAML-ന്റെ കാര്യവും ഇതുതന്നെയാണ്. മിക്കവാറും, ഒരു YAML ഫയലിലേക്ക് എന്ത് ഡാറ്റയാണ് എഴുതേണ്ടതെന്ന് നിങ്ങൾക്ക് ഒരു ധാരണയുണ്ട്, പക്ഷേ അത് എങ്ങനെ പരസ്പരം ബന്ധിപ്പിക്കണമെന്ന് നിങ്ങൾക്ക് ശരിക്കും മനസ്സിലാകുന്നില്ല. അതിനാൽ, YAML രൂപപ്പെടുത്തുന്നതിന് മുമ്പ്, ഒരു വ്യാജ കോൺഫിഗറേഷൻ വരയ്ക്കുക.

സ്യൂഡോ കോൺഫിഗറേഷൻ വ്യാജ കോഡിന് സമാനമാണ്, അവിടെ നിങ്ങൾ ഘടനയെക്കുറിച്ചോ ഇൻഡന്റേഷനെക്കുറിച്ചോ, മാതാപിതാക്കളും കുട്ടികളും തമ്മിലുള്ള ബന്ധങ്ങൾ, അനന്തരാവകാശം, കൂടുണ്ടാക്കൽ എന്നിവയെക്കുറിച്ചോ വിഷമിക്കേണ്ടതില്ല. ഇവിടെയും ഇത് സമാനമാണ്: നിങ്ങളുടെ തലയിൽ ഉയർന്നുവരുന്ന ഡാറ്റയുടെ ആവർത്തനങ്ങൾ നിങ്ങൾ വരയ്ക്കുന്നു.

YAML Zen-ലേക്ക് 10 പടികൾ

കപട കോൺഫിഗറേഷൻ ലിസ്റ്റിംഗ് പ്രോഗ്രാമർമാരും (മാർട്ടിൻ, തബിത) അവരുടെ കഴിവുകളും (പ്രോഗ്രാമിംഗ് ഭാഷകൾ: പൈത്തൺ, പേൾ, പാസ്കൽ, ലിസ്പ്, ഫോർട്രാൻ, എർലാങ്, യഥാക്രമം).

ഒരു പേപ്പറിൽ ഒരു വ്യാജ കോൺഫിഗറേഷൻ വരച്ച ശേഷം, അത് ശ്രദ്ധാപൂർവ്വം വിശകലനം ചെയ്യുക, എല്ലാം ക്രമത്തിലാണെങ്കിൽ, സാധുവായ YAML ഫയലിന്റെ രൂപത്തിൽ ഫോർമാറ്റ് ചെയ്യുക.

6. ടാബുകൾ വേഴ്സസ്. സ്പേസ് ഡിലമ

നിങ്ങൾ പ്രതിസന്ധി പരിഹരിക്കേണ്ടതുണ്ട് "ടാബുകളോ സ്പെയ്സുകളോ?". ഒരു ആഗോള അർത്ഥത്തിലല്ല, നിങ്ങളുടെ സ്ഥാപനത്തിന്റെ തലത്തിലോ കുറഞ്ഞത് ഒരു പ്രോജക്റ്റിലോ മാത്രം. ഇതിൽ ഒരു സെഡ് സ്ക്രിപ്റ്റ് ഉപയോഗിച്ച് പോസ്റ്റ്-പ്രോസസ്സിംഗ് ഉപയോഗിക്കുന്നുണ്ടോ, പ്രോഗ്രാമർമാരുടെ മെഷീനുകളിൽ ടെക്സ്റ്റ് എഡിറ്ററുകൾ സജ്ജീകരിക്കുന്നുണ്ടോ, അല്ലെങ്കിൽ പിരിച്ചുവിടൽ ഭീഷണിയിൽ ലിന്ററിന്റെ നിർദ്ദേശങ്ങൾ കർശനമായി പാലിച്ചതിന്റെ രസീതുകൾ സാർവത്രികമായി എടുക്കുന്നത് പ്രശ്നമല്ല, എന്നാൽ നിങ്ങളുടെ ടീമിലെ എല്ലാ അംഗങ്ങളും YAML-മായി ബന്ധപ്പെട്ട ഒരു വഴി അല്ലെങ്കിൽ മറ്റൊന്ന് സ്‌പെയ്‌സുകൾ മാത്രം ഉപയോഗിക്കണം (YAML സ്പെസിഫിക്കേഷൻ അനുസരിച്ച്).

ഏതൊരു സാധാരണ ടെക്സ്റ്റ് എഡിറ്ററിലും, നിങ്ങൾക്ക് ഒരു നിശ്ചിത എണ്ണം സ്‌പെയ്‌സുകളിലേക്ക് സ്വയമേവ ശരിയാക്കുന്ന ടാബുകൾ ക്രമീകരിക്കാൻ കഴിയും, അതിനാൽ പ്രധാന അനുയായികളുടെ കലാപം ടാബ് നിങ്ങൾ ഭയപ്പെടേണ്ടതില്ല.

ഓരോ YAML വിദ്വേഷിക്കും നന്നായി അറിയാവുന്നതുപോലെ, സ്ക്രീനിൽ ടാബുകളും സ്പെയ്സുകളും തമ്മിലുള്ള വ്യത്യാസം നിങ്ങൾക്ക് കാണാൻ കഴിയില്ല. എന്തെങ്കിലും ദൃശ്യമാകാതെ വരുമ്പോൾ, സാധ്യമായ മറ്റെല്ലാ പ്രശ്‌നങ്ങളും പരിഹരിച്ച് പരിശോധിച്ച് ഇല്ലാതാക്കിയതിന് ശേഷം സാധാരണയായി ആളുകൾ അവസാനമായി ഓർക്കുന്നത് ഇതാണ്. ഒരു ടാബുലേഷൻ കർവ് അല്ലെങ്കിൽ സ്‌പെയ്‌സുകളുടെ ഒരു ബ്ലോക്ക് തിരയുന്നതിനായി ചെലവഴിച്ച ഒരു മണിക്കൂർ സമയം ഒന്നോ അല്ലെങ്കിൽ മറ്റൊന്നിന്റെ ഉപയോഗത്തിനായി നിങ്ങൾ അടിയന്തിരമായി ഒരു നയം സൃഷ്ടിക്കേണ്ടതുണ്ടെന്ന് നിലവിളിക്കുന്നു, തുടർന്ന് അത് പാലിക്കുന്നതിനായി ഒരു ദൃഢമായ കോൺക്രീറ്റ് പരിശോധന നടപ്പിലാക്കുക (ഉദാഹരണത്തിന്, വഴി ഒരു ലിന്ററിലൂടെ നിർബന്ധിക്കാൻ ഒരു Git ഹുക്ക്).

7. കുറവ് കൂടുതൽ (അല്ലെങ്കിൽ കൂടുതൽ കുറവ്)

ചില ആളുകൾ YAML-ൽ എഴുതാൻ ഇഷ്ടപ്പെടുന്നു, കാരണം അത് ഘടനയെ ഊന്നിപ്പറയുന്നു. അതേ സമയം, ഡാറ്റയുടെ ബ്ലോക്കുകൾ ഹൈലൈറ്റ് ചെയ്യുന്നതിന് അവർ സജീവമായി ഇൻഡന്റേഷൻ ഉപയോഗിക്കുന്നു. വ്യക്തമായ ഡീലിമിറ്ററുകൾ ഉപയോഗിക്കുന്ന മാർക്ക്അപ്പ് ഭാഷകൾ അനുകരിക്കുന്നതിനുള്ള ഒരുതരം തട്ടിപ്പാണിത്.

അത്തരം ഘടനയുടെ ഒരു ഉദാഹരണം ഇതാ അൻസിബിൾ ഡോക്യുമെന്റേഷൻ:

# Employee records
-  martin:
        name: Martin D'vloper
        job: Developer
        skills:
            - python
            - perl
            - pascal
-  tabitha:
        name: Tabitha Bitumen
        job: Developer
        skills:
            - lisp
            - fortran
            - erlang

ചിലരെ സംബന്ധിച്ചിടത്തോളം, ഈ ഓപ്ഷൻ അവരുടെ തലയിലെ YAML ഘടന ക്രമീകരിക്കാൻ സഹായിക്കുന്നു; മറ്റുള്ളവർക്ക്, നേരെമറിച്ച്, ഇത് അനാവശ്യമായ, അവരുടെ അഭിപ്രായത്തിൽ, ഇൻഡന്റുകളാൽ അവരെ പ്രകോപിപ്പിക്കുന്നു.

എന്നാൽ നിങ്ങൾ YAML ഡോക്യുമെന്റിന്റെ ഉടമയാണെങ്കിൽ, അത് പരിപാലിക്കാനുള്ള ഉത്തരവാദിത്തം നിങ്ങൾക്കുണ്ടെങ്കിൽ നീയും നീയും മാത്രം ഇൻഡന്റേഷൻ എങ്ങനെ ഉപയോഗിക്കണമെന്ന് നിർവ്വചിക്കണം. വലിയ പാഡിംഗ് നിങ്ങളെ ശല്യപ്പെടുത്തുന്നുണ്ടെങ്കിൽ, YAML സ്പെസിഫിക്കേഷൻ അനുസരിച്ച് സാധ്യമായ ഏറ്റവും കുറഞ്ഞ അളവിൽ അത് നിലനിർത്തുക. ഉദാഹരണത്തിന്, അൻസിബിൾ ഡോക്യുമെന്റേഷനിൽ നിന്നുള്ള മുകളിലുള്ള ഫയൽ ഒരു നഷ്ടവും കൂടാതെ ഇതുപോലെ മാറ്റിയെഴുതാം:

---
- martin:
   name: Martin D'vloper
   job: Developer
   skills:
   - python
   - perl
   - pascal
- tabitha:
   name: Tabitha Bitumen
   job: Developer
   skills:
   - lisp
   - fortran
   - erlang

8. ശൂന്യത ഉപയോഗിക്കുക

ഒരു YAML ഫയൽ പൂരിപ്പിക്കുമ്പോൾ നിങ്ങൾ ഒരേ തെറ്റുകൾ നിരന്തരം ആവർത്തിക്കുകയാണെങ്കിൽ, അതിൽ ഒരു ടെംപ്ലേറ്റ് ഒരു അഭിപ്രായമായി ചേർക്കുന്നത് അർത്ഥമാക്കുന്നു. അടുത്ത തവണ നിങ്ങൾക്ക് ഈ ടെംപ്ലേറ്റ് പകർത്തി അവിടെ യഥാർത്ഥ ഡാറ്റ നൽകാം, ഉദാഹരണത്തിന്:

---
# - <common name>:
#   name: Given Surname
#   job: JOB
#   skills:
#   - LANG
- martin:
  name: Martin D'vloper
  job: Developer
  skills:
  - python
  - perl
  - pascal
- tabitha:
  name: Tabitha Bitumen
  job: Developer
  skills:
  - lisp
  - fortran
  - erlang

9. വ്യത്യസ്തമായ എന്തെങ്കിലും ഉപയോഗിക്കുക

അപ്ലിക്കേഷന് നിങ്ങളെ ഞെരുക്കമില്ലെങ്കിൽ, YAML മറ്റൊരു ഫോർമാറ്റിലേക്ക് മാറ്റുന്നത് മൂല്യവത്താണ്. കാലക്രമേണ, കോൺഫിഗറേഷൻ ഫയലുകൾ സ്വയം വളരും, തുടർന്ന് അവയെ ലുവായിലോ പൈത്തണിലോ ലളിതമായ സ്ക്രിപ്റ്റുകളായി പരിവർത്തനം ചെയ്യുന്നതാണ് നല്ലത്.

YAML എന്നത് അതിന്റെ മിനിമലിസത്തിനും ലാളിത്യത്തിനും വേണ്ടി പലരും ഇഷ്ടപ്പെടുന്ന ഒരു മികച്ച കാര്യമാണ്, എന്നാൽ ഇത് നിങ്ങളുടെ ആയുധപ്പുരയിലെ ഒരേയൊരു ഉപകരണത്തിൽ നിന്ന് വളരെ അകലെയാണ്. അതിനാൽ ചിലപ്പോൾ നിങ്ങൾ അത് നിരസിച്ചേക്കാം. പാഴ്‌സിംഗ് ലൈബ്രറികൾ YAML-ന് കണ്ടെത്താൻ എളുപ്പമാണ്, അതിനാൽ നിങ്ങൾ എളുപ്പമുള്ള മൈഗ്രേഷൻ ഓപ്ഷനുകൾ വാഗ്ദാനം ചെയ്യുകയാണെങ്കിൽ, നിങ്ങളുടെ ഉപയോക്താക്കൾ ഈ പരാജയത്തെ താരതമ്യേന വേദനയില്ലാതെ അതിജീവിക്കും.

YAML ഇല്ലാതെ നിങ്ങൾക്ക് ചെയ്യാൻ കഴിയുന്നില്ലെങ്കിൽ, ഈ 10 നുറുങ്ങുകൾ എടുത്ത് YAML-നോടുള്ള നിങ്ങളുടെ ഇഷ്ടക്കേട് ഒരിക്കൽ കൂടി മറികടക്കുക!

അവലംബം: www.habr.com

ഒരു അഭിപ്രായം ചേർക്കുക