𝗗𝗮𝘆 𝟰𝟴 𝗼𝗳 𝗟𝗲𝗮𝗿𝗻𝗶𝗻𝗴 𝗠𝗘𝗥𝗡 𝗦𝘁𝗮𝗰𝗸

എന്റെ ഫുൾ-സ്റ്റാക്ക് എൻജിനീയറിംഗ് യാത്രയുടെ 48-ാം ദിവസമാണിന്ന്.

ഇന്നലെ, ഞാൻ എന്റെ കോഡ് ഒരു MVC ആർക്കിടെക്ചറിലേക്ക് മാറ്റി. ഇന്ന്, JavaScript Classes-ഉം Object-Oriented Programming-ഉം ഉപയോഗിച്ച് എന്റെ മോഡൽ ലെയർ മെച്ചപ്പെടുത്തി.

ക്രമരഹിതമായ ഒബ്‌ജക്റ്റ് ഡെഫനിഷനുകൾ (loose object definitions) ഉപയോഗിക്കുന്നത് ഞാൻ നിർത്തി. പകരം, ഫയൽ ഓപ്പറേഷനുകളും ഡാറ്റ സ്റ്റോറേജും കൈകാര്യം ചെയ്യുന്നതിനായി പുനരുപയോഗിക്കാവുന്ന (reusable) ക്ലാസുകൾ ഞാൻ നിർമ്മിച്ചു. ഈ മാറ്റം ലളിതമായ സ്ക്രിപ്റ്റുകളെ സ്കെയിലബിൾ ആയ എൻജിനുകളാക്കി മാറ്റുന്നു.

home.js-ൽ ഞാൻ എന്റെ കോഡ് എങ്ങനെയാണ് ഘടനപ്പെടുത്തിയത് എന്ന് താഴെ നൽകുന്നു:

  • The Constructor: ഒരു സ്റ്റാൻഡേർഡ് ഡാറ്റാ മോൾഡ് (data mold) നിർമ്മിക്കാൻ ഞാൻ ES6 ക്ലാസ് ഫ്രെയിംവർക്ക് ഉപയോഗിക്കുന്നു. ഓരോ വീടിന്റെയും വിവരങ്ങളിൽ ഇപ്പോൾ പേര്, വില, സ്ഥലം, റേറ്റിംഗ്, ഫോട്ടോ URL എന്നിവ ഉൾപ്പെടുന്നു. ഇത് സെർവറിലുടനീളം ഡാറ്റയുടെ കൃത്യത (data consistency) ഉറപ്പാക്കുന്നു.

  • The Save Method: ഞാൻ ഒരു .save() മെത്തേഡ് നിർമ്മിച്ചു. ഈ മെത്തേഡ് നിലവിലുള്ള ഡാറ്റ അസിൻക്രണസ് ആയി (asynchronously) വായിക്കുന്നു. തുടർന്ന് homesdata.json ഫയൽ അപ്‌ഡേറ്റ് ചെയ്യാൻ ഇത് fs.writeFile() ഉപയോഗിക്കുന്നു. ഇത് ഗ്ലോബൽ അറേകൾക്ക് (global arrays) പകരം നിയന്ത്രിതമായ ഒരു സ്റ്റോറേജ് പ്രക്രിയ കൊണ്ടുവരുന്നു.

  • Static Methods: ഡാറ്റ വീണ്ടെടുക്കുന്നതിനായി (data retrieval) ഞാൻ സ്റ്റാറ്റിക് മെത്തേഡുകൾ നടപ്പിലാക്കി. ഡിസ്കിൽ നിന്ന് റെക്കോർഡുകൾ എടുക്കാൻ ഞാൻ സ്റ്റാറ്റിക് fetchAll() ഉപയോഗിക്കുന്നു. ഇത് ഒരു പുതിയ ക്ലാസ് ഇൻസ്റ്റൻസ് (class instance) സൃഷ്ടിക്കാതെ തന്നെ കൺട്രോളറുകൾക്ക് ഡാറ്റ ആക്സസ് ചെയ്യാൻ അനുവദിക്കുന്നു.

ക്ലാസുകൾ ഉപയോഗിക്കുന്നത് എന്റെ കോഡ് കൂടുതൽ വൃത്തിയുള്ളതാക്കാനും എളുപ്പത്തിൽ സ്കെയിൽ ചെയ്യാനും സഹായിക്കുന്നു.

Source: https://dev.to/ali_hamza_589ec7b3eb6688d/day-48-of-leaning-mern-stack-123n