JavaScript-ൽ തനതായ ഐഡൻ്റിഫയറുകൾ സൃഷ്ടിക്കുന്നു: UUID-കളിലേക്കും GUID-കളിലേക്കും ഒരു വഴികാട്ടി

JavaScript-ൽ തനതായ ഐഡൻ്റിഫയറുകൾ സൃഷ്ടിക്കുന്നു: UUID-കളിലേക്കും GUID-കളിലേക്കും ഒരു വഴികാട്ടി
ജാവാസ്ക്രിപ്റ്റ്

ജാവാസ്ക്രിപ്റ്റിലെ തനതായ ഐഡൻ്റിഫയറുകളിലേക്ക് ആഴത്തിലുള്ള ഡൈവ്

വെബ്, ആപ്ലിക്കേഷൻ ഡെവലപ്‌മെൻ്റ് മേഖലയിൽ, അദ്വിതീയ ഐഡൻ്റിഫയറുകളുടെ ആവശ്യകത അമിതമായി പ്രസ്താവിക്കാനാവില്ല. യൂണിവേഴ്സലി യുണീക്ക് ഐഡൻ്റിഫയറുകൾ (യുയുഐഡികൾ) അല്ലെങ്കിൽ ഗ്ലോബലി യുണീക്ക് ഐഡൻ്റിഫയറുകൾ (ജിയുഐഡികൾ) എന്നറിയപ്പെടുന്ന ഈ ഐഡൻ്റിഫയറുകൾ, ഡാറ്റാബേസുകൾ, സിസ്റ്റങ്ങൾ, നെറ്റ്‌വർക്കുകൾ എന്നിവയിലുടനീളം ഡാറ്റയുടെ പ്രത്യേകത ഉറപ്പാക്കുന്നതിൽ നിർണായക പങ്ക് വഹിക്കുന്നു. ജാവാസ്ക്രിപ്റ്റ്, ഏറ്റവും വൈവിധ്യമാർന്നതും വ്യാപകമായി ഉപയോഗിക്കുന്നതുമായ പ്രോഗ്രാമിംഗ് ഭാഷകളിലൊന്നായതിനാൽ, ഈ അദ്വിതീയ ഐഡികൾ സൃഷ്ടിക്കുന്നതിന് നിരവധി രീതികൾ വാഗ്ദാനം ചെയ്യുന്നു. ഡാറ്റാബേസ് കീകൾ, സെഷൻ ഐഡൻ്റിഫയറുകൾ, അല്ലെങ്കിൽ ഡാറ്റാ സമഗ്രതയ്ക്കും സുരക്ഷയ്ക്കും നിർണ്ണായകമായ തനതായ ഐഡൻ്റിഫിക്കേഷൻ എന്നിവ പോലുള്ള ഐഡൻ്റിഫയർ കൂട്ടിയിടിയുടെ അപകടസാധ്യത സഹിക്കാൻ കഴിയാത്ത ആപ്ലിക്കേഷനുകളിൽ ഈ പ്രവർത്തനം പരമപ്രധാനമാണ്.

ലളിതമായ ഇഷ്‌ടാനുസൃത പ്രവർത്തനങ്ങൾ മുതൽ കൂടുതൽ സങ്കീർണ്ണമായ ആവശ്യകതകൾക്കായി മൂന്നാം കക്ഷി ലൈബ്രറികൾ പ്രയോജനപ്പെടുത്തുന്നത് വരെയുള്ള വിവിധ സാങ്കേതിക വിദ്യകളിലൂടെ ജാവാസ്ക്രിപ്റ്റിലെ UUID-കളുടെ ജനറേഷൻ നേടാനാകും. JavaScript-ൽ UUID സൃഷ്ടിക്കുന്നതിന് പിന്നിലെ മെക്കാനിസങ്ങൾ മനസ്സിലാക്കുന്നത് ഡെവലപ്പർമാർക്ക് അവരുടെ പ്രോജക്റ്റുകളിൽ ഈ സവിശേഷത നടപ്പിലാക്കാൻ അത്യന്താപേക്ഷിതമാണ്. UUID-കളുടെ ആശയം പര്യവേക്ഷണം ചെയ്യാനും അവയുടെ പ്രാധാന്യം ചർച്ച ചെയ്യാനും JavaScript പരിതസ്ഥിതിയിൽ അവ എങ്ങനെ സൃഷ്ടിക്കാമെന്നതിനെക്കുറിച്ചുള്ള സമഗ്രമായ ഒരു അവലോകനം നൽകാനും ഈ ഗൈഡ് ലക്ഷ്യമിടുന്നു, ഡവലപ്പർമാർ അവരുടെ ആപ്ലിക്കേഷനുകളിൽ ഈ അദ്വിതീയ ഐഡൻ്റിഫയറുകൾ ഫലപ്രദമായി ഉപയോഗിക്കുന്നതിന് നന്നായി സജ്ജരാണെന്ന് ഉറപ്പാക്കുന്നു.

കമാൻഡ് വിവരണം
crypto.randomUUID() JavaScript-ൽ ഒരു റാൻഡം UUID (യൂണിവേഴ്സലി യുണീക്ക് ഐഡൻ്റിഫയർ) സൃഷ്ടിക്കുന്നു.

ജാവാസ്ക്രിപ്റ്റിൽ UUID ജനറേഷൻ മനസ്സിലാക്കുന്നു

GUIDs (ആഗോളമായി യുണീക്ക് ഐഡൻ്റിഫയറുകൾ) എന്നും അറിയപ്പെടുന്ന UUID-കൾ (യൂണിവേഴ്‌സലി യുണീക് ഐഡൻ്റിഫയറുകൾ) ഓരോ ഉപയോക്താവിലും സിസ്റ്റത്തിലും അദ്വിതീയമായ ഐഡൻ്റിഫയറുകൾ സൃഷ്‌ടിക്കുന്നതിന് സോഫ്‌റ്റ്‌വെയർ വികസനത്തിന് അത്യന്താപേക്ഷിതമാണ്. ഈ ഐഡൻ്റിഫയറുകൾ ഡാറ്റ സ്ഥിരത ഉറപ്പാക്കുന്നതിനും വൈരുദ്ധ്യങ്ങൾ തടയുന്നതിനും വിവിധ പ്ലാറ്റ്‌ഫോമുകളിലും ഡാറ്റാബേസുകളിലും തടസ്സമില്ലാത്ത ഡാറ്റ സമന്വയം സുഗമമാക്കുന്നതിനും പ്രധാനമാണ്. JavaScript-ൽ, RFC 4122 സ്റ്റാൻഡേർഡിന് അനുസൃതമായി ക്രമരഹിതമായ UUID-കൾ സൃഷ്ടിക്കുന്നതിന് 'randomUUID()' എന്ന ഒരു രീതി വാഗ്ദാനം ചെയ്യുന്ന 'crypto' മൊഡ്യൂൾ പോലെയുള്ള ബിൽറ്റ്-ഇൻ മൊഡ്യൂളുകൾ അവതരിപ്പിക്കുന്നതോടെ ഒരു UUID ജനറേറ്റ് ചെയ്യുന്നത് ഒരു നേരായ പ്രക്രിയയായി മാറി. സെഷൻ മാനേജ്‌മെൻ്റ്, ഉപയോക്തൃ ട്രാക്കിംഗ്, ഡാറ്റാബേസ് ഇൻഡെക്‌സിംഗ് എന്നിവയ്‌ക്കും അതിലേറെ കാര്യങ്ങൾക്കും അദ്വിതീയ ഐഡൻ്റിഫയറുകൾ ആവശ്യമുള്ള വെബ് ആപ്ലിക്കേഷനുകളിൽ ഈ പ്രവർത്തനം പ്രത്യേകിച്ചും ഉപയോഗപ്രദമാണ്.

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

JavaScript-ൽ ഒരു UUID സൃഷ്ടിക്കുന്നു

ജാവാസ്ക്രിപ്റ്റ് പ്രോഗ്രാമിംഗ്

import { randomUUID } from 'crypto'
;
const uuid = randomUUID()
;
console.log
(
`UUID: ${uuid}`
)
;

JavaScript-ൽ UUID-കളുടെ ലോകം പര്യവേക്ഷണം ചെയ്യുന്നു

സാർവത്രികമായി യുണീക്ക് ഐഡൻ്റിഫയറുകൾ (യുയുഐഡികൾ), അല്ലെങ്കിൽ ഗ്ലോബലി യുണീക്ക് ഐഡൻ്റിഫയറുകൾ (ജിയുഐഡികൾ), ആധുനിക സോഫ്‌റ്റ്‌വെയർ സിസ്റ്റങ്ങളുടെ വാസ്തുവിദ്യയിൽ ഒരു മൂലക്കല്ലായി വർത്തിക്കുന്നു. ഈ സ്റ്റാൻഡേർഡ് 128-ബിറ്റ് ഫോർമാറ്റുകൾ രൂപകൽപ്പന ചെയ്തിരിക്കുന്നത് സ്ഥലത്തിലും സമയത്തിലും അദ്വിതീയ മൂല്യങ്ങൾ സൃഷ്ടിക്കുന്നതിനാണ്, ഇത് ദശലക്ഷക്കണക്കിന് ആവർത്തനങ്ങളിൽ പോലും തനിപ്പകർപ്പിൻ്റെ അപകടസാധ്യത ലഘൂകരിക്കുന്നു. JavaScript-ൽ, 'randomUUID()' രീതി ഉൾപ്പെടുന്ന ക്രിപ്‌റ്റോ API-യുടെ വരവോടെ UUID-കളുടെ ജനറേഷൻ വളരെ ലളിതമാക്കിയിരിക്കുന്നു. വെബ് ആപ്ലിക്കേഷനുകൾ, ഡാറ്റാബേസുകൾ, ഒബ്‌ജക്‌റ്റുകൾ, സെഷനുകൾ അല്ലെങ്കിൽ ഇടപാടുകൾ എന്നിവയ്‌ക്കായി വ്യതിരിക്തമായ ഐഡൻ്റിഫയറുകൾ ആവശ്യമുള്ള ഏതൊരു സിസ്റ്റത്തിലും പ്രവർത്തിക്കുന്ന ഡവലപ്പർമാരുടെ ഒരു നിർണായക വശമായ RFC 4122-ൻ്റെ കർശനമായ ആവശ്യകതകൾക്ക് അനുസൃതമായ UUID-കളുടെ ഉത്പാദനം ഈ രീതി ഉറപ്പാക്കുന്നു.

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

JavaScript-ലെ UUID-കളെ കുറിച്ച് പതിവായി ചോദിക്കുന്ന ചോദ്യങ്ങൾ

  1. ചോദ്യം: എന്താണ് UUID?
  2. ഉത്തരം: ഒരു UUID എന്നത് RFC 4122 സ്റ്റാൻഡേർഡ് ചെയ്‌ത സാർവത്രികമായ ഒരു ഐഡൻ്റിഫയറാണ്. കമ്പ്യൂട്ടർ സിസ്റ്റങ്ങളിലെ വിവരങ്ങൾ തിരിച്ചറിയാൻ ഉപയോഗിക്കുന്ന 128-ബിറ്റ് നമ്പറാണിത്.
  3. ചോദ്യം: JavaScript എങ്ങനെയാണ് UUID-കൾ സൃഷ്ടിക്കുന്നത്?
  4. ഉത്തരം: UUID v4 സ്റ്റാൻഡേർഡ് പിന്തുടരുന്ന ഒരു സ്ട്രിംഗ് നിർമ്മിക്കുന്ന 'crypto' മൊഡ്യൂളിൻ്റെ 'randomUUID()' രീതി ഉപയോഗിച്ച് JavaScript-ന് UUID-കൾ സൃഷ്ടിക്കാൻ കഴിയും.
  5. ചോദ്യം: UUID-കൾ യഥാർത്ഥത്തിൽ അദ്വിതീയമാണോ?
  6. ഉത്തരം: UUID-കൾ കൂട്ടിമുട്ടുന്നത് സൈദ്ധാന്തികമായി സാധ്യമാണെങ്കിലും, പ്രോബബിലിറ്റി വളരെ കുറവാണ്, മിക്ക ആപ്ലിക്കേഷനുകൾക്കും അവ പ്രായോഗികമായി അദ്വിതീയമായി കണക്കാക്കപ്പെടുന്നു.
  7. ചോദ്യം: ഡാറ്റാബേസ് പ്രൈമറി കീകൾക്കായി എനിക്ക് UUID-കൾ ഉപയോഗിക്കാമോ?
  8. ഉത്തരം: അതെ, ഓരോ റെക്കോർഡിൻ്റെയും അദ്വിതീയത ഉറപ്പാക്കാൻ ഡാറ്റാബേസുകളിൽ പ്രാഥമിക കീകളായി യുയുഐഡികൾ ഉപയോഗിക്കാറുണ്ട്, പ്രത്യേകിച്ച് വിതരണം ചെയ്ത സിസ്റ്റങ്ങളിൽ.
  9. ചോദ്യം: UUID-കൾ സീക്വൻഷ്യൽ ഐഡികളിൽ നിന്ന് എങ്ങനെ വ്യത്യാസപ്പെട്ടിരിക്കുന്നു?
  10. ഉത്തരം: സീക്വൻഷ്യൽ ഐഡികളിൽ നിന്ന് വ്യത്യസ്തമായി, യുയുഐഡികൾ പ്രവചിക്കാവുന്ന പാറ്റേൺ പിന്തുടരുന്നില്ല, ഇത് കൂടുതൽ സുരക്ഷിതവും തുടർച്ചയായ ജനറേഷൻ സാധ്യമല്ലാത്ത വിതരണ സംവിധാനങ്ങൾക്ക് അനുയോജ്യവുമാക്കുന്നു.
  11. ചോദ്യം: UUID-കൾ ഡാറ്റാബേസ് കീകളായി ഉപയോഗിക്കുമ്പോൾ ഒരു പ്രകടന സ്വാധീനമുണ്ടോ?
  12. ഉത്തരം: UUID-കൾക്ക് അവയുടെ വലുപ്പവും ക്രമരഹിതതയും കാരണം ഡാറ്റാബേസ് പ്രകടനത്തെ സ്വാധീനിക്കാൻ കഴിയും, ഇത് സീക്വൻഷ്യൽ ഐഡികളുമായി താരതമ്യപ്പെടുത്തുമ്പോൾ കാര്യക്ഷമത കുറഞ്ഞ സൂചികയിലേക്ക് നയിക്കും.
  13. ചോദ്യം: UUID-കൾ പ്രവചിക്കാൻ കഴിയുമോ?
  14. ഉത്തരം: ക്രിപ്‌റ്റോഗ്രാഫിക് രീതികൾ ഉപയോഗിച്ച് സൃഷ്ടിക്കുന്ന UUID-കൾ പ്രവചിക്കാവുന്നതല്ല, ഇത് ആപ്ലിക്കേഷനുകൾക്ക് ഉയർന്ന സുരക്ഷ നൽകുന്നു.
  15. ചോദ്യം: UUID-കളുടെ വ്യത്യസ്ത പതിപ്പുകൾ ഉണ്ടോ?
  16. ഉത്തരം: അതെ, UUID-കളുടെ അഞ്ച് പതിപ്പുകൾ ഉണ്ട്, ഓരോന്നും വ്യത്യസ്തമായി ജനറേറ്റുചെയ്യുന്നു. പതിപ്പ് 4 ക്രമരഹിതമാണ്, അതിൻ്റെ ലാളിത്യത്തിനും അതുല്യതയ്ക്കും വേണ്ടി ആപ്ലിക്കേഷനുകളിൽ സാധാരണയായി ഉപയോഗിക്കുന്നു.
  17. ചോദ്യം: ഒരു ഡാറ്റാബേസിൽ UUID-കൾ എങ്ങനെ സംഭരിക്കാം?
  18. ഉത്തരം: ഡാറ്റാബേസിൻ്റെ കഴിവുകളും ആവശ്യകതകളും അനുസരിച്ച് സ്ഥലം ലാഭിക്കുന്നതിനായി UUID-കൾ സാധാരണയായി 36-അക്ഷരങ്ങളുള്ള സ്ട്രിംഗായി അല്ലെങ്കിൽ ബൈനറി(16) ആയി സംഭരിക്കുന്നു.
  19. ചോദ്യം: വെബ് വികസനത്തിൽ UUID-കൾ ഉപയോഗിക്കാമോ?
  20. ഉത്തരം: തികച്ചും, സെഷനുകൾ, ഉപയോക്താക്കൾ, വിവിധ സിസ്റ്റങ്ങളിലും ഡാറ്റാബേസുകളിലുടനീളമുള്ള അദ്വിതീയ ഇടപാടുകൾ എന്നിവ ട്രാക്കുചെയ്യുന്നതിന് വെബ് വികസനത്തിൽ UUID-കൾ വ്യാപകമായി ഉപയോഗിക്കുന്നു.

ജാവാസ്ക്രിപ്റ്റിൽ UUID-കൾ പൊതിയുന്നു

JavaScript-ൽ UUID-കൾ സൃഷ്ടിക്കുന്ന ലോകത്തിലൂടെയുള്ള ഞങ്ങളുടെ യാത്ര അവസാനിപ്പിക്കുമ്പോൾ, ആധുനിക വെബ് വികസനത്തിൽ ഈ അദ്വിതീയ ഐഡൻ്റിഫയറുകൾ ഒരു പ്രധാന പങ്ക് വഹിക്കുന്നുണ്ടെന്ന് വ്യക്തമാണ്. 'ക്രിപ്‌റ്റോ' മൊഡ്യൂളിൻ്റെ 'റാൻഡംയുയുഐഡി()' രീതി ഉപയോഗിച്ച് യുയുഐഡികൾ ജനറേറ്റുചെയ്യാനുള്ള കഴിവ്, ഡാറ്റാ സമഗ്രതയ്ക്കും സുരക്ഷയ്ക്കും നിർണായകമായ, കൂട്ടിമുട്ടാത്ത ഐഡൻ്റിഫയറുകൾ സൃഷ്ടിക്കുന്നതിനുള്ള ശക്തമായ പരിഹാരം നൽകുന്നു. ഡാറ്റാബേസ് മാനേജ്‌മെൻ്റ് മുതൽ സെഷൻ ട്രാക്കിംഗ് വരെയും അതിനപ്പുറവും ഡിജിറ്റൽ ഇൻഫ്രാസ്ട്രക്ചറിൻ്റെ പല വശങ്ങളെയും ഈ കഴിവ് അടിവരയിടുന്നു. UUID-കളുടെ വൈദഗ്ധ്യവും വിശ്വാസ്യതയും അവ ഡെവലപ്പറുടെ ടൂൾകിറ്റിലെ അമൂല്യമായ ഒരു ഉപകരണമാണെന്ന് ഉറപ്പാക്കുന്നു, വിതരണം ചെയ്ത സിസ്റ്റങ്ങളിലുടനീളം അതുല്യത ഉറപ്പാക്കുന്നതിനുള്ള ഒരു സ്റ്റാൻഡേർഡ് രീതി വാഗ്ദാനം ചെയ്യുന്നു. ആപ്ലിക്കേഷനുകളും സിസ്റ്റങ്ങളും സങ്കീർണ്ണതയിലും സ്കെയിലിലും വികസിക്കുന്നത് തുടരുന്നതിനാൽ, തിരിച്ചറിയലിനും സുരക്ഷയ്ക്കുമുള്ള ഒരു ഉപാധിയായി UUID-കൾ ഉപയോഗിക്കുന്നതിൻ്റെ പ്രാധാന്യം അമിതമായി പ്രസ്താവിക്കാനാവില്ല. അവരുടെ പ്രോജക്റ്റുകളിൽ UUID-കൾ ഉൾപ്പെടുത്തുന്നതിലൂടെ, ഡവലപ്പർമാർക്ക് ഡാറ്റ ഡ്യൂപ്ലിക്കേഷനും വൈരുദ്ധ്യങ്ങളുമായി ബന്ധപ്പെട്ട അപകടസാധ്യതകൾ ഗണ്യമായി ലഘൂകരിക്കാനാകും, അതുവഴി അവരുടെ ആപ്ലിക്കേഷനുകളുടെ മൊത്തത്തിലുള്ള കരുത്തും വിശ്വാസ്യതയും വർദ്ധിപ്പിക്കുന്നു.