જાવાસ્ક્રિપ્ટ ક્લીન કોડિંગ પ્રેક્ટિસિસ: શ્રેષ્ઠ કોડ લખવાનો માર્ગદર્શિકા

/* by Tirth Bodawala - June 22, 2023 */

શુદ્ધ, વાંચનીય, અને પુનરઉપયોગ લાયક કોડ લખવું દરેક જાવાસ્ક્રિપ્ટ ડેવલપર માટે એક મહત્વપૂર્ણ કુશળતા છે. આ પ્રેક્ટિસ તમારા કોડને સમજીને જાળવવા માટે સરળ બનાવે છે અને નવી ડેવલપર્સને ઓનબોર્ડ કરવા માટે જરૂરી સમયને પણ ઘટાડે છે. આ બ્લોગ પોસ્ટ 16 ક્લીન કોડિંગ પ્રેક્ટિસિસના માર્ગદર્શન આપશે જેને તમે આજે જ અપનાવી શકો છો તમારી જાવાસ્ક્રિપ્ટ કોડની ગુણવત્તા સુધારવા માટે.

1. અર્થપૂર્ણ નામકરણ

શુદ્ધ કોડ લખવાની પ્રથમ પધ્ધતિ એ છે કે તમારા વેરિએબલ્સ અને ફંક્શન્સને અર્થપૂર્ણ નામ આપો. નામોએ વેરિએબલ અથવા ફંક્શનનો ઉદ્દેશ સ્પષ્ટ રીતે જણાવવો જોઈએ, જેથી તમારું કોડ આપમેળે સમજાય.

નીચેના જાવાસ્ક્રિપ્ટ ઉદાહરણને ધ્યાનમાં રાખો:

// Bad
let x = 10;
let y = new Date().getFullYear();
if (x > 30) { /*...*/ }
if (y - x > 1990) { /*...*/ }

// Good
let userAge = 30;
let currentYear = new Date().getFullYear();
if (userAge > 30) { /*...*/ }
if (currentYear - userAge > 1990) { /*...*/ }

પ્રથમ ઉદાહરણમાં, વેરિએબલ x અને y રહસ્યમય છે અને તેમના ઉદ્દેશને જાહેર નથી કરતા. બીજું ઉદાહરણ સ્પષ્ટ અને વર્ણનાત્મક વેરિએબલ નામોનો ઉપયોગ કરે છે, જે કોડની વાંચનીયતાને સુધારે છે.

2. સકારાત્મક શરતો

જ્યાં શક્ય હોય ત્યાં નકારાત્મક શરતોથી બચો. આશરે તેમના સકારાત્મક સમકક્ષોની સરખામણીમાં સમજવા માટે અઘરા હોય છે. નીચેના ઉદાહરણને ધ્યાનમાં રાખો:

// Bad
if (!userExists(user)) { /*...*/ }

// Good
if (userExists(user)) { /*...*/ }

બીજું ઉદાહરણ સમજવા માટે સરળ છે, નહિ? જ્યારે તમે તેને ઉંચા અવાજે વાંચો છો, તે અંગ્રેજી જેવું લાગતું છે, જે તમારા કોડને વધુ સુગમ બનાવે છે.

3. એકમાત્ર જવાબદારીવાળા ફંક્શન

એકમાત્ર જવાબદારી સિદ્ધાંત (SRP) કહે છે કે એક ફંક્શન એક જ વસ્તુ કરવી જોઈએ, અને તે સારી રીતે કરવી જોઈએ. ફંક્શન્સ સુઘડ અને 30 લાઈનો કરતાં વધુ ન હોવી જોઈએ (ટિપ્પણીઓ અને વ્હાઇટ સ્પેસ છોડી દેવા). જો કોઈ ફંક્શન એક કરતાં વધુ વસ્તુઓ કરી રહી હોય, તો તેને નાના અને વધુ સંચાલનશીલ ફંક્શન્સમાં વિભાજિત કરવાનો વિચાર કરો.

// Bad
function createAndDisplayUser(name, age, address) { /*...*/ }

// Good
function createUser(name, age, address) { /*...*/ }
function displayUser(user) { /*...*/ }

4. ડિફોલ્ટ તર્કનો ઉપયોગ કરો

ડિફોલ્ટ તર્કો તમારી કોડને વધુ સાફ અને સમજવા માટે સરળ બનાવી શકે છે, તે શોર્ટ-સર્કિટિંગ અથવા શરતોના ઉપયોગ કરતાં. તેઓ પરિભાષિત તર્કો માટે ડિફોલ્ટ મૂલ્યો પૂરા પાડે છે. અન્ય ફોલ્સી મૂલ્યો, જેમ કે ”, “”, false, null, 0, અને NaN, ડિફોલ્ટ મૂલ્ય દ્વારા બદલાયા નહીં.

// Bad
function getUserData(name) {
  const userName = name || "John Doe";
  /*...*/
}

// Good
function getUserData(name = "John Doe") { /*...*/ }

5. એકમાત્ર સ્તર ની મુદ્રા જાળવો

એક ફંક્શન એકમાત્ર સ્તર ની મુદ્રા પર કાર્ય કરવું જોઈએ. જો તમારું ફંક્શન એ કરતાં વધુ કરે છે, તો તે સામાન્ય રીતે સૂચવે છે કે તે એક કરતાં વધુ વસ્તુઓ કરી રહી છે. મોટા ફંક્શનને નાના ફંક્શન્સમાં વિભાજિત કરવાથી વધુ પુનરઉપયોગ અને સરળ પરીક્ષણ મળવા માટે સહાય થાય છે.

// Bad
function checkSomething(statement) { /*...*/ }

// Good
function checkSomething(statement) {
  const tokens = tokenize(statement);
  const syntaxTree = parse(tokens);
  syntaxTree.forEach(node => { /*...*/ });
}
function tokenize(code) { /*...*/ }
function parse(tokens) { /*...*/ }

6. પકડેલા ભૂલોને અવગણશો નહીં

પકડેલા ભૂલોને અવગણશો નહીં. જો ભૂલને try/catch બ્લોકમાં પકડવામાં આવે છે, તો તે સૂચવે છે કે તમે તે કોડ વિભાગમાં શક્ય ભૂલની અપેક્ષા રાખી રહ્યા છો. તેથી, જ્યારે તે ભૂલ થાય ત્યારે શું કરવું તે માટે તમારી પાસે યોજનાનો હોવો જરૂરી છે. માત્ર કન્સોલમાં ભૂલ લોગ કરવી પૂરતું નથી, કારણ કે તે અન્ય કન્સોલ સંદેશાઓ વચ્ચે સરળતાથી ગુમ થઈ શકે છે.

// Bad
try {
  functionThatMightThrow();
} catch (error) {
  console.log(error);
}

// Good
try {
  functionThatMightThrow();
} catch (error) {
  notifyUserOfError(error);
  reportErrorToService(error);
}

7. ટિપ્પણીઓ ઘટાડો

ટિપ્પણીઓ ઉપયોગી હોઈ શકે છે, પરંતુ તે સંઘનાથી અને માત્ર જરૂર પડે ત્યારે જ ઉપયોગ કરવી જોઈએ. સારા કોડને આપમેળે દસ્તાવેજિત હોવું જોઈએ. જો તમે ટિપ્પણી ઉમેરવાની જરૂરિયાત અનુભવો છો, તો તમારું કોડ પુનરાગઠિત કરવાની વિચારણા કરો જેથી તે વધુ સ્પષ્ટ બની શકે. આ નિયમની એકમાત્ર બાબત એ છે જ્યારે જટિલ વ્યવસાય લોજિક સાથે કામ કરવું હોય જે આગળ સરળતાથી નથી શકાય.

// Bad
function hashing(data) {
  // The hash
  let hash = 0;
  // Length of string
  const length = data.length;
  // Loop through every character in data
  for (let i = 0; i < length; i++) {
    // Get character code.
    const char = data.charCodeAt(i);
    // Make the hash
    hash = (hash << 5) - hash + char;
    // Convert to 32-bit integer
    hash &= hash;
  }
}

// Good
function hashing(data) {
  let hash = 0;
  const length = data.length;
  for (let i = 0; i < length; i++) {
    const char = data.charCodeAt(i);
    hash = (hash << 5) - hash + char;
    hash &= hash; // Convert to 32-bit integer
  }
}

8. ટિપ્પણ કરવામાં આવેલા કોડને દૂર કરો

તમારા કોડબેસમાં ટિપ્પણ કરવામાં આવેલ કોડ છોડવો ગફલત તરફ દોરી શકે છે. જો કોડ જરૂરી નથી, તો તેને દૂર કરો. જો તમને ભવિષ્યમાં જરૂર પડે તો તમે હંમેશા તમારા વર્ઝન કન્ટ્રોલ ઈતિહાસમાંથી જૂનો કોડ પુનઃપ્રાપ્ત કરી શકો છો.

// Bad
// doSomething();

// Good
// Code without unnecessary comments.

9. માત્ર જે જરૂરી છે તે જ આયાત કરો

ES6 સાથે, જાવાસ્ક્રિપ્ટે ડિસ્ટ્રક્ચરિંગ introduced કર્યું છે, જે તમને એરેમાંથી મૂલ્યો અથવા ઑબ્જેક્ટમાંથી પ્રોપર્ટી ને અલગ વેરિએબલ્સમાં_unpack_ કરવાની મંજૂરી આપે છે. તમે આ સુવિધાનો ઉપયોગ અન્ય મોડ્યુલોમાંથી માત્ર જરૂરી ફંક્શન્સને આયાત કરવા માટે કરી શકો છો, જેના દ્વારા તમારું કોડ વધારે સ્વચ્છ અને કાર્યક્ષમ બને છે.

// Bad
import calculate from './calculations';
calculate.add(4,2);
calculate.subtract(4,2);

// Good
import { add, subtract } from './calculations';
add(4,2);
subtract(4,2);

10. ફંક્શન આર્ગ્યુમેન્ટ્સને મર્યાદિત કરો

ફંક્શનની આર્ગ્યુમેન્ટ્સની સંખ્યા મર્યાદિત રાખવી ટેસ્ટિંગને સરળ બનાવે છે. આદર્શ રીતે, ફંક્શન પાસે એકથી ત્રણ આર્ગ્યુમેન્ટ હોવા જોઈએ. તેનાથી વધારે હોય તો તે સંકેત હોઈ શકે છે કે તમારું ફંક્શન ઘણું વધારે કાર્ય કરી રહ્યું છે, જે એકમાત્ર જવાબદારી સિદ્ધાંત (SRP) ને ભંગ કરે છે.

// Bad
function createEmployee(name, age, address, position, salary) { /*...*/ }

// Good
function createEmployee(employeeDetails) { /*...*/ }

11. એરે કોપી કરવા માટે એરે સ્પ્રેડ્સનો ઉપયોગ કરો

એરે સ્પ્રેડ્સનો ઉપયોગ કરીને એરે કોપી કરવો લૂપ્સની સરખામણીએ વધુ સ્વચ્છ અને સીધો છે. અહીં એક ઉદાહરણ છે:

// Bad
const len = items.length;
const itemsCopy = [];
let i;
for (i = 0; i < len; i += 1) {
  itemsCopy[i] = items[i];
}

// Good
const itemsCopy = [...items];

આ જાવાસ્ક્રિપ્ટ ક્લીન કોડ પ્રેક્ટિસિસ વિશેની પોસ્ટ પૂર્ણ થાય છે. આશા છે કે આ ટીપ્સ તમારા કોડને વધુ વાંચનીય અને જાળવવા માટે સહાયક રહેશે. યાદ રાખો, કોડ લખવું કલા જેવું છે. તે માત્ર કાર્ય પૂર્ણ કરવાનું નથી, પરંતુ એ રીતે કંઈક બનાવવું છે જે તેના સંરચના અને ડિઝાઇનમાં સુંદર હોય. તેથી, આ પ્રેક્ટિસિસને ધ્યાનમાં રાખો અને તમારું ગંદું કોડ એક મહાન કૃતિમાં ફેરવી આપો.

Atyantik Technologies: ક્લીન કોડ પ્રેક્ટિસિસને અપનાવવું

Atyantik Technologies ખાતે, અમે ક્લીન કોડ પ્રેક્ટિસિસની મહત્વતાને સમજીને તે અમારી દૈનિક કોડિંગ આદતોમાં સમાવિષ્ટ કરી છે. અમે માત્ર કોડ લખતા નથી, અમે સોલ્યુશન્સ બનાવીએ છીએ. અમારી ટીમ વાંચવા, જાળવવા અને વિસ્તૃત કરવા માટે સરળ ઉચ્ચ-ગણવત્તાવાળા કોડ પ્રદાન કરવા પર ગર્વ છે.

આ પોસ્ટમાં ચર્ચાયેલા ક્લીન કોડ પ્રેક્ટિસિસ માત્ર વિચારશીલ સિદ્ધાંતો નથી – તે અમારા કોડિંગ ડીએનએનો ભાગ છે. અમારી ડેવલપર્સ માટે આ વ્યવહાર છે કે દરેક ફંક્શન, વેરિએબલ, અને મોડ્યુલનું નામ અર્થપૂર્ણ બનાવવું, તેની હેતુ સ્પષ્ટ રીતે દર્શાવવું અને અવશ્યક ટિપ્પણીઓની જરૂરિયાતને દૂર કરવું.

અમે કોડને વધુ સ્પષ્ટ બનાવવા માટે નકારાત્મક શરતો ટાળીએ છીએ, અને ફંક્શનની સંખ્યાને મર્યાદિત રાખીએ છીએ જેથી એકલ જવાબદારી સિદ્ધાંતને જાળવી શકાય. અમારાં ફંક્શન એક જ કાર્યને ફોકસ કરી સારું કરશે, જેના કારણે જટિલતા ઘટે છે અને કોડને વધુ સમજી શકાય તેવું બનાવે છે. અમે એ પણ સુનિશ્ચિત કરીએ છીએ કે અમારાં ફંક્શનમાં યોગ્ય ભૂલ સંભાળના પ્રણાલીઓ છે, જે ફંક્શન્સને શાંતિથી નિષ્ફળ થવા નથી દેતી અને અમને ભૂલોને અસરકારક રીતે નિયંત્રિત કરવાની તક આપે છે.

અમે અમારા કોડબેઝમાં ટિપ્પણી કરેલા કોડને ન રાખવાની પ્રથાને જાળવી રાખીએ છીએ, એ સમજતા કે વર્ઝન કંટ્રોલ સિસ્ટમો અમારું કોડ ઇતિહાસ જાળવવાના હેતુની પૂર્તિ કરે છે. અમે ES6 ફીચર્સ જેવી કે ડિસ્ટ્રક્ચરિંગ અને એરે સ્પ્રેડની શક્તિને મહત્ત્વ આપીએ છીએ, જેનો ઉપયોગ કરીને અમે અમારા કોડને વધુ કાર્યક્ષમ અને સ્વચ્છ બનાવીએ છીએ.

Atyantik Technologiesમાં દરેક કોડ રિવ્યૂ એક શીખવાની તક છે. અમે અમારા ડેવલપર્સને એકબીજાના કોડની સમીક્ષા કરવા માટે સક્રિય રીતે પ્રોત્સાહિત કરીએ છીએ. આ માત્ર ઉત્તમ કોડ ગુણવત્તા તરફ જ દોરી નથી જતા, પણ અમારા અભ્યાસ અને પ્રણાલીઓમાં સતત શીખવા અને સુધારવા માટે પણ મદદ કરે છે.

આ અંતે, Atyantik Technologiesમાં, અમે માત્ર કોડ લખતા નથી – અમે સ્વચ્છ, કાર્યક્ષમ, અને જાળવવા યોગ્ય કોડ લખીએ છીએ. અમે માનીએ છીએ કે આ પ્રણાલીઓ અમારા માટે માત્ર ડેવલપર્સ તરીકે ફાયદાકારક નથી, પરંતુ તે અમારા ક્લાયન્ટ્સ માટે પણ વિશાળ મૂલ્ય લાવે છે, કારણ કે અમે જે કોડ પહોંચાડીએ છીએ તે ઉચ્ચતમ ગુણવત્તાવાળું, સમજી શકાય તેવું, અને ભવિષ્યમાં વિસ્તરણ માટે તૈયાર હોય છે. અમે આ ઉચ્ચ ધોરણોને જાળવવા માટે પ્રતિબદ્ધ છીએ, જેમ કે અમે અમારા ક્લાયન્ટ્સને શ્રેષ્ઠ સોલ્યુશન્સ પહોંચાડવાનું ચાલુ રાખીએ છીએ.